[all-commits] [llvm/llvm-project] 23483d: [flang][Semantics] Break recursion on illegal recu...

Eugene Epshteyn via All-commits all-commits at lists.llvm.org
Fri May 1 09:00:09 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 23483d4944e45c4359f22f9629ca88869fa612d0
      https://github.com/llvm/llvm-project/commit/23483d4944e45c4359f22f9629ca88869fa612d0
  Author: Eugene Epshteyn <eepshteyn at nvidia.com>
  Date:   2026-05-01 (Fri, 01 May 2026)

  Changed paths:
    M flang/lib/Semantics/check-io.cpp
    M flang/test/Semantics/io12.f90

  Log Message:
  -----------
  [flang][Semantics] Break recursion on illegal recursive type in I/O check (#194284)

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



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list