expr.c (get_inner_reference): Remove the array bias after converting the index to Pmode.

* expr.c (get_inner_reference): Remove the array bias after
        converting the index to Pmode.

From-SVN: r16178
This commit is contained in:
Richard Henderson 1997-10-26 08:13:10 -08:00 committed by Jeff Law
parent a6f7ba1798
commit ca0f22208f
2 changed files with 8 additions and 3 deletions

View File

@ -1,3 +1,8 @@
Sun Oct 26 09:15:15 1997 Richard Henderson <rth@cygnus.com>
* expr.c (get_inner_reference): Remove the array bias after
converting the index to Pmode.
Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com)
* mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug.

View File

@ -4345,9 +4345,6 @@ get_inner_reference (exp, pbitsize, pbitpos, poffset, pmode,
= domain ? TYPE_MIN_VALUE (domain) : integer_zero_node; = domain ? TYPE_MIN_VALUE (domain) : integer_zero_node;
tree index_type = TREE_TYPE (index); tree index_type = TREE_TYPE (index);
if (! integer_zerop (low_bound))
index = fold (build (MINUS_EXPR, index_type, index, low_bound));
if (TYPE_PRECISION (index_type) != TYPE_PRECISION (sizetype)) if (TYPE_PRECISION (index_type) != TYPE_PRECISION (sizetype))
{ {
index = convert (type_for_size (TYPE_PRECISION (sizetype), 0), index = convert (type_for_size (TYPE_PRECISION (sizetype), 0),
@ -4355,6 +4352,9 @@ get_inner_reference (exp, pbitsize, pbitpos, poffset, pmode,
index_type = TREE_TYPE (index); index_type = TREE_TYPE (index);
} }
if (! integer_zerop (low_bound))
index = fold (build (MINUS_EXPR, index_type, index, low_bound));
index = fold (build (MULT_EXPR, index_type, index, index = fold (build (MULT_EXPR, index_type, index,
convert (index_type, convert (index_type,
TYPE_SIZE (TREE_TYPE (exp))))); TYPE_SIZE (TREE_TYPE (exp)))));