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