+++ /dev/null
-// PR optimization/6086
-// { dg-do run }
-// { dg-options "-O" }
-
-extern "C" void abort (void);
-
-struct A
-{
- A (int x, int y);
- int a, b;
- int foo () { return a; }
- int bar () { return b; }
-};
-
-struct B
-{
- virtual ~B ();
- virtual A baz () const;
-};
-
-struct C
-{
- A foo () const;
- B *c;
-};
-
-A C::foo () const
-{
- int x, y;
- x = c->baz ().foo ();
- y = c->baz ().bar ();
- return A (x, y);
-}
-
-A B::baz () const
-{
- return A (4, 8);
-}
-
-A::A (int x, int y)
-{
- a = x;
- b = y;
-}
-
-B::~B ()
-{
-}
-
-int
-main ()
-{
- C the_c;
- B the_b;
- the_c.c = &the_b;
- if (the_c.foo().a != 4)
- abort ();
- return 0;
-}