[all-commits] [llvm/llvm-project] 523937: [SSAF] Group virtual method slots into override fa...

Balázs Benics via All-commits all-commits at lists.llvm.org
Tue Sep 29 04:01:29 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5239371ffa13f30915fe67744be2ea261b74be2a
      https://github.com/llvm/llvm-project/commit/5239371ffa13f30915fe67744be2ea261b74be2a
  Author: Balázs Benics <benicsbalazs at gmail.com>
  Date:   2026-09-29 (Tue, 29 Sep 2026)

  Changed paths:
    M clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
    M clang/include/clang/ScalableStaticAnalysis/BuiltinAnchorSources.def
    M clang/include/clang/ScalableStaticAnalysis/Core/Model/EntityId.h
    M clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
    A clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
    A clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysisTest.cpp
    M clang/unittests/ScalableStaticAnalysis/CMakeLists.txt

  Log Message:
  -----------
  [SSAF] Group virtual method slots into override families (#213317)

A virtual call site can dispatch to any override, so the parameter and
return slots that occupy the same vtable slot across an override chain are
indistinguishable to a caller. Whole-program consumers therefore have to
treat them as one unit or they will reason about a slot that a call never
actually reaches.

Compute those units up front, keyed per slot, so consumers only need a
map lookup rather than their own traversal of the override relation.
Overloads occupy distinct vtable slots and stay in distinct families.

The family representative is the smallest EntityId in the class, which
keeps the result stable across runs.

§2 of rdar://179151603

Assisted-By: claude



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