OSDN Git Service

(expand_expr, case CONSTRUCTOR): Don't use a PARALLEL
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Oct 1996 18:30:25 +0000 (18:30 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Oct 1996 18:30:25 +0000 (18:30 +0000)
target.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13085 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/expr.c

index abdfba7..09aeeeb 100644 (file)
@@ -5229,7 +5229,10 @@ expand_expr (exp, target, tmode, modifier)
 
       else
        {
-         if (target == 0 || ! safe_from_p (target, exp))
+         /* Handle calls that pass values in multiple non-contiguous
+            locations.  The Irix 6 ABI has examples of this.  */
+         if (target == 0 || ! safe_from_p (target, exp)
+             || GET_CODE (target) == PARALLEL)
            {
              if (mode != BLKmode && ! TREE_ADDRESSABLE (exp))
                target = gen_reg_rtx (tmode != VOIDmode ? tmode : mode);