summaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2001-01-04 19:01:22 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2001-01-04 19:01:22 +0000
commit6ba31ca822ac6a74987d369dfbb186e3af39339f (patch)
tree43183e5b0e43cb60aef06b6903b258cfc588f7f5 /gcc/tree.c
parentec41e30877ff18ac975af9741748f13f7aa2f21d (diff)
downloadgcc-6ba31ca822ac6a74987d369dfbb186e3af39339f.tar.gz
* tree.c (copy_node): Remove documentation about obstacks.
(buidl1): Check that nobody tries to build 2-argument nodes this way. * call.c (build_conv): Don't use build1 for USER_CONV. * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38686 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index a836b99ea2a..865aacd6e6a 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -469,10 +469,7 @@ make_lang_type (code)
}
/* Return a new node with the same contents as NODE except that its
- TREE_CHAIN is zero and it has a fresh uid. Unlike make_node, this
- function always performs the allocation on the CURRENT_OBSTACK;
- it's up to the caller to pick the right obstack before calling this
- function. */
+ TREE_CHAIN is zero and it has a fresh uid. */
tree
copy_node (node)
@@ -2424,6 +2421,13 @@ build1 (code, type, node)
kind = e_kind;
#endif
+#ifdef ENABLE_CHECKING
+ if (TREE_CODE_CLASS (code) == '2'
+ || TREE_CODE_CLASS (code) == '<'
+ || TREE_CODE_LENGTH (code) != 1)
+ abort ();
+#endif /* ENABLE_CHECKING */
+
length = sizeof (struct tree_exp);
t = ggc_alloc_tree (length);