diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/eh/nested-try.C')
-rw-r--r-- | gcc/testsuite/g++.dg/eh/nested-try.C | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/eh/nested-try.C b/gcc/testsuite/g++.dg/eh/nested-try.C new file mode 100644 index 000000000..5796f9a28 --- /dev/null +++ b/gcc/testsuite/g++.dg/eh/nested-try.C @@ -0,0 +1,25 @@ +// { dg-do compile } +// Nested try statements shadowing each other was crashing in EH edge redirection. +// PR middle-end/40043 +struct A +{ + ~A(); + void foo(); +}; + +void bar() +{ + A a; + + try + { + A b; + + try + { + b.foo(); + } + catch (int) {} + } + catch (int) {} +} |