https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115039
Bug ID: 115039 Summary: Statement function with inquiry refs rejected Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: anlauf at gcc dot gnu.org Target Milestone: --- As reported in: https://fortran-lang.discourse.group/t/real-and-imaginary-parts-of-complex-number/1113/18 an inquiry reference (%re, %im) is incorrectly reported as a recursive reference. Testcase: program testit implicit none complex :: x real :: img img(x) = x%im write (*, *) img((1.0,3.0) + (2.0,4.0)) end program testit Tentative fix: diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc index 66edad58278..94ec2ce21dd 100644 --- a/gcc/fortran/expr.cc +++ b/gcc/fortran/expr.cc @@ -5500,7 +5546,8 @@ gfc_traverse_expr (gfc_expr *expr, gfc_symbol *sym, break; case REF_INQUIRY: - return true; + /* An inquiry_ref does not collide with a symbol. */ + return false; default: gcc_unreachable ();