111
|
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 };
|