2019-03-26 19:22:37 +08:00
|
|
|
// RUN: %clang_cc1 -verify %s -cl-std=CL1.2
|
|
|
|
// RUN: %clang_cc1 -verify %s -pedantic -DPEDANTIC -cl-std=CL1.2
|
2020-08-12 17:01:46 +08:00
|
|
|
// RUN: %clang_cc1 -verify %s -cl-std=CLC++
|
|
|
|
// RUN: %clang_cc1 -verify %s -pedantic -cl-std=CLC++
|
2013-01-18 01:35:00 +08:00
|
|
|
|
2019-03-26 19:22:37 +08:00
|
|
|
|
|
|
|
#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);
|
2020-08-12 17:01:46 +08:00
|
|
|
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
|
2019-03-26 19:22:37 +08:00
|
|
|
VAR_PRINTF("%i", 1);
|
|
|
|
}
|