aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2000-03-05 20:43:44 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2000-03-05 20:43:44 +0000
commit9f93702662f417705f1fc306ffbd078fef8abe02 (patch)
tree7b9b1d01cf0d4c4508ab5b483e757d3c608c3305 /gcc/tree.h
parent591ccf92b35994b10f846ef630cd1a58d53a8f12 (diff)
downloadgcc-9f93702662f417705f1fc306ffbd078fef8abe02.zip
gcc-9f93702662f417705f1fc306ffbd078fef8abe02.tar.gz
gcc-9f93702662f417705f1fc306ffbd078fef8abe02.tar.bz2
tree.def (RTL_EXPR): Update documentation.
* tree.def (RTL_EXPR): Update documentation. * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro. * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE. * function.c (preserve_rtl_expr_temp): New function. (preserve_rtl_expr_temps): Likewise. (preserve_rtl_expr_result): Use it. From-SVN: r32344
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index 1a82758..722b219 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -749,6 +749,10 @@ struct tree_vec
/* In a RTL_EXPR node. */
#define RTL_EXPR_SEQUENCE(NODE) (*(struct rtx_def **) &EXPR_CHECK (NODE)->exp.operands[0])
#define RTL_EXPR_RTL(NODE) (*(struct rtx_def **) &EXPR_CHECK (NODE)->exp.operands[1])
+/* Nonzero if the RTL_EXPR does not define a scope, i.e., if
+ temporaries defined during its scope should persist even after the
+ RTL_EXPR has been expanded. */
+#define RTL_EXPR_HAS_NO_SCOPE(NODE) TREE_ASM_WRITTEN (NODE)
/* In a CALL_EXPR node. */
#define CALL_EXPR_RTL(NODE) (*(struct rtx_def **) &EXPR_CHECK (NODE)->exp.operands[2])