[PATCH] D116022: [clang][dataflow] Add support for terminating virtual destructors
Gábor Horváth via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 20 09:36:56 PST 2021
xazax.hun added inline comments.
================
Comment at: clang/include/clang/Analysis/FlowSensitive/ControlFlowContext.h:50
+ std::unique_ptr<CFG> Cfg;
+ llvm::DenseMap<const Stmt *, const CFGBlock *> StmtToBlock;
+};
----------------
There is a special class for this at `clang/lib/Analysis/CFGStmtMap.cpp`. That also does some special handling of the terminators. I wonder if we need to do something similar here (or just use that class as is?).
================
Comment at: clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp:51
+ if (Block.getTerminator().isTemporaryDtorsBranch()) {
+ // The first successor of a block with a temporary destructor terminator is
+ // the block that evaluates the destructor. If that block has a noreturn
----------------
This comment might be a bit hard to understand without a code example. Admittedly, including an example here could get very chatty, but we could refer to the name of the corresponding test.
I wonder whether naming the blocks like `The first successor of block 'A'` would make this clearer.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D116022/new/
https://reviews.llvm.org/D116022
More information about the cfe-commits
mailing list