Re: [PATCH] Fix PR125481 Wrong generic resolution between procedure pointer and variable actuals of same TKR

Harald Anlauf <[email protected]>
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.fortran
Message-ID <[email protected]>
Hi Jerry!

Am 31.05.26 um 5:46 AM schrieb Jerry D:
> The attached patch regression tested on x86_64.

Are you sure that the reference to F18:15.5.2.4 is correct?
I cannot find your quote there, at least not verbosely.

Furthermore, can you provide a testcase where the new error message
will be tested?

Thanks,
Harald

> Note, this is one of several mentioned in PR125515. I will be submitting 
> those as a patch series a bit later.
> 
> OK for mainline and then backport to 16?
> 
> 
> Regards,
> 
> Jerry
> 
> ---
> 
> fortran: fix wrong generic resolution when actual argument is
>   a procedure pointer
> 
> When a generic interface has two specific procedures -- one with a
> procedure-pointer dummy and one with a data-object (e.g. REAL) dummy --
> gfortran incorrectly resolved calls where the actual argument was a
> procedure pointer to the data-object specific, resulting in the pointer
> address being interpreted as a numeric value (wrong code).
> 
> The root cause was a missing check in gfc_compare_actual_formal: the
> two existing checks guard the case where the formal is a proc_pointer
> or FL_PROCEDURE but the actual is not; however the reverse direction
> (actual is a proc_pointer but formal is a plain data object) was not
> checked.  F18:15.5.2.4 forbids this pairing.
> 
> Assisted by: Claude Sonnet 4.6
> 
>      PR fortran/125481
> 
> gcc/fortran/ChangeLog:
> 
>      * interface.cc (gfc_compare_actual_formal): Add missing check that
>      rejects a procedure-pointer actual argument corresponding to a
>      data-object dummy argument (F18:15.5.2.4).  Restrict to
>      EXPR_VARIABLE to avoid false positives on calls through procedure
>      pointer components.
> 
> gcc/testsuite/ChangeLog:
> 
>      * gfortran.dg/generic_37.f90: New test.
> ---
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.