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

Reply via email to