vsavchenko added inline comments.

================
Comment at: clang/lib/Sema/AnalysisBasedWarnings.cpp:1729
+  handleBlockThatIsGuaranteedToBeCalledOnce(const BlockDecl *Block) override {
+    Data.flushWarnings(Block, S);
+  }
----------------
NoQ wrote:
> Do i understand correctly that you're relying on the order in which your 
> analysis is invoked from Sema? I.e., Sema parses the inner block before the 
> outer function, so it'll analyze the block first, so by the time you see a 
> block expression in the surrounding function you'll already have all 
> diagnostics for the block readily available and no other diagnostics will 
> ever show up, right?
Exactly, function is analyzed the moment it's fully parsed.


================
Comment at: clang/lib/Sema/AnalysisBasedWarnings.cpp:2206
 
+sema::AnalysisBasedWarnings::~AnalysisBasedWarnings() { delete IPData; }
+
----------------
NoQ wrote:
> Do we really need manual new-delete here? Ownership semantics don't seem to 
> be that complicated, a `unique_ptr` would probably suffice. Or maybe even 
> just store it by value.
I definitely don't want to move `InterProceduralData` definition to the header, 
so value is not an option.
`std::unique_ptr` will definitely work, but we still need to move the 
destructor into the cpp file because of the forward declaration as far as I 
understand.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98688/new/

https://reviews.llvm.org/D98688

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to