aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/search.c11
2 files changed, 8 insertions, 7 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3e51108..1941f15 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -3,11 +3,13 @@
* lex.c (real_yylex): Don't warn about long long constants if
we're allowing long long.
-1998-08-23 Martin von Löwis <loewis@informatik.hu-berlin.de>
+1998-08-24 Martin von Löwis <loewis@informatik.hu-berlin.de>
* decl.c (pushdecl): Use IDENTIFIER_NAMESPACE_VALUE instead of
accessing bindings directly.
+ * search.c (my_tree_cons): Reimplement.
+
* lang-specs.h: Remove __HONOR_STD.
* inc/exception, inc/new, inc/new.h, inc/typeinfo: Likewise.
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index 79042e1..6367358 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -261,13 +261,12 @@ static tree
my_tree_cons (purpose, value, chain)
tree purpose, value, chain;
{
- tree p = (tree)obstack_alloc (&type_obstack_entries, sizeof (struct tree_list));
- bzero ((char *)p, sizeof (struct tree_list));
+ tree p;
+ struct obstack *ambient_obstack = current_obstack;
+ current_obstack = &type_obstack_entries;
+ p = tree_cons (purpose, value, chain);
+ current_obstack = ambient_obstack;
++my_tree_node_counter;
- TREE_SET_CODE (p, TREE_LIST);
- TREE_PURPOSE (p) = purpose;
- TREE_VALUE (p) = value;
- TREE_CHAIN (p) = chain;
return p;
}