init9.C: test cross initialization of non-POD types

* g++.old-deja/g++.other/init9.C: test cross initialization of
	non-POD types

From-SVN: r23428
This commit is contained in:
Alexandre Oliva 1998-10-29 13:44:56 +00:00 committed by Alexandre Oliva
parent 1e2800358a
commit 124e573237
2 changed files with 45 additions and 0 deletions

View File

@ -1,3 +1,8 @@
1998-10-29 Alexandre Oliva <oliva@dcc.unicamp.br>
* g++.old-deja/g++.other/init9.C: test cross initialization of
non-POD types
1998-10-27 Alexandre Oliva <oliva@dcc.unicamp.br>
* lib/old-dejagnu.exp (old-dejagnu): document `Additional sources'

View File

@ -0,0 +1,40 @@
// Build don't link:
// 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; // 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 - XFAIL *-*-*
X x; // ERROR - jump crosses initialization - XFAIL *-*-*
bar: // ERROR - jump to here - XFAIL *-*-*
;
}
#include <vector>
void c() {
goto bar; // ERROR - jump from here - XFAIL *-*-*
vector<int> x; // ERROR - jump crosses initialization - XFAIL *-*-*
bar: // ERROR - jump to here - XFAIL *-*-*
;
}