33 lines
429 B
C
33 lines
429 B
C
// { dg-do run }
|
|
// 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;
|
|
}
|