Fix winsup build failure reported by Chris Faylor.
authorJim Wilson <wilson@cygnus.com>
Thu, 15 Jul 1999 15:40:59 +0000 (15:40 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 15 Jul 1999 15:40:59 +0000 (08:40 -0700)
* tree.c (build_type_attribute_variant): Move current_obstack restore
after build_qualified_type call.

From-SVN: r28116

gcc/ChangeLog
gcc/tree.c

index 3a19f31..7c986ba 100644 (file)
@@ -1,3 +1,8 @@
+Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
+
+       * tree.c (build_type_attribute_variant): Move current_obstack restore
+       after build_qualified_type call.
+
 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
 
        * configure.in: Use t-iris6, even with GNU LD.
index b61c115..5e29d2f 100644 (file)
@@ -3300,7 +3300,6 @@ build_type_attribute_variant (ttype, attribute)
         current_obstack = TYPE_OBSTACK (ttype);
 
       ntype = copy_node (ttype);
-      current_obstack = ambient_obstack;
 
       TYPE_POINTER_TO (ntype) = 0;
       TYPE_REFERENCE_TO (ntype) = 0;
@@ -3335,6 +3334,12 @@ build_type_attribute_variant (ttype, attribute)
 
       ntype = type_hash_canon (hashcode, ntype);
       ttype = build_qualified_type (ntype, TYPE_QUALS (ttype));
+
+      /* We must restore the current obstack after the type_hash_canon call,
+        because type_hash_canon calls type_hash_add for permanent types, and
+        then type_hash_add calls oballoc expecting to get something permanent
+        back.  */
+      current_obstack = ambient_obstack;
     }
 
   return ttype;