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