aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/expr.cc')
-rw-r--r--gcc/expr.cc10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/expr.cc b/gcc/expr.cc
index 174f8ac..9a37bff 100644
--- a/gcc/expr.cc
+++ b/gcc/expr.cc
@@ -11248,17 +11248,15 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
set_mem_addr_space (temp, as);
if (TREE_THIS_VOLATILE (exp))
MEM_VOLATILE_P (temp) = 1;
- if (modifier != EXPAND_WRITE
- && modifier != EXPAND_MEMORY
- && !inner_reference_p
+ if (modifier == EXPAND_WRITE || modifier == EXPAND_MEMORY)
+ return temp;
+ if (!inner_reference_p
&& mode != BLKmode
&& align < GET_MODE_ALIGNMENT (mode))
temp = expand_misaligned_mem_ref (temp, mode, unsignedp, align,
modifier == EXPAND_STACK_PARM
? NULL_RTX : target, alt_rtl);
- if (reverse
- && modifier != EXPAND_MEMORY
- && modifier != EXPAND_WRITE)
+ if (reverse)
temp = flip_storage_order (mode, temp);
return temp;
}