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