blob: 46d99028bdd61e2edcef0a82e79e8255fc33241e [file] [log] [blame]
// { dg-do assemble }
// Based on a testcase submitted by Tudor Hulubei <tudor@cs.unh.edu>
// X is not a POD because it has a user-defined destructor.
// Therefore, we can't cross its initialization.
// vector<int> is not even an aggregate; nevertheless, no error is
// reported...
struct A {
A() {}
};
void a() {
goto bar; // { dg-message "" } jump from here
A x; // { dg-message "" } jump crosses initialization
bar: // { dg-error "" } jump to here
;
}
struct X {
~X() {}
};
void b() {
goto bar; // { dg-message "" } jump from here
X x; // { dg-message "" } jump crosses initialization
bar: // { dg-error "" } jump to here
;
}
#include <vector>
void c() {
goto bar; // { dg-message "" } jump from here
std::vector<int> x; // { dg-message "" } jump crosses initialization
bar: // { dg-error "" } jump to here
;
}