// Build don't link: // 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; // ERROR - jump from here A x; // ERROR - jump crosses initialization bar: // ERROR - jump to here ; } struct X { ~X() {} }; void b() { goto bar; // ERROR - jump from here X x; // ERROR - jump crosses initialization bar: // ERROR - jump to here ; } #include void c() { goto bar; // ERROR - jump from here std::vector x; // ERROR - jump crosses initialization bar: // ERROR - jump to here ; }