aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2004-03-13 19:16:14 +0100
committerEric Botcazou <ebotcazou@gcc.gnu.org>2004-03-13 18:16:14 +0000
commite6d55fd78e06b24a4d3ed3afbce710acbdb47381 (patch)
treea6144fe568a13119f10b6b8b1e2f18f21066b8d5 /gcc/expr.c
parentcfbab41c7dc3ab8ee146d1787cb0fe50800a83c8 (diff)
downloadgcc-e6d55fd78e06b24a4d3ed3afbce710acbdb47381.zip
gcc-e6d55fd78e06b24a4d3ed3afbce710acbdb47381.tar.gz
gcc-e6d55fd78e06b24a4d3ed3afbce710acbdb47381.tar.bz2
re PR tree-optimization/14470 ([tree-ssa] trouble with post-increment)
PR middle-end/14470 * expr.c (store_expr): Call emit_queue before generating the move from the temporary to the original target. Protect the temporary from emit_queue. From-SVN: r79452
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index d526750..46140bb 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4245,7 +4245,9 @@ store_expr (tree exp, rtx target, int want_value)
bit-initialized. */
&& expr_size (exp) != const0_rtx)
{
+ emit_queue();
target = protect_from_queue (target, 1);
+ temp = protect_from_queue (temp, 0);
if (GET_MODE (temp) != GET_MODE (target)
&& GET_MODE (temp) != VOIDmode)
{