aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorJason Merrill <jason@casey.cygnus.com>2000-03-29 20:40:37 +0000
committerJason Merrill <jason@gcc.gnu.org>2000-03-29 15:40:37 -0500
commit700473ab02b3fdd6c4c8d0fa4fcbc218116d7146 (patch)
treeb7dfde5673777a9ff6af2467e3188ef73e60c109 /gcc/tree.c
parentf2704b9f2aaddf08a546d689e49a1182a0908b9f (diff)
downloadgcc-700473ab02b3fdd6c4c8d0fa4fcbc218116d7146.zip
gcc-700473ab02b3fdd6c4c8d0fa4fcbc218116d7146.tar.gz
gcc-700473ab02b3fdd6c4c8d0fa4fcbc218116d7146.tar.bz2
tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't been expanded.
* tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't been expanded. From-SVN: r32814
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 826327e..f018e9d 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;