Re: PR Fortran/91960 Patch

Jerry D <[email protected]>
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.fortran
Message-ID <[email protected]>
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  <[email protected]>
> 
> 	PR Fortran/91960
> 	* resolve.cc (resolve_fl_parameter):  Check the righthand symbol
> 	is a constant expression.
> 
> 2026-01-11  Steven G. Kargl  <[email protected]>
> 
> 	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
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.