diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-29 20:40:37 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-29 20:40:37 +0000 |
commit | cef46d40ab159052bf5542a6699012ec9c954c4c (patch) | |
tree | b7dfde5673777a9ff6af2467e3188ef73e60c109 /gcc/tree.c | |
parent | 6d731e4def9f9f9b3cb2d8621092c7655d1b7435 (diff) | |
download | gcc-cef46d40ab159052bf5542a6699012ec9c954c4c.tar.gz |
* tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
been expanded.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32814 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree.c b/gcc/tree.c index 826327e0ee6..f018e9d86cf 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -2605,6 +2605,13 @@ unsave_expr_1 (expr) break; case TARGET_EXPR: + /* Don't mess with a TARGET_EXPR that hasn't been expanded. + It's OK for this to happen if it was part of a subtree that + isn't immediately expanded, such as operand 2 of another + TARGET_EXPR. */ + if (TREE_OPERAND (expr, 1)) + break; + TREE_OPERAND (expr, 1) = TREE_OPERAND (expr, 3); TREE_OPERAND (expr, 3) = NULL_TREE; break; |