+36
−11
Loading
When an illegal recursive derived type (a non-POINTER/non-ALLOCATABLE component whose type is the enclosing type itself, prohibited by F2023 C749) is used in an I/O list, the component-walking helpers FindUnsafeIoDirectComponent() and FindInaccessibleComponent() recursed through it forever and blew the stack. The fix involves tracking the derived types currently on the recursion path in a VisitedSymbolSet to detect loops. Fixes #192387 Assisted-by: AI