I'm pretty sure the following error is bogus. I don't see anything invalid in this test case and it worked with g++ 4.1. It also works with gcc 4.2 20060419 but not with the current version.
(sid)1053:[EMAIL PROTECTED]: ~] /usr/lib/gcc-snapshot/bin/g++ -c test.c test.c: In function 'int main()': test.c:16: error: jump to case label test.c:13: error: crosses initialization of 'terror <anonymous>' zsh: exit 1 /usr/lib/gcc-snapshot/bin/g++ -c test.c (sid)1054:[EMAIL PROTECTED]: ~] cat test.c typedef struct terror_struct { int code; char msg[64]; } terror; int main(void) { terror e; e = (terror){0,""}; switch(1) { case 1: e = (terror){400,"Bad username"}; break; case 2: e = (terror){503,"Turboing, connect later"}; break; } } -- Summary: [4.2 regression] bogus jump to case label crosses initialization error Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28031