* pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting.
authorJason Merrill <jason@redhat.com>
Wed, 7 Sep 2011 17:11:20 +0000 (13:11 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 7 Sep 2011 17:11:20 +0000 (13:11 -0400)
From-SVN: r178650

gcc/cp/ChangeLog
gcc/cp/pt.c

index 2fe60fe03c7fe57274771362df352549db449508..6d8430e5897a54e42f2683d3af021387bb314c60 100644 (file)
@@ -1,3 +1,7 @@
+2011-09-07  Jason Merrill  <jason@redhat.com>
+
+       * pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting.
+
 2011-09-06  Jason Merrill  <jason@redhat.com>
 
        PR c++/50296
index 1f43ff1fbf0376f220c5690a31796abbed123688..d883c1635fa7ad09622cb633b15b298176df15ea 100644 (file)
@@ -9590,14 +9590,13 @@ tsubst_aggr_type (tree t,
          /* First, determine the context for the type we are looking
             up.  */
          context = TYPE_CONTEXT (t);
-         if (context)
+         if (context && TYPE_P (context))
            {
              context = tsubst_aggr_type (context, args, complain,
                                          in_decl, /*entering_scope=*/1);
              /* If context is a nested class inside a class template,
                 it may still need to be instantiated (c++/33959).  */
-             if (TYPE_P (context))
-               context = complete_type (context);
+             context = complete_type (context);
            }
 
          /* Then, figure out what arguments are appropriate for the