10 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_EXPRSEQUENCE_H
11 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_EXPRSEQUENCE_H
13 #include "clang/Analysis/CFG.h"
14 #include "clang/Lex/Lexer.h"
15 #include "llvm/ADT/DenseMap.h"
16 #include "llvm/ADT/SmallPtrSet.h"
17 #include "llvm/ADT/SmallVector.h"
19 #include "../ClangTidy.h"
76 bool inSequence(
const Stmt *Before,
const Stmt *After)
const;
92 const Stmt *getSequenceSuccessor(
const Stmt *S)
const;
94 const Stmt *resolveSyntheticStmt(
const Stmt *S)
const;
98 llvm::DenseMap<const Stmt *, const Stmt *> SyntheticStmtSourceMap;
117 llvm::DenseMap<const Stmt *, const CFGBlock *> Map;
124 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_EXPRSEQUENCE_H
Maps Stmts to the CFGBlock that contains them.
Provides information about the evaluation order of (sub-)expressions within a CFGBlock.
const CFGBlock * blockContainingStmt(const Stmt *S) const
Returns the block that S is contained in.
StmtToBlockMap(const CFG *TheCFG, ASTContext *TheContext)
Initializes the map for the given CFG.
ExprSequence(const CFG *TheCFG, ASTContext *TheContext)
Initializes this ExprSequence with sequence information for the given CFG.
bool potentiallyAfter(const Stmt *After, const Stmt *Before) const
Returns whether After can potentially be evaluated after Before.
bool inSequence(const Stmt *Before, const Stmt *After) const
Returns whether Before is sequenced before After.