diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/eh/cond3.C')
-rw-r--r-- | gcc/testsuite/g++.dg/eh/cond3.C | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/eh/cond3.C b/gcc/testsuite/g++.dg/eh/cond3.C new file mode 100644 index 000000000..0af4ecdad --- /dev/null +++ b/gcc/testsuite/g++.dg/eh/cond3.C @@ -0,0 +1,10 @@ +// PR c++/24996 +// Bug: the cleanup for the A temporary was confusing the gimplifier +// because of the TRY_CATCH_EXPR for the exception object. + +struct A { A(int); ~A(); }; +struct B { B(A); ~B(); }; +void foo(bool b) +{ + throw b ? B(1) : B(1); +} |