Mike Stump wrote:
Richi has asked the we break the wide-int patch so that the individual port and 
front end maintainers can review their parts without have to go through the 
entire patch.    This patch covers the fortran front end.

Nice clean up. The new class looks much cleaner as it avoids the LO/HI handling.


-      hi = TREE_INT_CST_HIGH (bound);
-      low = TREE_INT_CST_LOW (bound);
-      if (hi || low < 0
-         || ((!as || as->type != AS_ASSUMED_RANK)
-             && low >= GFC_TYPE_ARRAY_RANK (TREE_TYPE (desc)))
-         || low > GFC_MAX_DIMENSIONS)
+      if (((!as || as->type != AS_ASSUMED_RANK)
+          && wi::geu_p (bound, GFC_TYPE_ARRAY_RANK (TREE_TYPE (desc))))
+         || wi::gtu_p (bound, GFC_MAX_DIMENSIONS))
        gfc_error ("'dim' argument of %s intrinsic at %L is not a valid "
                   "dimension index", upper ? "UBOUND" : "LBOUND",
                   &expr->where);

I don't see what happened to the "low < 0" check. (Ditto for the next chunk in 
conv_intrinsic_cobound).

Otherwise, it looks okay to me.

Tobias

Reply via email to