------- Comment #30 from manu at gcc dot gnu dot org 2007-03-22 22:36 ------- There is yet another strange behaviour of the current patch. For the testcase in gcc.dg/array-2.c:
struct g g1 = { { 0, { } } }; struct g g2 = { { 0, { 1 } } }; /* { dg-error "(nested context)|(near initialization)" "nested" } */ struct h { int x[0]; int y; }; struct h h1 = { { 0 }, 1 }; /* { dg-error "(excess elements)|(near initialization)" "before end" } */ The output is: gcc.dg/array-2.c:10: error: initialization of flexible array member in a nested context gcc.dg/array-2.c:10: error: (near initialization for 'g2.f.x') gcc.dg/array-2.c:13: warning: excess elements in array initializer gcc.dg/array-2.c:13: warning: (near initialization for 'h1.x') And the test fails as follows: PASS: gcc.dg/array-2.c nested (test for errors, line 10) PASS: gcc.dg/array-2.c before end (test for errors, line 13) FAIL: gcc.dg/array-2.c (test for excess errors) Excess errors: /home/manuel/src/trunk/gcc/testsuite/gcc.dg/array-2.c:13: warning: excess elements in array initializer It seems that the second dg-error matched the wrong line. Perhaps it is getting confused by the alternatives. No idea. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25241