aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-07-04 11:44:14 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-07-04 11:44:14 -0400
commit8d8c9ba91becaf0c51be4668a7184afab15dfc02 (patch)
tree574b048a440d3776b994f7d02deef0df72554c55
parent4ae9b5f55b9f7eaf80f4a6613e7752988eb757ee (diff)
downloadgcc-8d8c9ba91becaf0c51be4668a7184afab15dfc02.zip
gcc-8d8c9ba91becaf0c51be4668a7184afab15dfc02.tar.gz
gcc-8d8c9ba91becaf0c51be4668a7184afab15dfc02.tar.bz2
(get_inner_reference): Delete using alternate mode for bitfield; we
don't make bitfields anymore if not needed. From-SVN: r12398
-rw-r--r--gcc/expr.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 09eff90..09fc824 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4240,11 +4240,9 @@ get_inner_reference (exp, pbitsize, pbitpos, poffset, pmode,
constant = pos, var = integer_zero_node;
*pbitpos += TREE_INT_CST_LOW (constant);
-
- if (var)
- offset = size_binop (PLUS_EXPR, offset,
- size_binop (EXACT_DIV_EXPR, var,
- size_int (BITS_PER_UNIT)));
+ offset = size_binop (PLUS_EXPR, offset,
+ size_binop (EXACT_DIV_EXPR, var,
+ size_int (BITS_PER_UNIT)));
}
else if (TREE_CODE (exp) == ARRAY_REF)
@@ -4296,20 +4294,6 @@ get_inner_reference (exp, pbitsize, pbitpos, poffset, pmode,
exp = TREE_OPERAND (exp, 0);
}
- /* If this was a bit-field, see if there is a mode that allows direct
- access in case EXP is in memory. */
- if (mode == VOIDmode && *pbitsize != 0 && *pbitpos % *pbitsize == 0)
- {
- mode = mode_for_size (*pbitsize,
- (TYPE_MODE (TREE_TYPE (orig_exp)) == BLKmode
- ? MODE_INT
- : GET_MODE_CLASS (TYPE_MODE
- (TREE_TYPE (orig_exp)))),
- 0);
- if (mode == BLKmode)
- mode = VOIDmode;
- }
-
if (integer_zerop (offset))
offset = 0;