re PR c++/6255 (ICE with templatess)
authorJason Merrill <jason@redhat.com>
Tue, 9 Jul 2002 23:45:37 +0000 (19:45 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 9 Jul 2002 23:45:37 +0000 (19:45 -0400)
        PR c++/6255
        * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
        modifying the old one.

From-SVN: r55352

gcc/cp/ChangeLog
gcc/cp/decl.c

index 465716d..70066d1 100644 (file)
@@ -1,3 +1,9 @@
+2002-07-10  Jason Merrill  <jason@redhat.com>
+
+       PR c++/6255
+       * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
+       modifying the old one.
+
 2002-07-09  Mark Mitchell  <mark@codesourcery.com>
 
        * cp-tree.h (constructor_name_p): Declare it.
index b5d18b4..11d8fe5 100644 (file)
@@ -6072,7 +6072,13 @@ lookup_name_real (name, prefer_type, nonclass, namespaces_only)
              if (got_scope && got_scope != type
                  && val && TREE_CODE (val) == TYPE_DECL
                  && TREE_CODE (TREE_TYPE (val)) == TYPENAME_TYPE)
-               TYPE_CONTEXT (TREE_TYPE (val)) = got_scope;
+               {
+                 val = TREE_TYPE (val);
+                 val = build_typename_type (got_scope, name,
+                                            TYPENAME_TYPE_FULLNAME (val),
+                                            TREE_TYPE (val));
+                 val = TYPE_STUB_DECL (val);
+               }
            }
        }
       else