(get_inner_reference): When finding mode to access bitfield that ends up properly aligned...

(get_inner_reference): When finding mode to access bitfield that ends
up properly aligned, use mode class of its type unless type's mode was
BLKmode.

From-SVN: r11651
This commit is contained in:
Richard Kenner 1996-04-01 16:16:06 -05:00
parent f5b65a5669
commit e8621b3c1c

View File

@ -4150,7 +4150,12 @@ get_inner_reference (exp, pbitsize, pbitpos, poffset, pmode,
access in case EXP is in memory. */
if (mode == VOIDmode && *pbitsize != 0 && *pbitpos % *pbitsize == 0)
{
mode = mode_for_size (*pbitsize, MODE_INT, 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;
}