]>
Commit | Line | Data |
---|---|---|
928c19bb JM |
1 | /* As bconstp-1.c, but with the __builtin_constant_p calls |
2 | parenthesized. */ | |
3 | /* { dg-do compile } */ | |
4 | ||
5 | /* This test checks that builtin_constant_p can be used safely in | |
6 | initializers for static data. The macro X() defined below should | |
7 | be an acceptable initializer expression no matter how complex its | |
8 | argument is. */ | |
9 | ||
10 | extern int a; | |
11 | extern int b; | |
12 | ||
13 | extern int foo(void); | |
14 | extern int bar(void); | |
15 | ||
16 | #define X(exp) ((__builtin_constant_p(exp)) ? (exp) : -1) | |
17 | ||
18 | const short tests[] = { | |
19 | X(0), | |
20 | X(a), | |
21 | X(0 && a), | |
22 | X(a && b), | |
23 | X(foo()), | |
24 | X(0 && foo()), | |
25 | X(a && foo()), | |
26 | X(foo() && bar()) | |
27 | }; |