clang 17.0.0git
Namespaces | Functions
Transfer.cpp File Reference
#include "clang/Analysis/FlowSensitive/Transfer.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/OperationKinds.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/Analysis/FlowSensitive/ControlFlowContext.h"
#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
#include "clang/Analysis/FlowSensitive/NoopAnalysis.h"
#include "clang/Analysis/FlowSensitive/Value.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/OperatorKinds.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <memory>
#include <tuple>

Go to the source code of this file.

Namespaces

namespace  clang
 
namespace  clang::dataflow
 Dataflow Directional Tag Classes.
 

Functions

static BoolValue & clang::dataflow::evaluateBooleanEquality (const Expr &LHS, const Expr &RHS, Environment &Env)
 
static BoolValue & clang::dataflow::unpackValue (BoolValue &V, Environment &Env)
 
template<typename Derived , typename M >
BoolValue & clang::dataflow::unpackBinaryBoolValue (Environment &Env, BoolValue &B, M build)
 
static Valueclang::dataflow::maybeUnpackLValueExpr (const Expr &E, Environment &Env)
 
static void clang::dataflow::propagateValue (const Expr &From, const Expr &To, Environment &Env)
 
static void clang::dataflow::propagateStorageLocation (const Expr &From, const Expr &To, Environment &Env)
 
static void clang::dataflow::propagateValueOrStorageLocation (const Expr &From, const Expr &To, Environment &Env)
 
void clang::dataflow::transfer (const StmtToEnvMap &StmtToEnv, const Stmt &S, Environment &Env)
 Evaluates S and updates Env accordingly.