Hi Harald,

>From a very quick perusal of the F2018 standard, I have come to the
tentative conclusion that:
(i)  'real module function realg (arg1, arg2)' is almost certainly a
correct requirement, although both flang-new and gfortran compile happily
without the module attribute; and
(ii) As far as I can tell, repeating the public attribute in the generic
statement is OK. Again flang-new accepts it but, as you say, ifx does not.
I must move nagfor to my new machine.

I will take a further look at the standard tonight.

Thanks

Paul




On Tue, 29 Jul 2025 at 21:29, Harald Anlauf <anl...@gmx.de> wrote:

> Hi Paul!
>
> Am 24.07.25 um 08:07 schrieb Paul Richard Thomas:
> > I forgot to include subroutine tests. Please find attached the patch with
> > updated testcases.
> >
> > Paul
> >
> > On Wed, 23 Jul 2025 at 17:53, Paul Richard Thomas <
> > paul.richard.tho...@gmail.com> wrote:
> >
> >> Hi All,
> >>
> >> The attached implements the F2018 generic statement, which has the same
> >> semantics as the typebound version but can appear in any specification
> >> statement.
> >>
> >> As it says in the first comment in the patch, use is made of the
> existing,
> >> typebound matching functions to obtain access-spec and generic-spec.
> After
> >> this the standard INTERFACE machinery is used.
> >>
> >> I spent a stupidly long time allowing the mixing of generic statements
> >> with generic interfaces until I realised that I was accepting
> ST_GENERIC in
> >> the wrong place in parse_spec :-(
> >>
> >> Regtests on x86_64/FC42 - OK for mainline?
> >>
> >> Paul
> >>
> >>
>
> The patch looks basically OK, although I stumbled across the following:
>
> - testing the testcase with ifx and NAG (both of which required
>   commenting the generic within the block, probably a bug in both),
>   I needed to change in submodule subm the declaration
>
>     real function realg (arg1, arg2)
>
>   to
>
>     real module function realg (arg1, arg2)
>
>   otherwise they both complained.  Can you comment?
>
> - I am a little confused about the handling of the access specification.
>   After the first "public :: g", NAG complains about the
>
>   generic, public :: g ...
>
>   and only allows
>
>   generic :: g ...
>
>   Then duplicate public specifications are not allowed.  What do you think?
>
> Thanks,
> Harald
>
>

Reply via email to