+++ /dev/null
-// Bug: g++ initializes both B::i and B::j before destroying any temps.
-
-extern "C" int printf (const char *, ...);
-
-int c = 0;
-int d = 0;
-int r = 0;
-
-struct A {
- A() { if (c != d) r = 1; ++c; }
- A(const A&); // declare so g++ returns A on the stack
- ~A() { ++d; }
- operator int () { return 0; }
-};
-
-A foo ()
-{
- return A();
-}
-
-struct B {
- int i;
- int j;
- B(): i(foo()), j(foo()) { }
-};
-
-int main()
-{
- B b;
- return r;
-}