[PATCH] D71224: [analyzer][WIP] Escape symbols stored into specific region after a conservative evalcall.
Gábor Horváth via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 9 13:30:51 PST 2019
xazax.hun created this revision.
xazax.hun added reviewers: NoQ, dcoughlin, Szelethus, baloghadamsoftware, haowei.
xazax.hun added a project: clang.
Herald added subscribers: Charusso, gamesh411, dkrupp, donat.nagy, mikhail.ramalho, a.sidorin, rnkovacs, szepet.
xazax.hun marked an inline comment as done.
xazax.hun added inline comments.
xazax.hun marked an inline comment as done.
================
Comment at: clang/include/clang/StaticAnalyzer/Core/CheckerManager.h:402
+ InvalidatedSymbols *IS,
+ RegionAndSymbolInvalidationTraits *ETraits,
+ StoreManager::InvalidatedRegions *TopLevelInvalidated);
----------------
Actually, it is possible I went too far with plumbing `RegionAndSymbolInvalidationTraits`.
================
Comment at: clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp:696
// And make the result node.
Bldr.generateNode(Call.getProgramPoint(), State, Pred);
}
----------------
After some offline conversation it is very likely that we want to move the `runCheckersForPointerEscape` here.
The main question is, how should we get all the data?
We should know about:
* What regions are output params.
* What regions are considered escaped.
* What regions have traits that prevents escaping.
Is there anything else?
The main purpose of this patch is to discuss the approach. It is not near to be production ready yet.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D71224
Files:
clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
clang/lib/StaticAnalyzer/Core/CallEvent.cpp
clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
clang/lib/StaticAnalyzer/Core/LoopWidening.cpp
clang/lib/StaticAnalyzer/Core/ProgramState.cpp
clang/lib/StaticAnalyzer/Core/RegionStore.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71224.232923.patch
Type: text/x-patch
Size: 31508 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20191209/c6a271f5/attachment-0001.bin>
More information about the cfe-commits
mailing list