Rebase.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.jason / temporary4.C
blob2c84612219c7830d9d93e630b4370f5b3ac0c1e7
1 // { dg-do run  }
2 // Bug: g++ initializes both B::i and B::j before destroying any temps.
4 extern "C" int printf (const char *, ...);
6 int c = 0;
7 int d = 0;
8 int r = 0;
10 struct A {
11   A() { if (c != d) r = 1; ++c; }
12   A(const A&);  // declare so g++ returns A on the stack
13   ~A() { ++d; }
14   operator int () { return 0; }
17 A foo ()
19   return A();
22 struct B {
23   int i;
24   int j;
25   B(): i(foo()), j(foo()) { }
28 int main()
30   B b;
31   return r;