diff options
author | Jason Merrill <merrill@gnu.org> | 1995-03-03 03:45:02 +0000 |
---|---|---|
committer | Jason Merrill <merrill@gnu.org> | 1995-03-03 03:45:02 +0000 |
commit | f283f66b1f8eb2061535a609ae850998b9e44306 (patch) | |
tree | 4b82f03940374ac91238293e3a2fcbce313f6850 /gcc | |
parent | f7393e851aa98841e05af3502fd27d85d92b594b (diff) | |
download | gcc-f283f66b1f8eb2061535a609ae850998b9e44306.zip gcc-f283f66b1f8eb2061535a609ae850998b9e44306.tar.gz gcc-f283f66b1f8eb2061535a609ae850998b9e44306.tar.bz2 |
(expand_expr, CLEANUP_POINT_EXPR): Force the operand out
of memory before running cleanups.
From-SVN: r9117
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -4980,7 +4980,10 @@ expand_expr (exp, target, tmode, modifier) int old_temp_level = target_temp_slot_level; push_temp_slots (); target_temp_slot_level = temp_slot_level; - op0 = expand_expr (TREE_OPERAND (exp, 0), target, VOIDmode, modifier); + op0 = expand_expr (TREE_OPERAND (exp, 0), target, tmode, modifier); + /* If we're going to use this value, load it up now. */ + if (! ignore) + op0 = force_not_mem (op0); expand_cleanups_to (old_cleanups); preserve_temp_slots (op0); free_temp_slots (); |