[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / SemaOpenCLCXX / references.clcpp
blobcffcc2cfbc29fe2a7603821dc4fd8bb20c3d316a
1 //RUN: %clang_cc1 %s -verify -fsyntax-only -triple spir
2 //RUN: %clang_cc1 %s -verify -fsyntax-only -DFPTREXT -triple spir
4 #ifdef FPTREXT
5 #pragma OPENCL EXTENSION __cl_clang_function_pointers : enable
6 #endif // FPTREXT
8 // References to functions are not allowed.
9 struct myclass {
10 //FIXME: Here we provide incorrect diagnostic.
11   void (&mem)(); //expected-error{{reference to function type cannot have '__generic' qualifier}}
14 void (&glob)();
15 #ifndef FPTREXT
16 //expected-error@-2{{references to functions are not allowed}}
17 #else
18 //expected-error@-4{{declaration of reference variable 'glob' requires an initializer}}
19 #endif // FPTREXT
21 using ref2fct_t = void (&)();
22 #ifndef FPTREXT
23 //expected-error@-2{{references to functions are not allowed}}
24 #endif // FPTREXT
25 typedef void (&ref2fct_t)();
26 #ifndef FPTREXT
27 //expected-error@-2{{references to functions are not allowed}}
28 #endif // FPTREXT
30 void test(void (&par)()) {
31 #ifndef FPTREXT
32 //expected-error@-2{{references to functions are not allowed}}
33 #endif // FPTREXT
34   void (&loc)();
35 #ifndef FPTREXT
36 //expected-error@-2{{references to functions are not allowed}}
37 #else
38 //expected-error@-4{{declaration of reference variable 'loc' requires an initializer}}
39 #endif // FPTREXT
41   void (*&ref2fptr)();
42 #ifndef FPTREXT
43 //expected-error@-2{{pointers to functions are not allowed}}
44 #endif // FPTREXT
45 //expected-error@-4{{declaration of reference variable 'ref2fptr' requires an initializer}}