1 // PR c++/56481
2 // Non-linearity in potential_constant_expression_1
3 // { dg-do compile { target c++11 } }
4 
5 struct S
6 {
7   constexpr bool foo ();
8 #define A(n) , f##n##0, f##n##1, f##n##2, f##n##3
9 #define B(n) A(n##0) A(n##1) A(n##2) A(n##3)
10 #define C B(0) B(1) B(2) B(3)
11   bool f C;
12 };
13 
14 constexpr bool
foo()15 S::foo ()
16 {
17 #undef A
18 #define A(n) && f##n##0 && f##n##1 && f##n##2 && f##n##3
19   return f C;
20 }
21