From: Alexandre Oliva Date: Thu, 29 Oct 1998 13:44:56 +0000 (+0000) Subject: init9.C: test cross initialization of non-POD types X-Git-Tag: prereleases/libgcj-0.1~2245 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=124e57323716bfe1d0cb69a1516c158f72c777ed;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5a7c4c4f3ab2..d0e2a39ab9e2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +1998-10-29 Alexandre Oliva + + * g++.old-deja/g++.other/init9.C: test cross initialization of + non-POD types + 1998-10-27 Alexandre Oliva * lib/old-dejagnu.exp (old-dejagnu): document `Additional sources' diff --git a/gcc/testsuite/g++.old-deja/g++.other/init9.C b/gcc/testsuite/g++.old-deja/g++.other/init9.C new file mode 100644 index 000000000000..c9ea3a540821 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/init9.C @@ -0,0 +1,40 @@ +// 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 - XFAIL *-*-* + X x; // ERROR - jump crosses initialization - XFAIL *-*-* + bar: // ERROR - jump to here - XFAIL *-*-* + ; +} + +#include + +void c() { + goto bar; // ERROR - jump from here - XFAIL *-*-* + vector x; // ERROR - jump crosses initialization - XFAIL *-*-* + bar: // ERROR - jump to here - XFAIL *-*-* + ; +}