clang  8.0.0svn
Functions
SimpleSValBuilder.cpp File Reference
#include "clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h"
Include dependency graph for SimpleSValBuilder.cpp:

Go to the source code of this file.

Functions

static bool isInRelation (BinaryOperator::Opcode Rel, SymbolRef Sym, llvm::APSInt Bound, ProgramStateRef State)
 
static bool isWithinConstantOverflowBounds (SymbolRef Sym, ProgramStateRef State)
 
static bool isWithinConstantOverflowBounds (llvm::APSInt I)
 
static std::pair< SymbolRef, llvm::APSInt > decomposeSymbol (SymbolRef Sym, BasicValueFactory &BV)
 
static NonLoc doRearrangeUnchecked (ProgramStateRef State, BinaryOperator::Opcode Op, SymbolRef LSym, llvm::APSInt LInt, SymbolRef RSym, llvm::APSInt RInt)
 
static bool shouldRearrange (ProgramStateRef State, BinaryOperator::Opcode Op, SymbolRef Sym, llvm::APSInt Int, QualType Ty)
 
static Optional< NonLoc > tryRearrange (ProgramStateRef State, BinaryOperator::Opcode Op, NonLoc Lhs, NonLoc Rhs, QualType ResultTy)
 
static SVal evalBinOpFieldRegionFieldRegion (const FieldRegion *LeftFR, const FieldRegion *RightFR, BinaryOperator::Opcode op, QualType resultTy, SimpleSValBuilder &SVB)
 

Function Documentation

◆ decomposeSymbol()

static std::pair<SymbolRef, llvm::APSInt> decomposeSymbol ( SymbolRef  Sym,
BasicValueFactory &  BV 
)
static

Definition at line 357 of file SimpleSValBuilder.cpp.

References clang::BinaryOperator::isAdditiveOp().

Referenced by tryRearrange().

◆ doRearrangeUnchecked()

static NonLoc doRearrangeUnchecked ( ProgramStateRef  State,
BinaryOperator::Opcode  Op,
SymbolRef  LSym,
llvm::APSInt  LInt,
SymbolRef  RSym,
llvm::APSInt  RInt 
)
static

◆ evalBinOpFieldRegionFieldRegion()

static SVal evalBinOpFieldRegionFieldRegion ( const FieldRegion *  LeftFR,
const FieldRegion *  RightFR,
BinaryOperator::Opcode  op,
QualType  resultTy,
SimpleSValBuilder &  SVB 
)
static

◆ isInRelation()

static bool isInRelation ( BinaryOperator::Opcode  Rel,
SymbolRef  Sym,
llvm::APSInt  Bound,
ProgramStateRef  State 
)
static

Definition at line 314 of file SimpleSValBuilder.cpp.

Referenced by isWithinConstantOverflowBounds().

◆ isWithinConstantOverflowBounds() [1/2]

static bool isWithinConstantOverflowBounds ( SymbolRef  Sym,
ProgramStateRef  State 
)
static

◆ isWithinConstantOverflowBounds() [2/2]

static bool isWithinConstantOverflowBounds ( llvm::APSInt  I)
static

Definition at line 347 of file SimpleSValBuilder.cpp.

◆ shouldRearrange()

static bool shouldRearrange ( ProgramStateRef  State,
BinaryOperator::Opcode  Op,
SymbolRef  Sym,
llvm::APSInt  Int,
QualType  Ty 
)
static

◆ tryRearrange()

static Optional<NonLoc> tryRearrange ( ProgramStateRef  State,
BinaryOperator::Opcode  Op,
NonLoc  Lhs,
NonLoc  Rhs,
QualType  ResultTy 
)
static