Re: [PATCH] fortran: [PR118793] Additional expanded namelist read diagnostics
Jerry DeLisle <[email protected]> Mon, 3 Aug 2026 14:00:01 -0700
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
The master branch has been updated by Jerry DeLisle <[email protected]>: https://gcc.gnu.org/g:86b7458e072b0651f8b04bcba64f5e2d1586bdec commit r17-2906-g86b7458e072b0651f8b04bcba64f5e2d1586bdec Author: Jerry DeLisle <[email protected]> Date: Tue Jul 28 19:02:36 2026 -0700 fortran: [PR118793] Additional expanded namelist read diagnostics On 8/3/26 9:48 AM, Jerry DeLisle wrote: > In the absence of comments I plan to commit this later today. > > On 8/1/26 5:52 AM, Jerry DeLisle wrote: >> 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. >> >