clang-tools 22.0.0git
|
#include "InfiniteLoopCheck.h"
#include "../utils/Aliasing.h"
#include "clang/AST/ASTContext.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
#include "clang/Analysis/Analyses/ExprMutationAnalyzer.h"
#include "clang/Analysis/CallGraph.h"
#include "llvm/ADT/SCCIterator.h"
Go to the source code of this file.
Namespaces | |
namespace | clang |
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===// | |
namespace | clang::tidy |
namespace | clang::tidy::bugprone |
Functions | |
static Matcher< Stmt > | clang::tidy::bugprone::loopEndingStmt (Matcher< Stmt > Internal) |
static bool | clang::tidy::bugprone::isChanged (const Stmt *LoopStmt, const ValueDecl *Var, ASTContext *Context) |
Return whether Var was changed in LoopStmt. | |
static bool | clang::tidy::bugprone::isVarPossiblyChanged (const Decl *Func, const Stmt *LoopStmt, const ValueDecl *VD, ASTContext *Context) |
static bool | clang::tidy::bugprone::isVarThatIsPossiblyChanged (const Decl *Func, const Stmt *LoopStmt, const Stmt *Cond, ASTContext *Context) |
Return whether Cond is a variable that is possibly changed in LoopStmt. | |
static bool | clang::tidy::bugprone::isAtLeastOneCondVarChanged (const Decl *Func, const Stmt *LoopStmt, const Stmt *Cond, ASTContext *Context) |
Return whether at least one variable of Cond changed in LoopStmt. | |
static std::string | clang::tidy::bugprone::getCondVarNames (const Stmt *Cond) |
Return the variable names in Cond. | |
static bool | clang::tidy::bugprone::isKnownToHaveValue (const Expr &Cond, const ASTContext &Ctx, bool ExpectedValue) |
static bool | clang::tidy::bugprone::populateCallees (const Stmt *StmtNode, llvm::SmallPtrSet< const Decl *, 16 > &Callees) |
populates the set Callees with all function (and objc method) declarations called in StmtNode if all visited call sites have resolved call targets. | |
static bool | clang::tidy::bugprone::overlap (ArrayRef< CallGraphNode * > SCC, const llvm::SmallPtrSet< const Decl *, 16 > &Callees, const Decl *Func) |
returns true iff SCC contains Func and its' function set overlaps with Callees | |
static bool | clang::tidy::bugprone::hasStaticLocalVariable (const Stmt *Cond) |
returns true iff Cond involves at least one static local variable. | |
static bool | clang::tidy::bugprone::hasRecursionOverStaticLoopCondVariables (const Expr *Cond, const Stmt *LoopStmt, const Decl *Func, const ASTContext *Ctx) |
Tests if the loop condition Cond involves static local variables and the enclosing function Func is recursive. | |
bool | hasPtrOrReferenceInFunc (const Decl *Func, const ValueDecl *Var) |
Returns whether Var has a pointer or reference in Func . |
bool clang::tidy::utils::hasPtrOrReferenceInFunc | ( | const Decl * | Func, |
const ValueDecl * | Var ) |
Returns whether Var
has a pointer or reference in Func
.
Example: void f() { int n; ... int *p = &n; }
For f() and n the function returns true because p is a / pointer to n created in f().
Definition at line 92 of file Aliasing.cpp.
Referenced by clang::tidy::bugprone::RedundantBranchConditionCheck::check(), and clang::tidy::bugprone::isVarPossiblyChanged().