diff --git a/gcc/f/ChangeLog.egcs b/gcc/f/ChangeLog.egcs index da2b7ef47c7..ab70debcd51 100644 --- a/gcc/f/ChangeLog.egcs +++ b/gcc/f/ChangeLog.egcs @@ -1,3 +1,8 @@ +Wed Feb 11 01:44:48 1998 Richard Henderson (rth@cygnus.com) + + * com.c (ffecom_ptr_to_expr) [FFEBLD_opARRAYREF]: Do upper - lower + in the native type, so as to properly handle negative indices. + Fri Jan 9 19:09:07 1998 Craig Burley Fix -fpedantic combined with `F()' invocation, diff --git a/gcc/f/com.c b/gcc/f/com.c index 49b2f2424a2..4934134ab1e 100644 --- a/gcc/f/com.c +++ b/gcc/f/com.c @@ -13032,9 +13032,11 @@ ffecom_ptr_to_expr (ffebld expr) item, size_binop (MULT_EXPR, size_in_bytes (TREE_TYPE (array)), - size_binop (MINUS_EXPR, - ffecom_expr (dims[i]), - TYPE_MIN_VALUE (TYPE_DOMAIN (array))))); + convert (sizetype, + fold (build (MINUS_EXPR, + TREE_TYPE (TYPE_MIN_VALUE (TYPE_DOMAIN (array))), + ffecom_expr (dims[i]), + TYPE_MIN_VALUE (TYPE_DOMAIN (array))))))); } } return item;