A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/MemRegion_8h_source.html below:

clang: include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h Source File

15#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_MEMREGION_H 16#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_MEMREGION_H 31#include "llvm/ADT/DenseMap.h" 32#include "llvm/ADT/FoldingSet.h" 33#include "llvm/ADT/PointerIntPair.h" 34#include "llvm/ADT/iterator_range.h" 35#include "llvm/Support/Allocator.h" 36#include "llvm/Support/Casting.h" 37#include "llvm/Support/ErrorHandling.h" 47class

AnalysisDeclContext;

51class

StackFrameContext;

57class

MemRegionManager;

74 static const

int64_t

Symbolic

= std::numeric_limits<int64_t>::max();

100#define REGION(Id, Parent) Id ## Kind, 101#define REGION_RANGE(Id, First, Last) BEGIN_##Id = First, END_##Id = Last, 102#include "clang/StaticAnalyzer/Core/PathSensitive/Regions.def" 109 mutable

std::optional<RegionOffset> cachedOffset;

118 virtual void Profile

(llvm::FoldingSetNodeID&

ID

)

const

= 0;

128

LLVM_ATTRIBUTE_RETURNS_NONNULL

135

LLVM_ATTRIBUTE_RETURNS_NONNULL

179 template

<

typename

RegionTy>

const

RegionTy*

getAs

()

const

;

180 template

<

typename

RegionTy>

181

LLVM_ATTRIBUTE_RETURNS_NONNULL

const

RegionTy *

castAs

()

const

;

221 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

225 return

k >= BEGIN_MEMSPACES && k <= END_MEMSPACES;

241 return

R->

getKind

() == CodeSpaceRegionKind;

246 virtual void

anchor();

256 return

k >= BEGIN_GLOBAL_MEMSPACES && k <= END_GLOBAL_MEMSPACES;

276 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

280

LLVM_ATTRIBUTE_RETURNS_NONNULL

284 return

R->

getKind

() == StaticGlobalSpaceRegionKind;

295 void

anchor()

override

;

306 return

k >= BEGIN_NON_STATIC_GLOBAL_MEMSPACES &&

307

k <= END_NON_STATIC_GLOBAL_MEMSPACES;

323 return

R->

getKind

() == GlobalSystemSpaceRegionKind;

342 return

R->

getKind

() == GlobalImmutableSpaceRegionKind;

359 return

R->

getKind

() == GlobalInternalSpaceRegionKind;

373 return

R->

getKind

() == HeapSpaceRegionKind;

387 return

R->

getKind

() == UnknownSpaceRegionKind;

392 virtual void

anchor();

404

LLVM_ATTRIBUTE_RETURNS_NONNULL

407 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

411 return

k >= BEGIN_STACK_MEMSPACES && k <= END_STACK_MEMSPACES;

425 return

R->

getKind

() == StackLocalsSpaceRegionKind;

440 return

R->

getKind

() == StackArgumentsSpaceRegionKind;

447 virtual void

anchor();

458

LLVM_ATTRIBUTE_RETURNS_NONNULL

468 return

R->

getKind

() > END_MEMSPACES;

492 static void

ProfileRegion(llvm::FoldingSetNodeID&

ID

,

const Expr

*Ex,

496

LLVM_ATTRIBUTE_RETURNS_NONNULL

501 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

506 return

R->

getKind

() == AllocaRegionKind;

512 void

anchor()

override

;

530 return

k >= BEGIN_TYPED_REGIONS && k <= END_TYPED_REGIONS;

536 void

anchor()

override

;

557 return T

.getTypePtrOrNull() ?

T

.getDesugaredType(Context) :

T

;

562 return

k >= BEGIN_TYPED_VALUE_REGIONS && k <= END_TYPED_VALUE_REGIONS;

567 void

anchor()

override

;

579 return

k >= BEGIN_CODE_TEXT_REGIONS && k <= END_CODE_TEXT_REGIONS;

591

assert(isa<ObjCMethodDecl>(fd) || isa<FunctionDecl>(fd));

594 static void

ProfileRegion(llvm::FoldingSetNodeID&

ID

,

const NamedDecl

*FD,

600 if

(

const auto

*

D

= dyn_cast<FunctionDecl>(FD)) {

601 return

Ctx.getPointerType(

D

->getType());

604

assert(isa<ObjCMethodDecl>(FD));

605

assert(

false

&&

"Getting the type of ObjCMethod is not supported yet"

);

618 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

621 return

R->

getKind

() == FunctionCodeRegionKind;

640

:

CodeTextRegion

(sreg, BlockCodeRegionKind), BD(bd), AC(ac), locTy(lTy) {

646 static void

ProfileRegion(llvm::FoldingSetNodeID&

ID

,

const BlockDecl

*BD,

655

LLVM_ATTRIBUTE_RETURNS_NONNULL

660

LLVM_ATTRIBUTE_RETURNS_NONNULL

665 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

668 return

R->

getKind

() == BlockCodeRegionKind;

684 void

*ReferencedVars =

nullptr

;

685 void

*OriginalVars =

nullptr

;

689

:

TypedRegion

(sreg, BlockDataRegionKind), BC(bc), LC(lc),

694

assert(isa<GlobalImmutableSpaceRegion>(sreg) ||

695

isa<StackLocalsSpaceRegion>(sreg) ||

696

isa<UnknownSpaceRegion>(sreg));

699 static void

ProfileRegion(llvm::FoldingSetNodeID&,

const BlockCodeRegion

*,

704

LLVM_ATTRIBUTE_RETURNS_NONNULL

707

LLVM_ATTRIBUTE_RETURNS_NONNULL

719

: R(r), OriginalR(originalR) {}

721

LLVM_ATTRIBUTE_RETURNS_NONNULL

723 return

cast<VarRegion>(*R);

726

LLVM_ATTRIBUTE_RETURNS_NONNULL

728 return

cast<VarRegion>(*OriginalR);

732

assert((R ==

nullptr

) == (I.R ==

nullptr

));

737

assert((R ==

nullptr

) == (I.R ==

nullptr

));

759

llvm::iterator_range<referenced_vars_iterator>

referenced_vars

()

const

;

763 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

766 return

R->

getKind

() == BlockDataRegionKind;

770 void

LazyInitializeReferencedVars();

771

std::pair<const VarRegion *, const VarRegion *>

772

getCaptureRegions(

const VarDecl

*VD);

786

:

SubRegion

(sreg, SymbolicRegionKind), sym(

s

) {

789

assert(isa_and_nonnull<SymbolData>(

s

));

790

assert(

s

->getType()->isAnyPointerType() ||

791 s

->getType()->isReferenceType() ||

792 s

->getType()->isBlockPointerType());

793

assert(isa<UnknownSpaceRegion>(sreg) || isa<HeapSpaceRegion>(sreg) ||

794

isa<GlobalSystemSpaceRegion>(sreg));

815 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

824 return

R->

getKind

() == SymbolicRegionKind;

839 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

844

LLVM_ATTRIBUTE_RETURNS_NONNULL

851 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

{

858 return

R->

getKind

() == StringRegionKind;

874 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

879

LLVM_ATTRIBUTE_RETURNS_NONNULL

886 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

{

893 return

R->

getKind

() == ObjCStringRegionKind;

909

assert(isa<GlobalInternalSpaceRegion>(sReg) ||

910

isa<StackLocalsSpaceRegion>(sReg));

913 static void

ProfileRegion(llvm::FoldingSetNodeID&

ID

,

922 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

926

LLVM_ATTRIBUTE_RETURNS_NONNULL

930 return

R->

getKind

() == CompoundLiteralRegionKind;

946 return

k >= BEGIN_DECL_REGIONS && k <= END_DECL_REGIONS;

960

assert(isa<GlobalsSpaceRegion>(sReg) || isa<StackSpaceRegion>(sReg) ||

961

isa<BlockDataRegion>(sReg) || isa<UnknownSpaceRegion>(sReg));

978 return

k >= BEGIN_VAR_REGIONS && k <= END_VAR_REGIONS;

989

:

VarRegion

(sReg, NonParamVarRegionKind), VD(vd) {

994

assert(isa<GlobalsSpaceRegion>(sReg) || isa<StackSpaceRegion>(sReg) ||

995

isa<BlockDataRegion>(sReg) || isa<UnknownSpaceRegion>(sReg));

999 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

const VarDecl

*VD,

1003 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

1005

LLVM_ATTRIBUTE_RETURNS_NONNULL

1020 return

R->

getKind

() == NonParamVarRegionKind;

1037 const Expr

*OriginExpr;

1041

:

VarRegion

(SReg, ParamVarRegionKind), OriginExpr(OE), Index(Idx) {

1042

assert(!cast<StackSpaceRegion>(SReg)->

getStackFrame

()->inTopFrame());

1046 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

const Expr

*OE,

1050

LLVM_ATTRIBUTE_RETURNS_NONNULL

1054 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

1067 return

R->

getKind

() == ParamVarRegionKind;

1080

ThisPointerTy(thisPointerTy) {

1082 "Invalid region type!"

);

1085 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

1090 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

1093 return QualType

(ThisPointerTy, 0);

1099 return

R->

getKind

() == CXXThisRegionKind;

1112

:

DeclRegion

(sReg, FieldRegionKind), FD(fd) {

1116 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

const FieldDecl

*FD,

1118 ID

.AddInteger(

static_cast<unsigned>

(FieldRegionKind));

1124

LLVM_ATTRIBUTE_RETURNS_NONNULL

1127 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

1137 void printPretty

(raw_ostream &os)

const override

;

1142 return

R->

getKind

() == FieldRegionKind;

1153 static void

ProfileRegion(llvm::FoldingSetNodeID&

ID

,

const ObjCIvarDecl

*ivd,

1157

LLVM_ATTRIBUTE_RETURNS_NONNULL

1160 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

1170 return

R->

getKind

() == ObjCIvarRegionKind;

1185

: Region(reg), Offset(offset) {}

1195 void dump

()

const

;

1208

assert((!isa<nonloc::ConcreteInt>(Idx) ||

1210 "The index must be signed"

);

1212 "Invalid region type!"

);

1215 static void

ProfileRegion(llvm::FoldingSetNodeID&

ID

,

QualType

elementType,

1230 void Profile

(llvm::FoldingSetNodeID&

ID

)

const override

;

1233 return

R->

getKind

() == ElementRegionKind;

1246

assert(isa<StackLocalsSpaceRegion>(sReg));

1249 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

1253

LLVM_ATTRIBUTE_RETURNS_NONNULL

1256

LLVM_ATTRIBUTE_RETURNS_NONNULL

1263 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

1266 return

R->

getKind

() == CXXTempObjectRegionKind;

1284

assert((isa<StackLocalsSpaceRegion, GlobalInternalSpaceRegion>(sReg)));

1287 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

Expr const

*

E

,

1291

LLVM_ATTRIBUTE_RETURNS_NONNULL

1293

LLVM_ATTRIBUTE_RETURNS_NONNULL

1302 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

1305 return

R->

getKind

() == CXXLifetimeExtendedObjectRegionKind;

1314

llvm::PointerIntPair<const CXXRecordDecl *, 1, bool>

Data

;

1322 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

const CXXRecordDecl

*RD,

1326

LLVM_ATTRIBUTE_RETURNS_NONNULL

1334 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

1341 return

region->

getKind

() == CXXBaseObjectRegionKind;

1356

:

TypedValueRegion

(SReg, CXXDerivedObjectRegionKind), DerivedD(DerivedD) {

1362 "Should have unwrapped a base region instead!"

);

1365 static void

ProfileRegion(llvm::FoldingSetNodeID &

ID

,

const CXXRecordDecl

*RD,

1369

LLVM_ATTRIBUTE_RETURNS_NONNULL

1376 void Profile

(llvm::FoldingSetNodeID &

ID

)

const override

;

1383 return

region->

getKind

() == CXXDerivedObjectRegionKind;

1387template

<

typename

RegionTy>

1389 if

(

const auto

*RT = dyn_cast<RegionTy>(

this

))

1395template

<

typename

RegionTy>

1397 return

cast<RegionTy>(

this

);

1406

llvm::BumpPtrAllocator& A;

1408

llvm::FoldingSet<MemRegion> Regions;

1414

llvm::DenseMap<const StackFrameContext *, StackLocalsSpaceRegion *>

1415

StackLocalsSpaceRegions;

1416

llvm::DenseMap<const StackFrameContext *, StackArgumentsSpaceRegion *>

1417

StackArgumentsSpaceRegions;

1418

llvm::DenseMap<const CodeTextRegion *, StaticGlobalSpaceRegion *>

1419

StaticsGlobalSpaceRegions;

1590 unsigned

blockCount);

1593 template

<

typename

RegionTy,

typename

SuperTy,

1595

RegionTy* getSubRegion(

const

Arg1Ty arg1,

1596 const

SuperTy* superRegion);

1598 template

<

typename

RegionTy,

typename

SuperTy,

1599 typename

Arg1Ty,

typename

Arg2Ty>

1600

RegionTy* getSubRegion(

const

Arg1Ty arg1,

const

Arg2Ty arg2,

1601 const

SuperTy* superRegion);

1603 template

<

typename

RegionTy,

typename

SuperTy,

1604 typename

Arg1Ty,

typename

Arg2Ty,

typename

Arg3Ty>

1605

RegionTy* getSubRegion(

const

Arg1Ty arg1,

const

Arg2Ty arg2,

1607 const

SuperTy* superRegion);

1609 template

<

typename

REG>

1610 const

REG* LazyAllocate(REG*& region);

1612 template

<

typename

REG,

typename

ARG>

1613 const

REG* LazyAllocate(REG*& region, ARG a);

1630 using

StorageTypeForKinds =

unsigned

char;

1632

llvm::DenseMap<const MemRegion *, StorageTypeForKinds> MRTraitsMap;

1633

llvm::DenseMap<SymbolRef, StorageTypeForKinds> SymTraitsMap;

1635 using

const_region_iterator =

1636

llvm::DenseMap<const MemRegion *, StorageTypeForKinds>::const_iterator;

1637 using

const_symbol_iterator =

1638

llvm::DenseMap<SymbolRef, StorageTypeForKinds>::const_iterator;

Defines the clang::ASTContext interface.

This file defines AnalysisDeclContext, a class that manages the analysis context data for context sen...

Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.

Defines the clang::SourceLocation class and associated facilities.

C Language Family Type Representation.

__device__ __2f16 float __ockl_bool s

__device__ __2f16 float c

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

QualType getPointerType(QualType T) const

Return the uniqued reference to the type for a pointer to the specified type.

QualType getObjCObjectPointerType(QualType OIT) const

Return a ObjCObjectPointerType type for the given ObjCObjectType.

AnalysisDeclContext contains the context data for the function, method or block under analysis.

Represents a block literal declaration, which is like an unnamed FunctionDecl.

Represents a C++ struct/union/class.

const T * getTypePtr() const

Retrieve the underlying type pointer, which refers to a canonical type.

CharUnits - This is an opaque type for sizes expressed in character units.

static CharUnits Zero()

Zero - Construct a CharUnits quantity of zero.

CompoundLiteralExpr - [C99 6.5.2.5].

This represents one expression.

Represents a member of a struct/union/class.

It wraps the AnalysisDeclContext to represent both the call stack with the help of StackFrameContext ...

This represents a decl that may have a name.

ObjCIvarDecl - Represents an ObjC instance variable.

Represents a class type in Objective C.

ObjCStringLiteral, used for Objective-C string literals i.e.

Represents a parameter to a function.

PointerType - C99 6.7.5.1 - Pointer Declarators.

QualType getPointeeType() const

A (possibly-)qualified type.

QualType getDesugaredType(const ASTContext &Context) const

Return the specified type with any "sugar" removed from the type.

bool isNull() const

Return true if this QualType doesn't point to a type yet.

A trivial tuple used to represent a source range.

It represents a stack frame of the call stack (based on CallEvent).

StringLiteral - This represents a string literal expression, e.g.

CXXRecordDecl * getAsCXXRecordDecl() const

Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...

bool isBlockPointerType() const

QualType getPointeeType() const

If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee.

const T * getAs() const

Member-template getAs<specific type>'.

Represent the declaration of a variable (in which case it is an lvalue) a function (in which case it ...

Represents a variable declaration or definition.

AllocaRegion - A region that represents an untyped blob of bytes created by a call to 'alloca'.

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

void Profile(llvm::FoldingSetNodeID &ID) const override

LLVM_ATTRIBUTE_RETURNS_NONNULL const Expr * getExpr() const

bool isBoundable() const override

BlockCodeRegion - A region that represents code texts of blocks (closures).

QualType getLocationType() const override

LLVM_ATTRIBUTE_RETURNS_NONNULL AnalysisDeclContext * getAnalysisDeclContext() const

void dumpToStream(raw_ostream &os) const override

LLVM_ATTRIBUTE_RETURNS_NONNULL const BlockDecl * getDecl() const

static bool classof(const MemRegion *R)

void Profile(llvm::FoldingSetNodeID &ID) const override

bool operator==(const referenced_vars_iterator &I) const

const referenced_vars_iterator & operator*() const

bool operator!=(const referenced_vars_iterator &I) const

LLVM_ATTRIBUTE_RETURNS_NONNULL const VarRegion * getCapturedRegion() const

LLVM_ATTRIBUTE_RETURNS_NONNULL const VarRegion * getOriginalRegion() const

referenced_vars_iterator & operator++()

referenced_vars_iterator(const MemRegion *const *r, const MemRegion *const *originalR)

BlockDataRegion - A region that represents a block instance.

const VarRegion * getOriginalRegion(const VarRegion *VR) const

Return the original region for a captured region, if one exists.

QualType getLocationType() const override

LLVM_ATTRIBUTE_RETURNS_NONNULL const BlockDecl * getDecl() const

static bool classof(const MemRegion *R)

referenced_vars_iterator referenced_vars_begin() const

LLVM_ATTRIBUTE_RETURNS_NONNULL const BlockCodeRegion * getCodeRegion() const

void Profile(llvm::FoldingSetNodeID &ID) const override

referenced_vars_iterator referenced_vars_end() const

void dumpToStream(raw_ostream &os) const override

llvm::iterator_range< referenced_vars_iterator > referenced_vars() const

void printPrettyAsExpr(raw_ostream &os) const override

Print the region as expression.

LLVM_ATTRIBUTE_RETURNS_NONNULL const CXXRecordDecl * getDecl() const

bool canPrintPrettyAsExpr() const override

Returns true if this region's textual representation can be used as part of a larger expression.

void Profile(llvm::FoldingSetNodeID &ID) const override

static bool classof(const MemRegion *region)

void dumpToStream(raw_ostream &os) const override

QualType getValueType() const override

void printPrettyAsExpr(raw_ostream &os) const override

Print the region as expression.

void Profile(llvm::FoldingSetNodeID &ID) const override

QualType getValueType() const override

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *region)

bool canPrintPrettyAsExpr() const override

Returns true if this region's textual representation can be used as part of a larger expression.

LLVM_ATTRIBUTE_RETURNS_NONNULL const CXXRecordDecl * getDecl() const

static bool classof(const MemRegion *R)

LLVM_ATTRIBUTE_RETURNS_NONNULL const Expr * getExpr() const

void Profile(llvm::FoldingSetNodeID &ID) const override

LLVM_ATTRIBUTE_RETURNS_NONNULL const ValueDecl * getExtendingDecl() const

void dumpToStream(raw_ostream &os) const override

const StackFrameContext * getStackFrame() const

It might return null.

QualType getValueType() const override

QualType getValueType() const override

void Profile(llvm::FoldingSetNodeID &ID) const override

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

LLVM_ATTRIBUTE_RETURNS_NONNULL const Expr * getExpr() const

LLVM_ATTRIBUTE_RETURNS_NONNULL const StackFrameContext * getStackFrame() const

CXXThisRegion - Represents the region for the implicit 'this' parameter in a call to a C++ method.

QualType getValueType() const override

static bool classof(const MemRegion *R)

void Profile(llvm::FoldingSetNodeID &ID) const override

void dumpToStream(raw_ostream &os) const override

CodeSpaceRegion - The memory space that holds the executable code of functions and blocks.

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

CodeTextRegion(const MemSpaceRegion *sreg, Kind k)

static bool classof(const MemRegion *R)

bool isBoundable() const override

CompoundLiteralRegion - A memory region representing a compound literal.

LLVM_ATTRIBUTE_RETURNS_NONNULL const CompoundLiteralExpr * getLiteralExpr() const

QualType getValueType() const override

bool isBoundable() const override

void Profile(llvm::FoldingSetNodeID &ID) const override

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

DeclRegion(const MemRegion *sReg, Kind k)

virtual const ValueDecl * getDecl() const =0

static bool classof(const MemRegion *R)

ElementRegion is used to represent both array elements and casts.

static bool classof(const MemRegion *R)

QualType getValueType() const override

QualType getElementType() const

void Profile(llvm::FoldingSetNodeID &ID) const override

RegionRawOffset getAsArrayOffset() const

Compute the offset within the array. The array might also be a subobject.

void dumpToStream(raw_ostream &os) const override

void printPrettyAsExpr(raw_ostream &os) const override

Print the region as expression.

static bool classof(const MemRegion *R)

bool canPrintPretty() const override

Returns true if this region can be printed in a user-friendly way.

bool canPrintPrettyAsExpr() const override

Returns true if this region's textual representation can be used as part of a larger expression.

void dumpToStream(raw_ostream &os) const override

QualType getValueType() const override

void printPretty(raw_ostream &os) const override

Print the region for use in diagnostics.

void Profile(llvm::FoldingSetNodeID &ID) const override

LLVM_ATTRIBUTE_RETURNS_NONNULL const FieldDecl * getDecl() const override

FunctionCodeRegion - A region that represents code texts of function.

static bool classof(const MemRegion *R)

QualType getLocationType() const override

const NamedDecl * getDecl() const

void dumpToStream(raw_ostream &os) const override

void Profile(llvm::FoldingSetNodeID &ID) const override

The region containing globals which are considered not to be modified or point to data which could be...

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

The region containing globals which can be modified by calls to "internally" defined functions - (for...

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

The region containing globals which are defined in system/external headers and are considered modifia...

static bool classof(const MemRegion *R)

void dumpToStream(raw_ostream &os) const override

GlobalsSpaceRegion(MemRegionManager &mgr, Kind k)

static bool classof(const MemRegion *R)

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

const HeapSpaceRegion * getHeapRegion()

getHeapRegion - Retrieve the memory region associated with the generic "heap".

const StackArgumentsSpaceRegion * getStackArgumentsRegion(const StackFrameContext *STC)

getStackArgumentsRegion - Retrieve the memory region associated with function/method arguments of the...

const CXXThisRegion * getCXXThisRegion(QualType thisPointerTy, const LocationContext *LC)

getCXXThisRegion - Retrieve the [artificial] region associated with the parameter 'this'.

llvm::BumpPtrAllocator & getAllocator()

const BlockCodeRegion * getBlockCodeRegion(const BlockDecl *BD, CanQualType locTy, AnalysisDeclContext *AC)

const ASTContext & getContext() const

const UnknownSpaceRegion * getUnknownRegion()

getUnknownRegion - Retrieve the memory region associated with unknown memory space.

const CXXDerivedObjectRegion * getCXXDerivedObjectRegion(const CXXRecordDecl *BaseClass, const SubRegion *Super)

Create a CXXDerivedObjectRegion with the given derived class for region Super.

const CompoundLiteralRegion * getCompoundLiteralRegion(const CompoundLiteralExpr *CL, const LocationContext *LC)

getCompoundLiteralRegion - Retrieve the region associated with a given CompoundLiteral.

const FieldRegion * getFieldRegion(const FieldDecl *fd, const SubRegion *superRegion)

getFieldRegion - Retrieve or create the memory region associated with a specified FieldDecl.

const AllocaRegion * getAllocaRegion(const Expr *Ex, unsigned Cnt, const LocationContext *LC)

getAllocaRegion - Retrieve a region associated with a call to alloca().

const ElementRegion * getElementRegion(QualType elementType, NonLoc Idx, const SubRegion *superRegion, const ASTContext &Ctx)

getElementRegion - Retrieve the memory region associated with the associated element type,...

const VarRegion * getVarRegion(const VarDecl *VD, const LocationContext *LC)

getVarRegion - Retrieve or create the memory region associated with a specified VarDecl and LocationC...

const NonParamVarRegion * getNonParamVarRegion(const VarDecl *VD, const MemRegion *superR)

getVarRegion - Retrieve or create the memory region associated with a specified VarDecl and LocationC...

const FieldRegion * getFieldRegionWithSuper(const FieldRegion *FR, const SubRegion *superRegion)

const StackLocalsSpaceRegion * getStackLocalsRegion(const StackFrameContext *STC)

getStackLocalsRegion - Retrieve the memory region associated with the specified stack frame.

const ObjCIvarRegion * getObjCIvarRegion(const ObjCIvarDecl *ivd, const SubRegion *superRegion)

getObjCIvarRegion - Retrieve or create the memory region associated with a specified Objective-c inst...

const SymbolicRegion * getSymbolicHeapRegion(SymbolRef sym)

Return a unique symbolic region belonging to heap memory space.

const ObjCStringRegion * getObjCStringRegion(const ObjCStringLiteral *Str)

MemRegionManager(ASTContext &c, llvm::BumpPtrAllocator &a)

const StringRegion * getStringRegion(const StringLiteral *Str)

ASTContext & getContext()

DefinedOrUnknownSVal getStaticSize(const MemRegion *MR, SValBuilder &SVB) const

const ParamVarRegion * getParamVarRegion(const Expr *OriginExpr, unsigned Index, const LocationContext *LC)

getParamVarRegion - Retrieve or create the memory region associated with a specified CallExpr,...

const CodeSpaceRegion * getCodeRegion()

const CXXLifetimeExtendedObjectRegion * getCXXLifetimeExtendedObjectRegion(Expr const *Ex, ValueDecl const *VD, LocationContext const *LC)

Create a CXXLifetimeExtendedObjectRegion for temporaries which are lifetime-extended by local referen...

const CXXTempObjectRegion * getCXXTempObjectRegion(Expr const *Ex, LocationContext const *LC)

const GlobalsSpaceRegion * getGlobalsRegion(MemRegion::Kind K=MemRegion::GlobalInternalSpaceRegionKind, const CodeTextRegion *R=nullptr)

getGlobalsRegion - Retrieve the memory region associated with global variables.

const SymbolicRegion * getSymbolicRegion(SymbolRef Sym, const MemSpaceRegion *MemSpace=nullptr)

Retrieve or create a "symbolic" memory region.

const ElementRegion * getElementRegionWithSuper(const ElementRegion *ER, const SubRegion *superRegion)

const FunctionCodeRegion * getFunctionCodeRegion(const NamedDecl *FD)

const BlockDataRegion * getBlockDataRegion(const BlockCodeRegion *bc, const LocationContext *lc, unsigned blockCount)

getBlockDataRegion - Get the memory region associated with an instance of a block.

const CXXBaseObjectRegion * getCXXBaseObjectRegion(const CXXRecordDecl *BaseClass, const SubRegion *Super, bool IsVirtual)

Create a CXXBaseObjectRegion with the given base class for region Super.

const CXXLifetimeExtendedObjectRegion * getCXXStaticLifetimeExtendedObjectRegion(const Expr *Ex, ValueDecl const *VD)

Create a CXXLifetimeExtendedObjectRegion for temporaries which are lifetime-extended by static refere...

const CXXBaseObjectRegion * getCXXBaseObjectRegionWithSuper(const CXXBaseObjectRegion *baseReg, const SubRegion *superRegion)

Create a CXXBaseObjectRegion with the same CXXRecordDecl but a different super region.

MemRegion - The root abstract class for all memory regions.

virtual bool canPrintPrettyAsExpr() const

Returns true if this region's textual representation can be used as part of a larger expression.

LLVM_ATTRIBUTE_RETURNS_NONNULL const MemSpaceRegion * getMemorySpace() const

virtual void Profile(llvm::FoldingSetNodeID &ID) const =0

bool hasStackParametersStorage() const

LLVM_ATTRIBUTE_RETURNS_NONNULL const RegionTy * castAs() const

virtual bool isBoundable() const

StringRef getKindStr() const

RegionOffset getAsOffset() const

Compute the offset within the top level memory object.

bool hasStackStorage() const

LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * StripCasts(bool StripBaseAndDerivedCasts=true) const

ASTContext & getContext() const

std::string getDescriptiveName(bool UseQuotes=true) const

Get descriptive name for memory region.

virtual bool isSubRegionOf(const MemRegion *R) const

Check if the region is a subregion of the given region.

virtual void dumpToStream(raw_ostream &os) const

const SymbolicRegion * getSymbolicBase() const

If this is a symbolic region, returns the region.

LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * getBaseRegion() const

virtual void printPretty(raw_ostream &os) const

Print the region for use in diagnostics.

virtual void printPrettyAsExpr(raw_ostream &os) const

Print the region as expression.

bool hasStackNonParametersStorage() const

std::string getString() const

Get a string representation of a region for debug use.

const RegionTy * getAs() const

LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * getMostDerivedObjectRegion() const

Recursively retrieve the region of the most derived class instance of regions of C++ base class insta...

virtual MemRegionManager & getMemRegionManager() const =0

virtual bool canPrintPretty() const

Returns true if this region can be printed in a user-friendly way.

SourceRange sourceRange() const

Retrieve source range from memory region.

MemSpaceRegion - A memory region that represents a "memory space"; for example, the set of global var...

MemRegionManager & getMemRegionManager() const override

static bool classof(const MemRegion *R)

void Profile(llvm::FoldingSetNodeID &ID) const override

bool isBoundable() const override

MemSpaceRegion(MemRegionManager &mgr, Kind k)

QualType getValueType() const override

bool canPrintPrettyAsExpr() const override

Returns true if this region's textual representation can be used as part of a larger expression.

void Profile(llvm::FoldingSetNodeID &ID) const override

void printPrettyAsExpr(raw_ostream &os) const override

Print the region as expression.

void dumpToStream(raw_ostream &os) const override

LLVM_ATTRIBUTE_RETURNS_NONNULL const VarDecl * getDecl() const override

static bool classof(const MemRegion *R)

The region for all the non-static global variables.

NonStaticGlobalSpaceRegion(MemRegionManager &mgr, Kind k)

static bool classof(const MemRegion *R)

bool canPrintPrettyAsExpr() const override

Returns true if this region's textual representation can be used as part of a larger expression.

void Profile(llvm::FoldingSetNodeID &ID) const override

QualType getValueType() const override

static bool classof(const MemRegion *R)

void printPrettyAsExpr(raw_ostream &os) const override

Print the region as expression.

LLVM_ATTRIBUTE_RETURNS_NONNULL const ObjCIvarDecl * getDecl() const override

void dumpToStream(raw_ostream &os) const override

The region associated with an ObjCStringLiteral.

QualType getValueType() const override

bool isBoundable() const override

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

LLVM_ATTRIBUTE_RETURNS_NONNULL const ObjCStringLiteral * getObjCStringLiteral() const

void Profile(llvm::FoldingSetNodeID &ID) const override

ParamVarRegion - Represents a region for paremters.

bool canPrintPrettyAsExpr() const override

Returns true if this region's textual representation can be used as part of a larger expression.

LLVM_ATTRIBUTE_RETURNS_NONNULL const Expr * getOriginExpr() const

static bool classof(const MemRegion *R)

const ParmVarDecl * getDecl() const override

TODO: What does this return?

unsigned getIndex() const

void Profile(llvm::FoldingSetNodeID &ID) const override

QualType getValueType() const override

void dumpToStream(raw_ostream &os) const override

void printPrettyAsExpr(raw_ostream &os) const override

Print the region as expression.

Information about invalidation for a particular region/symbol.

InvalidationKinds

Describes different invalidation traits.

@ TK_PreserveContents

Tells that a region's contents is not changed.

@ TK_DoNotInvalidateSuperRegion

@ TK_EntireMemSpace

When applied to a MemSpaceRegion, indicates the entire memory space should be invalidated.

@ TK_SuppressEscape

Suppress pointer-escaping of a region.

bool hasTrait(SymbolRef Sym, InvalidationKinds IK) const

void setTrait(SymbolRef Sym, InvalidationKinds IK)

Represent a region's offset within the top level base region.

static const int64_t Symbolic

bool hasSymbolicOffset() const

const MemRegion * getRegion() const

It might return null.

RegionOffset(const MemRegion *r, int64_t off)

int64_t getOffset() const

CharUnits getOffset() const

void dumpToStream(raw_ostream &os) const

const MemRegion * getRegion() const

SVal - This represents a symbolic expression, which can be either an L-value or an R-value.

T castAs() const

Convert to the specified SVal type, asserting that this SVal is of the desired type.

static bool classof(const MemRegion *R)

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

void dumpToStream(raw_ostream &os) const override

StackSpaceRegion(MemRegionManager &mgr, Kind k, const StackFrameContext *sfc)

static bool classof(const MemRegion *R)

LLVM_ATTRIBUTE_RETURNS_NONNULL const StackFrameContext * getStackFrame() const

void Profile(llvm::FoldingSetNodeID &ID) const override

The region of the static variables within the current CodeTextRegion scope.

void Profile(llvm::FoldingSetNodeID &ID) const override

static bool classof(const MemRegion *R)

void dumpToStream(raw_ostream &os) const override

LLVM_ATTRIBUTE_RETURNS_NONNULL const CodeTextRegion * getCodeRegion() const

StringRegion - Region associated with a StringLiteral.

static bool classof(const MemRegion *R)

QualType getValueType() const override

void Profile(llvm::FoldingSetNodeID &ID) const override

bool isBoundable() const override

void dumpToStream(raw_ostream &os) const override

LLVM_ATTRIBUTE_RETURNS_NONNULL const StringLiteral * getStringLiteral() const

SubRegion - A region that subsets another larger region.

LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * getSuperRegion() const

static bool classof(const MemRegion *R)

bool isSubRegionOf(const MemRegion *R) const override

Check if the region is a subregion of the given region.

SubRegion(const MemRegion *sReg, Kind k)

const MemRegion * superRegion

MemRegionManager & getMemRegionManager() const override

virtual QualType getType() const =0

SymbolicRegion - A special, "non-concrete" region.

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

bool isBoundable() const override

void Profile(llvm::FoldingSetNodeID &ID) const override

SymbolRef getSymbol() const

It might return null.

static void ProfileRegion(llvm::FoldingSetNodeID &ID, SymbolRef sym, const MemRegion *superRegion)

QualType getPointeeStaticType() const

Gets the type of the wrapped symbol.

TypedRegion - An abstract class representing regions that are typed.

QualType getDesugaredLocationType(ASTContext &Context) const

bool isBoundable() const override

virtual QualType getLocationType() const =0

TypedRegion(const MemRegion *sReg, Kind k)

static bool classof(const MemRegion *R)

TypedValueRegion - An abstract class representing regions having a typed value.

virtual QualType getValueType() const =0

QualType getLocationType() const override

static bool classof(const MemRegion *R)

QualType getDesugaredValueType(ASTContext &Context) const

TypedValueRegion(const MemRegion *sReg, Kind k)

void dumpToStream(raw_ostream &os) const override

static bool classof(const MemRegion *R)

QualType getValueType() const override

const VarDecl * getDecl() const override=0

const StackFrameContext * getStackFrame() const

It might return null.

VarRegion(const MemRegion *sReg, Kind k)

static bool classof(const MemRegion *R)

Value representing integer constant.

APSIntPtr getValue() const

@ Decl

The l-value was an access to a declared entity or something equivalently strong, like the address of ...

raw_ostream & operator<<(raw_ostream &Out, const CheckerBase &Checker)

Dump checker name to stream.

The JSON file list parser is used to communicate input to InstallAPI.

const FunctionProtoType * T


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4