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