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:
Eric Botcazou 2004-03-13 19:16:14 +01:00 committed by Eric Botcazou
parent cfbab41c7d
commit e6d55fd78e
4 changed files with 31 additions and 0 deletions

View File

@ -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>
PR target/14533

View File

@ -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)
{

View File

@ -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>
PR target/14533
@ -21388,3 +21392,4 @@ rlsruhe.de>
correspond to c-torture 1.11.
* New file.

View 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;
}