diff options
Diffstat (limited to 'test/Preprocessor/macro_variadic.cl')
-rw-r--r-- | test/Preprocessor/macro_variadic.cl | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/test/Preprocessor/macro_variadic.cl b/test/Preprocessor/macro_variadic.cl index e4c5566244..cc9458da55 100644 --- a/test/Preprocessor/macro_variadic.cl +++ b/test/Preprocessor/macro_variadic.cl @@ -1,3 +1,20 @@ -// RUN: %clang_cc1 -verify %s +// RUN: %clang_cc1 -verify %s -cl-std=CL1.2 +// RUN: %clang_cc1 -verify %s -pedantic -DPEDANTIC -cl-std=CL1.2 -#define X(...) 1 // expected-error {{variadic macros not supported in OpenCL}} + +#define NO_VAR_FUNC(...) 5 +#define VAR_FUNC(...) func(__VA_ARGS__); +#define VAR_PRINTF(str, ...) printf(str, __VA_ARGS__); +#ifdef PEDANTIC +// expected-warning@-4{{variadic macros are a Clang extension in OpenCL}} +// expected-warning@-4{{variadic macros are a Clang extension in OpenCL}} +// expected-warning@-4{{variadic macros are a Clang extension in OpenCL}} +#endif + +int printf(__constant const char *st, ...); + +void foo() { + NO_VAR_FUNC(1, 2, 3); + VAR_FUNC(1, 2, 3); //expected-error{{implicit declaration of function 'func' is invalid in OpenCL}} + VAR_PRINTF("%i", 1); +} |