diff options
| author | DonĂ¡t Nagy <donat.nagy@ericsson.com> | 2025-10-18 18:26:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-18 18:26:39 +0200 |
| commit | 6420da68972782c37c4f147409dadcb970583d9e (patch) | |
| tree | 7d92b889b7abee15a409256f7449bbef9f38229c /llvm/unittests/Object/ELFObjectFileTest.cpp | |
| parent | 04e8edcc6ce4fb0693fa9ece24da5f920ccf064b (diff) | |
| download | llvm-6420da68972782c37c4f147409dadcb970583d9e.zip llvm-6420da68972782c37c4f147409dadcb970583d9e.tar.gz llvm-6420da68972782c37c4f147409dadcb970583d9e.tar.bz2 | |
[analyzer] Avoid use of `CallEvent`s with obsolete state (#160707)
The method `ExprEngine::evalCall` handles multiple state transitions and
activates various checker callbacks that take a `CallEvent` parameter
(among other parameters). Unfortunately some of these callbacks
(EvalCall and pointer escape) were called with a `CallEvent` instance
whose attached state was obsolete. This commit fixes this inconsistency
by attaching the right state to the `CallEvent`s before their state
becomes relevant.
I found these inconsistencies as I was trying to understand this part of
the source code, so I don't know about any concrete bugs that are caused
by them -- but they are definitely fishy. I evaluated this change on 10+
open source projects and it did not change the set of analyzer findings.
Diffstat (limited to 'llvm/unittests/Object/ELFObjectFileTest.cpp')
0 files changed, 0 insertions, 0 deletions
