1// PR c++/46401 2// { dg-do compile } 3// { dg-options "-Wsequence-point" } 4 5struct S 6{ 7 S (); 8 S &operator<< (const char *); 9 S (const S &); 10}; 11 12#define N1(n) << #n 13#define N2(n) N1(n) 14#define N3(n) N2(n##0) N2(n##1) N2(n##2) N2(n##3) N2(n##4) \ 15 N2(n##5) N2(n##6) N2(n##7) N2(n##8) N2(n##9) 16#define N4(n) N3(n##0) N3(n##1) N3(n##2) N3(n##3) N3(n##4) \ 17 N3(n##5) N3(n##6) N3(n##7) N3(n##8) N3(n##9) 18#define N5(n) N4(n##0) N4(n##1) N4(n##2) N4(n##3) N4(n##4) \ 19 N4(n##5) N4(n##6) N4(n##7) N4(n##8) N4(n##9) 20S s = S () N5(a) N5(b); 21