diff options
author | Jason Merrill <jason@gcc.gnu.org> | 1999-08-19 14:45:07 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1999-08-19 14:45:07 -0400 |
commit | 852be00c009c96d573dacad6007a63f8076a6c9c (patch) | |
tree | 9528af3446ddca5829e3b181692aaa5567ec6ba8 | |
parent | b736d716880faae719a305a16ef773b4fda9df10 (diff) | |
download | gcc-852be00c009c96d573dacad6007a63f8076a6c9c.zip gcc-852be00c009c96d573dacad6007a63f8076a6c9c.tar.gz gcc-852be00c009c96d573dacad6007a63f8076a6c9c.tar.bz2 |
new
From-SVN: r28764
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.eh/fntry1.C | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.eh/fntry1.C b/gcc/testsuite/g++.old-deja/g++.eh/fntry1.C new file mode 100644 index 0000000..9c1c0ff --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.eh/fntry1.C @@ -0,0 +1,31 @@ +// Bug: g++ fails to treat function-try-blocks in ctors specially. +// Submitted by Jason Merrill <jason@cygnus.com> + +int c; +int r; + +struct A { + int i; + A(int j) { i = j; } + ~A() { c += i; } +}; + +struct B: public A { + A a; + B() try : A(1), a(2) + { throw 1; } + catch (...) + { if (c != 3) r |= 1; } +}; + +int main () +{ + try + { B b; } + catch (...) + { c = 0; } + + if (c != 0) r |= 2; + + return r; +} |