summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/egcs/gcc/expr.c')
-rw-r--r--gnu/egcs/gcc/expr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gnu/egcs/gcc/expr.c b/gnu/egcs/gcc/expr.c
index 829a3fe5535..db562c895d3 100644
--- a/gnu/egcs/gcc/expr.c
+++ b/gnu/egcs/gcc/expr.c
@@ -5162,7 +5162,9 @@ force_operand (value, target)
&& GET_CODE (XEXP (value, 0)) == PLUS
&& GET_CODE (XEXP (XEXP (value, 0), 0)) == REG
&& REGNO (XEXP (XEXP (value, 0), 0)) >= FIRST_VIRTUAL_REGISTER
- && REGNO (XEXP (XEXP (value, 0), 0)) <= LAST_VIRTUAL_REGISTER)
+ && REGNO (XEXP (XEXP (value, 0), 0)) <= LAST_VIRTUAL_REGISTER
+ && (!flag_propolice_protection
+ || XEXP (XEXP (value, 0), 0) != virtual_stack_vars_rtx))
{
rtx temp = expand_binop (GET_MODE (value), binoptab,
XEXP (XEXP (value, 0), 0), op2,