28 lines
893 B
Common Lisp
28 lines
893 B
Common Lisp
|
// RUN: %clang_cc1 -verify %s -cl-std=CL1.2
|
||
|
// RUN: %clang_cc1 -verify %s -pedantic -DPEDANTIC -cl-std=CL1.2
|
||
|
// RUN: %clang_cc1 -verify %s -cl-std=CLC++
|
||
|
// RUN: %clang_cc1 -verify %s -pedantic -cl-std=CLC++
|
||
|
|
||
|
|
||
|
#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);
|
||
|
#if !__OPENCL_CPP_VERSION__
|
||
|
// expected-error@-2{{implicit declaration of function 'func' is invalid in OpenCL}}
|
||
|
#else
|
||
|
// expected-error@-4{{use of undeclared identifier 'func'}}
|
||
|
#endif
|
||
|
VAR_PRINTF("%i", 1);
|
||
|
}
|