summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc/tree.c
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>1999-08-23 20:32:32 +0000
committerMarc Espie <espie@cvs.openbsd.org>1999-08-23 20:32:32 +0000
commitef233545e6c3dcf885a8b3178a859a23604b359c (patch)
tree8f4f503c82a377012f9429ed7e24abfbd6aabb98 /gnu/egcs/gcc/tree.c
parent20915043a05410a0247b150f77f71c94c43ce2ae (diff)
Update to gcc 2.95.1, official release.
Diffstat (limited to 'gnu/egcs/gcc/tree.c')
-rw-r--r--gnu/egcs/gcc/tree.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gnu/egcs/gcc/tree.c b/gnu/egcs/gcc/tree.c
index b61c11587ec..5e29d2f9115 100644
--- a/gnu/egcs/gcc/tree.c
+++ b/gnu/egcs/gcc/tree.c
@@ -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;