stor-layout.c (layout_type): Do upper - lower in the native type, so as to properly handle negative indices.

* stor-layout.c (layout_type): Do upper - lower in the native type,
        so as to properly handle negative indices.

From-SVN: r17846
This commit is contained in:
Richard Henderson 1998-02-10 16:43:32 -08:00 committed by Jeff Law
parent 381127e845
commit a2d53b285d
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
Wed Feb 11 01:44:13 1998 Richard Henderson <rth@cygnus.com>
* stor-layout.c (layout_type): Do upper - lower in the native type,
so as to properly handle negative indices.
Wed Feb 11 01:35:55 1998 Robert Lipe <robertl@dgii.com>
* except.c (start_dynamic_cleanup): Remove unused variable 'dhc'.

View File

@ -786,8 +786,11 @@ layout_type (type)
lb, 0))
ub = TREE_OPERAND (ub, 0);
/* The initial subtraction should happen in the original type so
that (possible) negative values are handled appropriately. */
length = size_binop (PLUS_EXPR, size_one_node,
size_binop (MINUS_EXPR, ub, lb));
fold (build (MINUS_EXPR, TREE_TYPE (lb),
ub, lb)));
/* If neither bound is a constant and sizetype is signed, make
sure the size is never negative. We should really do this