OSDN Git Service

(expand_expr, case ADDR_EXPR): Treat CONCAT like REG.
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Jul 1993 18:46:31 +0000 (18:46 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Jul 1993 18:46:31 +0000 (18:46 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5030 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/expr.c

index 6a4a258..85f78a7 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. */