aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-07-28 18:46:31 +0000
committerRichard Stallman <rms@gnu.org>1993-07-28 18:46:31 +0000
commitb6f01001b162dfcb6919f37908ab7dd01edc831f (patch)
treeb75e63e824412d32e3501f4c9dbb9ea40e6cafc5 /gcc
parent7f3d4b2f7586a5049a8dbb8a572ebf04ba58c92e (diff)
downloadgcc-b6f01001b162dfcb6919f37908ab7dd01edc831f.zip
gcc-b6f01001b162dfcb6919f37908ab7dd01edc831f.tar.gz
gcc-b6f01001b162dfcb6919f37908ab7dd01edc831f.tar.bz2
(expand_expr, case ADDR_EXPR): Treat CONCAT like REG.
From-SVN: r5030
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 6a4a258..85f78a7 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -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. */