Re: [PATCH, backport] Bug 122046 - [14/15/16 Regression] ICE in is_illegal_recursion when a TBP is used to specify

Jerry D <[email protected]>
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.fortran
Message-ID <[email protected]>
Pushed to 15

commit 05874561c86c206fd05a0df95de675919413bfe2 (HEAD -> gcc15, origin/releases/
gcc-15)
Author: Mikael Morin <[email protected]>
Date:   Wed Sep 24 16:06:59 2025 +0200

     fortran: Favor parser-generated module procedure namespaces [PR122046]


On 3/17/26 8:09 PM, Jerry D wrote:
> Mikael's patch backported and regression tested on 15.2.1.
> 
> I plan to commit this in a day or so to help keep things moving along.
> 
> Thanks for work Mikael!
> 
> Regards,
> 
> Jerry
> 
> commit fb5b25c7103d5f373733a9b75a13600665b33954 (HEAD -> gcc15)
> Author: Mikael Morin <[email protected]>
> Date:   Wed Sep 24 16:06:59 2025 +0200
> 
>      fortran: Favor parser-generated module procedure namespaces [PR122046]
> 
>      In the testcase from the PR, an assertion triggers because the compiler
>      tries to access the parent namespace of a contained procedure.  But the
>      namespace is the formal namespace of a module procedure symbol in a
>      submodule, which hasn't its parent set.
> 
>      To add a bit of context, in submodules, module procedures inherited from
>      their parent module have two different namespaces holding their dummy
>      arguments.  The first one is generated by the the host association of
>      the module from the .mod file, and is made accessible in the procedure
>      symbol's formal_ns field.  Its parent field is not set.  The second one
>      is generated by the parser and contains the procedure implementation.
>      It's accessible from the list of contained procedures in the submodule
>      namespace.  Its parent field is set.
> 
>      This change modifies gfc_get_procedure_ns to favor the parser-generated
>      namespace in the submodule case where there are two namespaces to choose
>      from.
> 
>              PR fortran/122046
> 
>      gcc/fortran/ChangeLog:
> 
>              * symbol.cc (gfc_get_procedure_ns): Try to find the namespace
>              among the list of contained namespaces before returning the
>              value from the formal_ns field.
> 
>      gcc/testsuite/ChangeLog:
> 
>              * gfortran.dg/submodule_34.f90: New test.
> 
>      (cherry picked from commit 33862166186fcef86e94babded780bb3745f6525)
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.