aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorGavin Romig-Koch <gavin@cygnus.com>1999-08-13 18:22:59 +0000
committerGavin Romig-Koch <gavin@gcc.gnu.org>1999-08-13 18:22:59 +0000
commit0a818f84ce73107a93940532da63c5f1738818e3 (patch)
tree42b99d02c99ecd90d6223b6db07d98fd410eaa4e /gcc/tree.c
parente3beae8c3c6ede0f96c0f49f8c456bb22786225c (diff)
downloadgcc-0a818f84ce73107a93940532da63c5f1738818e3.zip
gcc-0a818f84ce73107a93940532da63c5f1738818e3.tar.gz
gcc-0a818f84ce73107a93940532da63c5f1738818e3.tar.bz2
For gcc:
tree.c (lang_unsave_expr_now) : New. (unsave_expr_now): Call lang_unsave_expr_now. tree.h (lang_unsave_expr_now) : New. For gcc/cp: cp-tree.h (init_cplus_unsave): New. (cplus_unsave_expr_now): New. lex.c (init_parse): Call init_cplus_unsave. tree.c (init_cplus_unsave): New. (cplus_unsave_expr_now): New. From-SVN: r28705
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 9ab2fea..2516301 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -269,6 +269,10 @@ static void build_real_from_int_cst_1 PROTO((PTR));
extern char *mode_name[];
void gcc_obstack_init ();
+
+/* If non-null, a language specific helper for unsave_expr_now. */
+
+int (*lang_unsave_expr_now) PROTO((tree));
/* Init the principal obstacks. */
@@ -2426,7 +2430,11 @@ first_rtl_op (code)
}
/* Modify a tree in place so that all the evaluate only once things
- are cleared out. Return the EXPR given. */
+ are cleared out. Return the EXPR given.
+
+ LANG_UNSAVE_EXPR_NOW, if set, is a pointer to a function to handle
+ language specific nodes.
+*/
tree
unsave_expr_now (expr)
@@ -2473,6 +2481,8 @@ unsave_expr_now (expr)
break;
default:
+ if (lang_unsave_expr_now)
+ (*lang_unsave_expr_now) (expr);
break;
}