The master branch has been updated by Jerry DeLisle <[email protected]>:

https://gcc.gnu.org/g:21814c1470de32bb742c2f0a1b505323e1b8ff26

commit r17-5066-g21814c1470de32bb742c2f0a1b505323e1b8ff26
Author: Jerry DeLisle <[email protected]>
Date:   Wed Jun 10 08:37:01 2026 -0700

    fortran: [PR125724] ICE passing NULL() to an allocatable dummy argument

and thanks again
On 10/11/26 2:59 AM, Mikael Morin wrote:
Le 10/10/2026 à 21:57, Jerry DeLisle a écrit :
See attached patch. Passing NULL() to an allocatable dummy of intrinsic
type ICEs on a gcc_assert in gfc_conv_procedure_call, which expects a
NULL() actual there only for an optional, non-allocatable dummy. Only
derived-type dummies were sent to conv_null_actual. The patch sends
non-class, non-character allocatable dummies there as well, and
conv_null_actual builds the null descriptor for them with
gfc_create_null_actual_descriptor, as it already does for derived types.
CLASS and CHARACTER allocatable dummies are left as they are.

Start with the condition in gfc_conv_procedure_call that selects
conv_null_actual, then the widened derived-type branch of
conv_null_actual, both in trans-expr.cc; the rest is the new test. The
bug was found with the Fujitsu compiler test suite; the test is new.

Regression tested on x86_64.

OK for mainline?

Regards,

Jerry

---

fortran: [PR125724] ICE passing NULL() to an allocatable dummy argument

Pass a NULL() actual argument for a non-class, non-character
allocatable dummy through conv_null_actual, as for derived-type
dummies.

Assisted-by: Claude Opus 5.5

    PR fortran/125724

gcc/fortran/ChangeLog:

    * trans-expr.cc (conv_null_actual): Handle intrinsic allocatable
    and pointer dummies.
    (gfc_conv_procedure_call): Use conv_null_actual for a NULL()
    actual with a non-class, non-character allocatable dummy.

gcc/testsuite/ChangeLog:

    * gfortran.dg/null_actual_8.f90: New test.
OK.

Reply via email to