original) (raw)
clang: lib/Analysis/UninitializedValues.cpp File Reference (#include "[clang/Analysis/Analyses/UninitializedValues.h](UninitializedValues%5F8h%5Fsource.html)"
#include "[clang/AST/Attr.h](AST%5F2Attr%5F8h%5Fsource.html)"
#include "[clang/AST/Decl.h](Decl%5F8h%5Fsource.html)"
#include "[clang/AST/DeclBase.h](DeclBase%5F8h%5Fsource.html)"
#include "[clang/AST/Expr.h](Expr%5F8h%5Fsource.html)"
#include "[clang/AST/OperationKinds.h](OperationKinds%5F8h%5Fsource.html)"
#include "[clang/AST/Stmt.h](Stmt%5F8h%5Fsource.html)"
#include "[clang/AST/StmtObjC.h](StmtObjC%5F8h%5Fsource.html)"
#include "[clang/AST/StmtVisitor.h](StmtVisitor%5F8h%5Fsource.html)"
#include "[clang/AST/Type.h](Type%5F8h%5Fsource.html)"
#include "[clang/Analysis/Analyses/PostOrderCFGView.h](PostOrderCFGView%5F8h%5Fsource.html)"
#include "[clang/Analysis/AnalysisDeclContext.h](AnalysisDeclContext%5F8h%5Fsource.html)"
#include "[clang/Analysis/CFG.h](CFG%5F8h%5Fsource.html)"
#include "[clang/Analysis/DomainSpecific/ObjCNoReturn.h](ObjCNoReturn%5F8h%5Fsource.html)"
#include "[clang/Analysis/FlowSensitive/DataflowWorklist.h](DataflowWorklist%5F8h%5Fsource.html)"
#include "[clang/Basic/LLVM.h](LLVM%5F8h%5Fsource.html)"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/PackedVector.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Casting.h"
#include <algorithm>
#include <cassert>
#include <optional>
Go to the source code of this file.
Functions | |
---|---|
static bool | recordIsNotEmpty (const RecordDecl *RD) |
static bool | isTrackedVar (const VarDecl *vd, const DeclContext *dc) |
static bool | isUninitialized (const Value v) |
static bool | isAlwaysUninit (const Value v) |
static const Expr * | stripCasts (ASTContext &C, const Expr *Ex) |
static FindVarResult | findVar (const Expr *E, const DeclContext *DC) |
If E is an expression comprising a reference to a single variable, find that variable. | |
static const DeclRefExpr * | getSelfInitExpr (VarDecl *VD) |
static bool | isPointerToConst (const QualType &QT) |
static bool | hasTrivialBody (CallExpr *CE) |
static bool | runOnBlock (const CFGBlock *block, const CFG &cfg, AnalysisDeclContext &ac, CFGBlockValues &vals, const ClassifyRefs &classification, llvm::BitVector &wasAnalyzed, UninitVariablesHandler &handler) |
◆ DEBUG_LOGGING
◆ Value
◆ findVar()
static FindVarResult findVar ( const Expr * E, const DeclContext * DC ) | static |
---|
◆ getSelfInitExpr()
◆ hasTrivialBody()
◆ isAlwaysUninit()
static bool isAlwaysUninit ( const Value v) | static |
---|
◆ isPointerToConst()
◆ isTrackedVar()
Definition at line 60 of file UninitializedValues.cpp.
References clang::Type::getAsRecordDecl(), clang::Decl::getDeclContext(), clang::ValueDecl::getType(), clang::VarDecl::hasGlobalStorage(), clang::VarDecl::isExceptionVariable(), clang::Decl::isImplicit(), clang::VarDecl::isInitCapture(), clang::VarDecl::isLocalVarDecl(), clang::Type::isRVVSizelessBuiltinType(), clang::Type::isScalarType(), clang::Type::isVectorType(), and recordIsNotEmpty().
Referenced by findVar().
◆ isUninitialized()
static bool isUninitialized ( const Value v) | static |
---|