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;
112 const CFGBlock *blockContainingStmt(
const Stmt *S)
const;
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.
bool inSequence(const Stmt *Before, const Stmt *After) const
Returns whether Before is sequenced before After.
Provides information about the evaluation order of (sub-)expressions within a CFGBlock.
bool potentiallyAfter(const Stmt *After, const Stmt *Before) const
Returns whether After can potentially be evaluated after Before.
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
ExprSequence(const CFG *TheCFG, ASTContext *TheContext)
Initializes this ExprSequence with sequence information for the given CFG.