diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-19 09:40:25 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-19 09:40:25 +0000 |
commit | cc41c998cd7a0a9d7aa46721d7bec75376923e2a (patch) | |
tree | 9335fe7171096c65ae6ba562393e40be4ad83fcc /gcc/gimplify.c | |
parent | d7ed0a45cb30fc6b41f04a163c02d550bb487a18 (diff) | |
download | gcc-cc41c998cd7a0a9d7aa46721d7bec75376923e2a.tar.gz |
2012-03-19 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 185514 using svnmerge
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@185516 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 07eb8fd81df..3c412944e33 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -2265,17 +2265,18 @@ gimplify_self_mod_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p, arith_code = POINTER_PLUS_EXPR; } - t1 = build2 (arith_code, TREE_TYPE (*expr_p), lhs, rhs); - if (postfix) { - gimplify_assign (lvalue, t1, orig_post_p); + tree t2 = get_initialized_tmp_var (lhs, pre_p, NULL); + t1 = build2 (arith_code, TREE_TYPE (*expr_p), t2, rhs); + gimplify_assign (lvalue, t1, pre_p); gimplify_seq_add_seq (orig_post_p, post); - *expr_p = lhs; + *expr_p = t2; return GS_ALL_DONE; } else { + t1 = build2 (arith_code, TREE_TYPE (*expr_p), lhs, rhs); *expr_p = build2 (MODIFY_EXPR, TREE_TYPE (lvalue), lvalue, t1); return GS_OK; } |