diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.eh/vbase2.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.eh/vbase2.C | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.eh/vbase2.C b/gcc/testsuite/g++.old-deja/g++.eh/vbase2.C new file mode 100644 index 000000000..eaae9d93a --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.eh/vbase2.C @@ -0,0 +1,35 @@ +// { dg-do run } +// Origin: Mark Mitchell <mark@codesourcery.com> + +int i; + +struct A +{ + A () { i++; } + ~A () { i--; } +}; + +struct B : public virtual A +{ + B () { throw 1; } +}; + +struct D: public B, virtual public A +{ +}; + +void f() +{ + D d; +} + +int main () +{ + try { + f(); + } catch (int) { + } + + return i; +} + |