PR Fortran/91960 Patch
Jerry D
jvdelisle2@gmail.com
Mon Jan 12 17:48:56 GMT 2026
On 1/11/26 12:33 PM, Steve Kargl wrote:
> The attach patch fixes PR Fortran/91960. This PR is another
> one from Gerhard in 2019-10.01. A patch has been lingering
> in the PR since 2023-05-30.
>
> The patch checks that an array constructor in a parameter
> statement is in fact a constant expression. I'll note
> that the patch requires a special carve out to accommodate
> the fix for Fortran/117070.
>
> 2026-01-11 Steven G. Kargl <kargl@gcc.gnu.org>
>
> PR Fortran/91960
> * resolve.cc (resolve_fl_parameter): Check the righthand symbol
> is a constant expression.
>
> 2026-01-11 Steven G. Kargl <kargl@gcc.gnu.org>
>
> PR Fortran/91960
> * gfortran.dg/pr69962.f90: Adjust testcase to ignore new error message.
> * gfortran.dg/pr91960_1.f90: New test.
> * gfortran.dg/pr91960_2.f90: Ditto.
>
I am wondering about the comment:
+ /* PR fortran/117070 argues a nonconstant proc pointer can appear in
+ the array constructor of a paramater. I don't buy it, but... */
+ if (sym->value->ts.type == BT_DERIVED
+ && sym->value->ts.u.derived
+ && sym->value->ts.u.derived->attr.proc_pointer_comp)
+ return true;
+ gfc_error ("Expecting constant expression near %L", &sym->value->where);
+ return false;
It either is allowed or it is not. Do we need to review the Standard to confirm
or deny this?
Jerry
More information about the Fortran
mailing list