Re: [PATCH] fortran: [PR118793] Additional expanded namelist read diagnostics
Jerry DeLisle <[email protected]> Sat, 1 Aug 2026 05:52:04 -0700
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
Ping. On 7/29/26 7:26 PM, Jerry DeLisle wrote: > The attached patch is a continuation of my effort to give more > informative error messages for namelist reads. As mentioned in the PR, > for users with large namelist files this will help greatly with > identifying where in the namelist data file the error occurred. > > Regression tested on x86_64. A new test case added from Haralds example > in the PR. > > OK for mainline? > > Regards, > > Jerry > --- > > fortran: [PR118793] Additional expanded namelist read diagnostics > > These changes add expanded diagnostics to error locations not addressed > in the original patch. This is done by using a new helper function that > saves the error message information for namelist related errors in a > buffer and keeping a status bit in the st_parameter_dt structure. > > PR libfortran/118793 > > libgfortran/ChangeLog: > > * io/io.h (NML_ERR_MSG_LEN): New macro. > (st_parameter_dt): Add nml_err_pending bit. > (gfc_unit): Add nml_err_msg. > * io/list_read.c (nml_error): New function. > (eat_separator): Use new function > (convert_integer): Likewise. > (convert_unsigned): Likewise. > (parse_repeat): Likewise. Save the position where the repeat > count starts and report it. > (read_logical): Likewise. > (read_integer): Likewise. > (parse_real): Likewise. > (read_complex): Likewise. > (read_real): Likewise. > (check_type): Likewise. > (list_formatted_read_scalar): Likewise. > (read_character): Likewise. Save the initial position of the value > (nml_read_obj): Unwind to nml_err_ret on a deferred error. > (namelist_read): Store deferred errors in the unit's nml_err_msg > buffer. > > gcc/testsuite/ChangeLog: > > * gfortran.dg/namelist_101.f90: Fix dg-do directive typo and > check the expanded diagnostic. > * gfortran.dg/namelist_104.f90: New test.