+++ /dev/null
-// PR c++/6316
-// This testcase ICEd because when deferred bar()::F::F() was being
-// expanded, containing bar() was still deferred and had DECL_EXTERNAL set
-// (and DECL_NOT_REALLY_EXTERN too).
-// { dg-do compile }
-// { dg-options "-O3" }
-
-struct A { ~A() throw() {} };
-template<typename T, typename U> struct B { U a; B(const T *); };
-typedef B<char, A> C;
-struct D { D(); };
-struct E { virtual ~E(); };
-
-E *bar ();
-
-void
-foo ()
-{
- E *a = bar ();
-}
-
-extern char *z [];
-
-E *
-bar ()
-{
- struct F : public E
- {
- F ()
- {
- for (int i = 0; i < 2; i++)
- C e = z[i];
- }
- D x, y;
- };
- return new F ();
-}
-
-int
-main ()
-{
- foo ();
-}