Hi Paul, thanks for taking this.
I have just a minor comment regards coding style: + if (tmp + && tmp->attr.generic + && (tmp = gfc_find_dt_in_generic (tmp))) + { + if (tmp->attr.flavor == FL_DERIVED) My reading of the guidelines says that I should rather write if (tmp && tmp->attr.generic) { tmp = gfc_find_dt_in_generic (tmp); if (tmp && tmp->attr.flavor == FL_DERIVED) Both variants are equally readable, though. I haven't though long enough about possible minor memleaks, i.e. if a freeing of gfc_symbol tmp is advised. Running f951 under valgrind might give you a hint. Thanks, Harald Am 08.07.23 um 16:23 schrieb Paul Richard Thomas via Gcc-patches:
The attached patch incorporates two of Steve's "Orphaned Patches" - https://gcc.gnu.org/pipermail/fortran/2023-June/059423.html They have in common that they both involve faults in use of default type and that I was the ultimate cause of the bugs. The patch regtests with the attached testcases. I will commit in the next 24 hours unless there are any objections. Paul Fortran: Fix default type bugs in gfortran [PR99139, PR99368] 2023-07-08 Steve Kargl <s...@troutmask.apl.washington.edu> gcc/fortran PR fortran/99139 PR fortran/99368 * match.cc (gfc_match_namelist): Check for host associated or defined types before applying default type. (gfc_match_select_rank): Apply default type to selector of unlnown type if possible. * resolve.cc (resolve_fl_variable): Do not apply local default initialization to assumed rank entities. gcc/testsuite/ PR fortran/999139 * gfortran.dg/pr99139.f90 : New test PR fortran/99368 * gfortran.dg/pr99368.f90 : New test Fortran: Fix default type bugs in gfortran [PR99139, PR99368] 2023-07-08 Steve Kargl <s...@troutmask.apl.washington.edu> gcc/fortran PR fortran/99139 PR fortran/99368 * match.cc (gfc_match_namelist): Check for host associated or defined types before applying default type. (gfc_match_select_rank): Apply default type to selector of unlnown type if possible. * resolve.cc (resolve_fl_variable): Do not apply local default initialization to assumed rank entities. gcc/testsuite/ PR fortran/999139 * gfortran.dg/pr99139.f90 : New test PR fortran/99368 * gfortran.dg/pr99368.f90 : New test