------- Comment #2 from pinskia at gcc dot gnu dot org  2008-06-05 23:13 -------
And the fix for the second issue:
Index: expr.c
===================================================================
--- expr.c      (revision 2510)
+++ expr.c      (working copy)
@@ -7654,6 +7654,16 @@ expand_expr_real_1 (tree exp, rtx target
              {
                if (target == 0)
                  target = assign_temp (type, 0, 1, 1);
+
+               /* If we don't have a memory location for op0, make a new
location for it. */
+               if (!MEM_P (op0))
+                 {
+                   rtx op0_mem = assign_stack_temp (GET_MODE (op0),
+                                                    GET_MODE_SIZE (GET_MODE
(op0)),
+                                                    0);
+                   emit_move_insn (op0_mem, op0);
+                   op0 = op0_mem;
+                 }

                if (bitsize == 0)
                  return target;


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36444

Reply via email to