mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-16 13:01:21 +08:00
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:
parent
1e2800358a
commit
124e573237
@ -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'
|
||||
|
40
gcc/testsuite/g++.old-deja/g++.other/init9.C
Normal file
40
gcc/testsuite/g++.old-deja/g++.other/init9.C
Normal 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 *-*-*
|
||||
;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user