[clang] 87c32be - [clang][dataflow] Include terminator statements in buildStmtToBasicBlockMap

Stanislav Gatev via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 11 03:20:08 PST 2022


Author: Stanislav Gatev
Date: 2022-02-11T11:15:29Z
New Revision: 87c32be023d293e159e699bf46c821fe931cc223

URL: https://github.com/llvm/llvm-project/commit/87c32be023d293e159e699bf46c821fe931cc223
DIFF: https://github.com/llvm/llvm-project/commit/87c32be023d293e159e699bf46c821fe931cc223.diff

LOG: [clang][dataflow] Include terminator statements in buildStmtToBasicBlockMap

This will be necessary later when we add support for evaluating logic
expressions such as && and ||.

This is part of the implementation of the dataflow analysis framework.
See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.

Reviewed-by: xazax.hun

Differential Revision: https://reviews.llvm.org/D119447

Added: 
    

Modified: 
    clang/lib/Analysis/FlowSensitive/ControlFlowContext.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Analysis/FlowSensitive/ControlFlowContext.cpp b/clang/lib/Analysis/FlowSensitive/ControlFlowContext.cpp
index 3ad2ed640cc1c..c0b8119038f2d 100644
--- a/clang/lib/Analysis/FlowSensitive/ControlFlowContext.cpp
+++ b/clang/lib/Analysis/FlowSensitive/ControlFlowContext.cpp
@@ -38,6 +38,8 @@ buildStmtToBasicBlockMap(const CFG &Cfg) {
 
       StmtToBlock[Stmt.getValue().getStmt()] = Block;
     }
+    if (const Stmt *TerminatorStmt = Block->getTerminatorStmt())
+      StmtToBlock[TerminatorStmt] = Block;
   }
   return StmtToBlock;
 }


        


More information about the cfe-commits mailing list