diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-01-15 10:02:59 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-01-15 10:02:59 -0500 |
commit | 3d27140a15ebf66af41c289758ccd3d2b1159edc (patch) | |
tree | 057e5c5496357d3663f9f288e34f26832ae70a0f /gcc | |
parent | acc3b6d90a6f069f15d57ae28d82262809d9d8bc (diff) | |
download | gcc-3d27140a15ebf66af41c289758ccd3d2b1159edc.zip gcc-3d27140a15ebf66af41c289758ccd3d2b1159edc.tar.gz gcc-3d27140a15ebf66af41c289758ccd3d2b1159edc.tar.bz2 |
(expand_expr, case COMPONENT_REF): Don't make recursive call on object
with EXPAND_SUM.
From-SVN: r10989
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 10 |
1 files changed, 3 insertions, 7 deletions
@@ -1,5 +1,5 @@ /* Convert tree expression to rtl instructions, for GNU compiler. - Copyright (C) 1988, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright (C) 1988, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. This file is part of GNU CC. @@ -5129,11 +5129,7 @@ expand_expr (exp, target, tmode, modifier) if (tem == exp) abort (); - /* In some cases, we will be offsetting OP0's address by a constant. - So get it as a sum, if possible. If we will be using it - directly in an insn, we validate it. - - If TEM's type is a union of variable size, pass TARGET to the inner + /* If TEM's type is a union of variable size, pass TARGET to the inner computation, since it will need a temporary and TARGET is known to have to do. This occurs in unchecked conversion in Ada. */ @@ -5142,7 +5138,7 @@ expand_expr (exp, target, tmode, modifier) && (TREE_CODE (TYPE_SIZE (TREE_TYPE (tem))) != INTEGER_CST) ? target : NULL_RTX), - VOIDmode, EXPAND_SUM); + VOIDmode, 0); /* If this is a constant, put it into a register if it is a legitimate constant and memory if it isn't. */ |