[PATCH] D71152: [analyzer] Keep track of escaped locals.
Gábor Horváth via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 6 16:34:54 PST 2019
xazax.hun marked an inline comment as done.
xazax.hun added inline comments.
================
Comment at: clang/lib/StaticAnalyzer/Core/ProgramState.cpp:48-61
+namespace {
+struct EscapedLocals{};
+} // namespace
+
+template <>
+struct ProgramStateTrait<EscapedLocals> :
+ public ProgramStatePartialTrait<llvm::ImmutableSet<const MemRegion *>> {
----------------
NoQ wrote:
> Wait, you are preventing direct access anyway by putting this stuff into the .cpp file.
>
> In this case i think you can safely use the `REGISTER_...` macros.
Yeah, initially I wanted to hide this trait but at this point I have no idea how to do that. If I get the layering right, ExprEngine is using ProgramState, and ProgramState should not reference ExprEngine. So if I want to use a trait in both it should be in ProgramState. The reason why I also need to touch ProgramState, because the list of invalidated regions are readily available there. Probably it is possible to somehow get that list in ExprEngine, but I think that would be way more complicated than the current solution.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71152/new/
https://reviews.llvm.org/D71152
More information about the cfe-commits
mailing list