c++: constantness of call to function pointer [PR111703]
[official-gcc.git] / gcc / testsuite / g++.dg / cpp / elifdef-3.C
blobd9acce06e057e54412798e4ad0d03e8d5ff47373
1 // P2334R1
2 // { dg-do preprocess { target c++23 } }
4 #define A
5 #undef B
7 #elifdef A // { dg-error "#elifdef without #if" }
8 #elifdef B // { dg-error "#elifdef without #if" }
9 #elifndef A // { dg-error "#elifndef without #if" }
10 #elifndef B // { dg-error "#elifndef without #if" }
12 #if 1 // { dg-error "-:began here" }
13 #else
14 #elifdef A // { dg-error "#elifdef after #else" }
15 #endif
17 #if 1 // { dg-error "-:began here" }
18 #else
19 #elifdef B // { dg-error "#elifdef after #else" }
20 #endif
22 #if 1 // { dg-error "-:began here" }
23 #else
24 #elifndef A // { dg-error "#elifndef after #else" }
25 #endif
27 #if 1 // { dg-error "-:began here" }
28 #else
29 #elifndef B // { dg-error "#elifndef after #else" }
30 #endif
32 #if 0
33 #elifdef A = // { dg-error "extra tokens at end of #elifdef directive" }
34 #endif
36 #if 0
37 #elifdef B = // { dg-error "extra tokens at end of #elifdef directive" }
38 #endif
40 #if 0
41 #elifndef A = // { dg-error "extra tokens at end of #elifndef directive" }
42 #endif
44 #if 0
45 #elifndef B = // { dg-error "extra tokens at end of #elifndef directive" }
46 #endif
48 #if 0
49 #elifdef // { dg-error "no macro name given in #elifdef directive" }
50 #endif
52 #if 0
53 #elifndef // { dg-error "no macro name given in #elifndef directive" }
54 #endif
56 #if 0
57 #elifdef , // { dg-error "macro names must be identifiers" }
58 #endif
60 #if 0
61 #elifndef , // { dg-error "macro names must be identifiers" }
62 #endif