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
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to