wide-int, fortran
Kenneth Zadeck
zadeck@naturalbridge.com
Sun Nov 24 12:57:00 GMT 2013
On 11/24/2013 05:50 AM, Tobias Burnus wrote:
> 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
>
This is the magic of using the correct representation. All this code
really wanted to check is that bound is a small positive integer.
More information about the Fortran
mailing list