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