(expand_expr, case ADDR_EXPR): Treat CONCAT like REG.
authorRichard Stallman <rms@gnu.org>
Wed, 28 Jul 1993 18:46:31 +0000 (18:46 +0000)
committerRichard Stallman <rms@gnu.org>
Wed, 28 Jul 1993 18:46:31 +0000 (18:46 +0000)
From-SVN: r5030

gcc/expr.c

index 6a4a258c859c25274f181926aac826224c5d0be9..85f78a7dfc6022b18480b14fc3d381e9b4f4bfef 100644 (file)
@@ -5369,7 +5369,11 @@ expand_expr (exp, target, tmode, modifier)
            op0 = force_const_mem (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))),
                                   op0);
 
-         if (GET_CODE (op0) == REG || GET_CODE (op0) == SUBREG)
+         /* These cases happen in Fortran.  Is that legitimate?
+            Should Fortran work in another way?
+            Do they happen in C?  */
+         if (GET_CODE (op0) == REG || GET_CODE (op0) == SUBREG
+             || GET_CODE (op0) == CONCAT)
            {
              /* If this object is in a register, it must be not
                 be BLKmode. */