[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