Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / g++.dg / opt / inline1.C
blob55b931138a115474249b6c843a109f4084dc45b6
1 // PR c++/6316
2 // This testcase ICEd because when deferred bar()::F::F() was being
3 // expanded, containing bar() was still deferred and had DECL_EXTERNAL set
4 // (and DECL_NOT_REALLY_EXTERN too).
5 // { dg-do compile }
6 // { dg-options "-O3" }
8 struct A { ~A() throw() {} };
9 template<typename T, typename U> struct B { U a; B(const T *); };
10 typedef B<char, A> C;
11 struct D { D(); };
12 struct E { virtual ~E(); };
14 E *bar ();
16 void
17 foo ()
19   E *a = bar ();
22 extern char *z [];
24 E *
25 bar ()
27   struct F : public E
28   {
29     F ()
30     {
31       for (int i = 0; i < 2; i++)
32         C e = z[i];
33     }
34     D x, y;
35   };
36   return new F ();
39 int
40 main ()
42   foo ();