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
This commit is contained in:
parent
cfbab41c7d
commit
e6d55fd78e
|
@ -1,3 +1,10 @@
|
||||||
|
2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
2004-03-13 Jakub Jelinek <jakub@redhat.com>
|
2004-03-13 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR target/14533
|
PR target/14533
|
||||||
|
|
|
@ -4245,7 +4245,9 @@ store_expr (tree exp, rtx target, int want_value)
|
||||||
bit-initialized. */
|
bit-initialized. */
|
||||||
&& expr_size (exp) != const0_rtx)
|
&& expr_size (exp) != const0_rtx)
|
||||||
{
|
{
|
||||||
|
emit_queue();
|
||||||
target = protect_from_queue (target, 1);
|
target = protect_from_queue (target, 1);
|
||||||
|
temp = protect_from_queue (temp, 0);
|
||||||
if (GET_MODE (temp) != GET_MODE (target)
|
if (GET_MODE (temp) != GET_MODE (target)
|
||||||
&& GET_MODE (temp) != VOIDmode)
|
&& GET_MODE (temp) != VOIDmode)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||||
|
|
||||||
|
* gcc.c-torture/execute/20040313-1.c: New test.
|
||||||
|
|
||||||
2004-03-13 Jakub Jelinek <jakub@redhat.com>
|
2004-03-13 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR target/14533
|
PR target/14533
|
||||||
|
@ -21388,3 +21392,4 @@ rlsruhe.de>
|
||||||
correspond to c-torture 1.11.
|
correspond to c-torture 1.11.
|
||||||
|
|
||||||
* New file.
|
* New file.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* PR middle-end/14470 */
|
||||||
|
/* Origin: Lodewijk Voge <lvoge@cs.vu.nl> */
|
||||||
|
|
||||||
|
extern void abort(void);
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t[1025] = { 1024 }, d;
|
||||||
|
|
||||||
|
d = 0;
|
||||||
|
d = t[d]++;
|
||||||
|
if (t[0] != 1025)
|
||||||
|
abort();
|
||||||
|
if (d != 1024)
|
||||||
|
abort();
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue