Jumps into the scope of an identifier with variably modified type (with goto or switch) are not rejected by the C++ front end. Bug 12913 describes this problem for C, but there should be a separate bug for C++ since bug 16989 only depends on the issue being fixed for C and not for C++. The examples in bug 12913 apply:
void f(int l) { goto label; int a[l]; label:; } void g (int l) { switch (l) { case 1:; int a[l]; default:; } } (and note that if we follow the C99 rules, which I think is the sensible thing for the C++ front end to do, the same applies for identifiers of variably modified type, e.g. int (*a)[l], not just VLAs: cases where the temporary variable with the array size might not get initialized are all covered, not just cases where memory for a VLA might not be allocated). -- Summary: Jumps into VLA or VM scope not rejected for C++ Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jsm28 at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21113