Backport:
2004-03-09 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.
From-SVN: r79429
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport:
+ 2004-03-09 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-10 James E Wilson <wilson@specifixinc.com>
PR target/13877
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)
{
-extern void abort ();
+/* PR middle-end/14470 */
+/* Origin: Lodewijk Voge <lvoge@cs.vu.nl> */
-int foo(unsigned short x)
-{
- unsigned short y;
- y = x > 32767 ? x - 32768 : 0;
- return y;
-}
+extern void abort(void);
int main()
{
- if (foo (0) != 0)
- abort ();
- if (foo (32767) != 0)
- abort ();
- if (foo (32768) != 0)
- abort ();
- if (foo (32769) != 1)
- abort ();
- if (foo (65535) != 32767)
- abort ();
+ int t[1025] = { 1024 }, d;
+
+ d = 0;
+ d = t[d]++;
+ if (t[0] != 1025)
+ abort();
return 0;
}