diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-07-04 11:44:14 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-07-04 11:44:14 -0400 |
commit | 8d8c9ba91becaf0c51be4668a7184afab15dfc02 (patch) | |
tree | 574b048a440d3776b994f7d02deef0df72554c55 /gcc | |
parent | 4ae9b5f55b9f7eaf80f4a6613e7752988eb757ee (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 22 |
1 files changed, 3 insertions, 19 deletions
@@ -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; |