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