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