diff options
author | Mark Mitchell <mark@codesourcery.com> | 1999-11-24 01:19:04 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1999-11-24 01:19:04 +0000 |
commit | 582db8e43021e33373aafbb03eafe6985fc4a0e8 (patch) | |
tree | 4c2d383db592a8c376ae9fdeeabe92711772da13 /gcc/tree.h | |
parent | 87d35858fcc210973b63d09665d9677be6f4ec6a (diff) | |
download | gcc-582db8e43021e33373aafbb03eafe6985fc4a0e8.zip gcc-582db8e43021e33373aafbb03eafe6985fc4a0e8.tar.gz gcc-582db8e43021e33373aafbb03eafe6985fc4a0e8.tar.bz2 |
tree.h (unsave_expr_1): New function.
* tree.h (unsave_expr_1): New function.
(lang_unsave): New variable.
(get_callee_fndecl): New function.
* tree.c (unsave_expr_now_r): New function.
(lang_unsave): Define.
(unsave_expr_1): Likewise.
(unsave_expr_now_r): Split out from unsave_expr_now.
(unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise,
call unsave_expr_now_r.
(get_callee_fndecl): Define.
From-SVN: r30646
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 21 |
1 files changed, 15 insertions, 6 deletions
@@ -1845,20 +1845,28 @@ extern tree save_expr PROTO((tree)); extern int first_rtl_op PROTO((enum tree_code)); /* unsave_expr (EXP) returns an expression equivalent to EXP but it - can be used multiple times and will evaluate EXP, in its entirety + can be used multiple times and will evaluate EXP in its entirety each time. */ extern tree unsave_expr PROTO((tree)); -/* unsave_expr_now (EXP) resets EXP in place, so that it can be - expanded again. */ +/* Reset EXP in place so that it can be expaned again. Does not + recurse into subtrees. */ + +extern void unsave_expr_1 PROTO((tree)); + +/* Like unsave_expr_1, but recurses into all subtrees. */ extern tree unsave_expr_now PROTO((tree)); -/* If non-null, a language specific helper for unsave_expr_now. */ +/* If non-null, these are language-specific helper functions for + unsave_expr_now. If present, LANG_UNSAVE is called before its + argument (an UNSAVE_EXPR) is to be unsaved, and all other + processing in unsave_expr_now is aborted. LANG_UNSAVE_EXPR_NOW is + called from unsave_expr_1 for language-specific tree codes. */ +extern void (*lang_unsave) PROTO((tree *)); +extern void (*lang_unsave_expr_now) PROTO((tree)); -extern void (*lang_unsave_expr_now) PROTO((tree)); - /* Return 1 if EXP contains a PLACEHOLDER_EXPR; i.e., if it represents a size or offset that depends on a field within a record. @@ -2045,6 +2053,7 @@ extern tree get_set_constructor_bytes PROTO((tree, extern int get_alias_set PROTO((tree)); extern int new_alias_set PROTO((void)); extern int (*lang_get_alias_set) PROTO((tree)); +extern tree get_callee_fndecl PROTO((tree)); /* In stmt.c */ |