Hi Thomas,

submitting your patch as part of the mail got it corrupted by some mailer
adding line breaks. It does not apply for me. Because I can't test it, I have
more questions, see below:

On Wed, 18 Sep 2024 22:22:15 +0200
Thomas Koenig <tkoe...@netcologne.de> wrote:

> This patch adds random number support for UNSIGNED, plus fixes
> two bugs, with array I/O where the type used to be set to BT_INTEGER,
> and for division with the divisor being a constant.
>
> Again, depends on prevous submissions.
>
> OK for trunk?
>
> gcc/fortran/ChangeLog:
>
>       * check.cc (gfc_check_random_number): Adjust for unsigned.
>       * iresolve.cc (gfc_resolve_random_number): Handle unsinged.

Hihi, I do this typo, too, over and over again: s/unsinged/unsigned/

>       * trans-expr.cc (gfc_conv_expr_op): Handle BT_UNSIGNED for divide.
>       * trans-types.cc (gfc_get_dtype_rank_type): Handle BT_UNSIGNED.
>       * gfortran.texi: Add RANDOM_NUMBER for UNSIGNED.
>

<snip>

> diff --git a/gcc/fortran/check.cc b/gcc/fortran/check.cc
> index 533c9d7d343..1851cfb8d4a 100644
> --- a/gcc/fortran/check.cc
> +++ b/gcc/fortran/check.cc
> @@ -7007,8 +7007,14 @@ gfc_check_random_init (gfc_expr *repeatable,
> gfc_expr *image_distinct)
>   bool
>   gfc_check_random_number (gfc_expr *harvest)
>   {
> -  if (!type_check (harvest, 0, BT_REAL))
> -    return false;
> +  if (flag_unsigned)
> +    {
> +      if (!type_check2 (harvest, 0, BT_REAL, BT_UNSIGNED))
> +     return false;

When the second argument is a BT_INTEGER, does this fail here?

> +    }
> +  else
> +    if (!type_check (harvest, 0, BT_REAL))
> +      return false;
>
>     if (!variable_check (harvest, 0, false))
>       return false;

<snip>

Regards,
        Andre
--
Andre Vehreschild * Email: vehre ad gmx dot de

Reply via email to