1 | // RUN: %clang_cc1 -verify %s -cl-std=CL1.2 |
2 | // RUN: %clang_cc1 -verify %s -pedantic -DPEDANTIC -cl-std=CL1.2 |
3 | |
4 | |
5 | #define NO_VAR_FUNC(...) 5 |
6 | #define VAR_FUNC(...) func(__VA_ARGS__); |
7 | #define VAR_PRINTF(str, ...) printf(str, __VA_ARGS__); |
8 | #ifdef PEDANTIC |
9 | // expected-warning@-4{{variadic macros are a Clang extension in OpenCL}} |
10 | // expected-warning@-4{{variadic macros are a Clang extension in OpenCL}} |
11 | // expected-warning@-4{{variadic macros are a Clang extension in OpenCL}} |
12 | #endif |
13 | |
14 | int printf(__constant const char *st, ...); |
15 | |
16 | void foo() { |
17 | NO_VAR_FUNC(1, 2, 3); |
18 | VAR_FUNC(1, 2, 3); //expected-error{{implicit declaration of function 'func' is invalid in OpenCL}} |
19 | VAR_PRINTF("%i", 1); |
20 | } |
21 | |