[all-commits] [llvm/llvm-project] 0cf45d: [analyzer] Confidently inline final methods (#224070)

Donát Nagy via All-commits all-commits at lists.llvm.org
Sat Sep 19 09:25:26 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0cf45d08f5d412cdc8681709d960e65a2757e5a6
      https://github.com/llvm/llvm-project/commit/0cf45d08f5d412cdc8681709d960e65a2757e5a6
  Author: Donát Nagy <donat.nagy at ericsson.com>
  Date:   2026-09-19 (Sat, 19 Sep 2026)

  Changed paths:
    M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
    A clang/test/Analysis/inlining-final-methods.cpp

  Log Message:
  -----------
  [analyzer] Confidently inline final methods (#224070)

When the analyzer sees a virtual method call, it usually splits two
execution paths: one where the method is inlined, and one where it is
evaluated conservatively (i.e. invalidates stuff and returns a conjured
symbol) to represent the possibility that an overriding method is called
from a more derived class.

This commit disables this logic in the case when the method
corresponding to the (static or known dynamic) type of the object is
`final` (or the type of the object is `final`), because in these cases
we can definitely know that it is the method that is actually called.

Fixes #222960.



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