// { dg-do assemble } // Based on a testcase submitted by Tudor Hulubei // X is not a POD because it has a user-defined destructor. // Therefore, we can't cross its initialization. // vector is not even an aggregate; nevertheless, no error is // reported... struct A { A() {} }; void a() { goto bar; // { dg-error "" } jump from here A x; // { dg-error "" } jump crosses initialization bar: // { dg-error "" } jump to here ; } struct X { ~X() {} }; void b() { goto bar; // { dg-error "" } jump from here X x; // { dg-error "" } jump crosses initialization bar: // { dg-error "" } jump to here ; } #include void c() { goto bar; // { dg-error "" } jump from here std::vector x; // { dg-error "" } jump crosses initialization bar: // { dg-error "" } jump to here ; }