The master branch has been updated by Jerry DeLisle <[email protected]>:
https://gcc.gnu.org/g:e0f62720743e7750eef0c86dfa23d5965e2de785 commit r17-4681-ge0f62720743e7750eef0c86dfa23d5965e2de785 Author: Jerry DeLisle <[email protected]> Date: Wed Sep 23 10:26:50 2026 -0700 On 9/25/26 11:35 PM, Paul Richard Thomas wrote:
Hello Jerry, From an admittedly very brief perusal, the patch looks good to me. I trust that you did the regtestsing? Paul On Sat, 26 Sept 2026 at 02:46, Jerry DeLisle <[email protected]> wrote:See attached patch. This fixes an ICE with %LEN of a deferred-length character variable in ASSOCIATE. Regression tested on x86_64. OK for mainline? Regards, Jerry --- fortran: [PR127187] ICE with %LEN of deferred-length character in ASSOCIATE A %LEN or %KIND inquiry of a deferred-length character variable gives an INTEGER expression that still carried the deferred flag of the character typespec. An associate-name with such a selector inherited it, and gfc_get_symbol_decl then segfaulted looking for its string length. A related bug: for an associate-name whose selector is deferred-length character, resolve_variable reset the typespec of the expression to that of the associate-name unless a substring reference was present. An inquiry reference of the associate-name, e.g. q%len, thus reverted to CHARACTER, giving an ICE in conv_inquiry or a spurious error on comparison with an INTEGER. PR fortran/127187 gcc/fortran/ChangeLog: PR fortran/127187 * primary.cc (gfc_match_varspec): Clear the deferred flag, and for KIND the charlen, of the INTEGER result of a LEN or KIND inquiry. * resolve.cc (resolve_variable): Do not reset the typespec of a deferred-length character associate-name expression that has an inquiry reference. gcc/testsuite/ChangeLog: PR fortran/127187 * gfortran.dg/associate_90.f90: New test.
