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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits