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