[Bug c++/21113] Jumps into VLA or VM scope not rejected for C++

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Mar 7 17:28:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21113

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
   Last reconfirmed|2012-01-05 00:00:00         |2016-3-7
                 CC|                            |msebor at gcc dot gnu.org
      Known to work|                            |4.9.3, 5.3.0, 6.0
         Resolution|---                         |FIXED
      Known to fail|                            |4.1.2, 4.5.3

--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> ---
Fixed in r209124 a couple of years ago.  Today's trunk rejects the test case
with the following output.

$ cat x.c && /build/gcc-trunk-bootstrap/gcc/xg++ -B
/build/gcc-trunk-bootstrap/gcc -S -Wall -Wextra -Wpedantic -o/dev/null -xc++
x.c
void f(int l) {
  goto label;
  int a[l];
 label:;
}

void g (int l) {
  switch (l) {
  case 1:;
    int a[l];
  default:;
  }
}
x.c: In function ‘void f(int)’:
x.c:3:10: warning: ISO C++ forbids variable length array ‘a’ [-Wvla]
   int a[l];
          ^
x.c:4:2: error: jump to label ‘label’ [-fpermissive]
  label:;
  ^~~~~
x.c:2:8: note:   from here
   goto label;
        ^~~~~
x.c:3:10: note:   crosses initialization of ‘sizetype <anonymous>’
   int a[l];
          ^
x.c:3:7: note:   crosses initialization of ‘int a [l]’
   int a[l];
       ^
x.c:3:7: warning: unused variable ‘a’ [-Wunused-variable]
x.c: In function ‘void g(int)’:
x.c:10:12: warning: ISO C++ forbids variable length array ‘a’ [-Wvla]
     int a[l];
            ^
x.c:11:3: error: jump to case label [-fpermissive]
   default:;
   ^~~~~~~
x.c:10:12: note:   crosses initialization of ‘sizetype <anonymous>’
     int a[l];
            ^
x.c:10:9: note:   crosses initialization of ‘int a [l]’
     int a[l];
         ^
x.c:10:9: warning: unused variable ‘a’ [-Wunused-variable]


More information about the Gcc-bugs mailing list