(expand_expr, case CONSTRUCTOR): Don't use a PARALLEL
authorJim Wilson <wilson@gcc.gnu.org>
Thu, 31 Oct 1996 18:30:25 +0000 (10:30 -0800)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 31 Oct 1996 18:30:25 +0000 (10:30 -0800)
target.

From-SVN: r13085

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);