aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>1999-11-12 16:52:08 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1999-11-12 16:52:08 +0000
commitd26f8097a31ff6a47d4b0861677ba44a8a25efec (patch)
treeca4319d8b6458e57f5d5a32ce72a5dfb816338ac /gcc/tree.h
parent109cceda875779c29ee0ed68cf8ad0d4d5d44ce5 (diff)
downloadgcc-d26f8097a31ff6a47d4b0861677ba44a8a25efec.zip
gcc-d26f8097a31ff6a47d4b0861677ba44a8a25efec.tar.gz
gcc-d26f8097a31ff6a47d4b0861677ba44a8a25efec.tar.bz2
tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
* tree.h (SAVE_EXPR_PERSISTENT_P): New macro. * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially. (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P expressions. * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on variable-sized array bounds. From-SVN: r30503
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index 42760c8..1aa72d7 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -717,6 +717,11 @@ struct tree_vec
#define SAVE_EXPR_CONTEXT(NODE) TREE_OPERAND(NODE, 1)
#define SAVE_EXPR_RTL(NODE) (*(struct rtx_def **) &EXPR_CHECK (NODE)->exp.operands[2])
#define SAVE_EXPR_NOPLACEHOLDER(NODE) TREE_UNSIGNED (NODE)
+/* Nonzero if the SAVE_EXPRs value should be kept, even if it occurs
+ both in normal code and in a handler. (Normally, in a handler, all
+ SAVE_EXPRs are unsaved, meaning that there values are
+ recalculated.) */
+#define SAVE_EXPR_PERSISTENT_P(NODE) TREE_ASM_WRITTEN (NODE)
/* In a RTL_EXPR node. */
#define RTL_EXPR_SEQUENCE(NODE) (*(struct rtx_def **) &EXPR_CHECK (NODE)->exp.operands[0])