diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.robertl/eh990323-3.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.robertl/eh990323-3.C | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eh990323-3.C b/gcc/testsuite/g++.old-deja/g++.robertl/eh990323-3.C new file mode 100644 index 000000000..e8369ca76 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eh990323-3.C @@ -0,0 +1,30 @@ +// { dg-do run } +// try throwing 0 cast to a class object +extern "C" void abort (); +extern "C" void exit (int); + +struct A {}; + +void f() +{ + throw (A*)0; +} + +int +main() +{ + int flag; + + flag = 0; + try { + f(); + } + catch (A*) { + flag = 1; + } + + if (!flag) + abort(); + + exit (0); +} |