+Wed Feb 11 01:39:47 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.
+
Tue Feb 10 00:26:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p.
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