clang  7.0.0svn
Public Types | Public Member Functions | Friends | List of all members
clang::ento::nonloc::PointerToMember Class Reference

Value representing pointer-to-member. More...

#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"

Inheritance diagram for clang::ento::nonloc::PointerToMember:
Inheritance graph
Collaboration diagram for clang::ento::nonloc::PointerToMember:
Collaboration graph

Public Types

typedef llvm::PointerUnion< const DeclaratorDecl *, const PointerToMemberData * > PTMDataType
typedef llvm::ImmutableList< const CXXBaseSpecifier * >::iterator iterator
- Public Types inherited from clang::ento::SVal
enum  BaseKind
enum  { BaseBits = 2, BaseMask = 0x3 }

Public Member Functions

const PTMDataType getPTMData () const
bool isNullMemberPointer () const
const DeclaratorDeclgetDecl () const
template<typename AdjustedDecl >
const AdjustedDecl * getDeclAs () const
iterator begin () const
iterator end () const
- Public Member Functions inherited from clang::ento::NonLoc
void dumpToStream (raw_ostream &Out) const
- Public Member Functions inherited from clang::ento::SVal
 SVal ()
template<typename T >
T castAs () const
 Convert to the specified SVal type, asserting that this SVal is of the desired type. More...
template<typename T >
Optional< TgetAs () const
 Convert to the specified SVal type, returning None if this SVal is not of the desired type. More...
unsigned getRawKind () const
BaseKind getBaseKind () const
unsigned getSubKind () const
void Profile (llvm::FoldingSetNodeID &ID) const
bool operator== (const SVal &R) const
bool operator!= (const SVal &R) const
bool isUnknown () const
bool isUndef () const
bool isUnknownOrUndef () const
bool isValid () const
bool isConstant () const
bool isConstant (int I) const
bool isZeroConstant () const
bool hasConjuredSymbol () const
 hasConjuredSymbol - If this SVal wraps a conjured symbol, return true; More...
const FunctionDeclgetAsFunctionDecl () const
 getAsFunctionDecl - If this SVal is a MemRegionVal and wraps a CodeTextRegion wrapping a FunctionDecl, return that FunctionDecl. More...
SymbolRef getAsLocSymbol (bool IncludeBaseRegions=false) const
 If this SVal is a location and wraps a symbol, return that SymbolRef. More...
SymbolRef getLocSymbolInBase () const
 Get the symbol in the SVal or its base region. More...
SymbolRef getAsSymbol (bool IncludeBaseRegions=false) const
 If this SVal wraps a symbol return that SymbolRef. More...
const SymExprgetAsSymbolicExpression () const
 getAsSymbolicExpression - If this Sval wraps a symbolic expression then return that expression. More...
const SymExprgetAsSymExpr () const
const MemRegiongetAsRegion () const
void dumpToStream (raw_ostream &OS) const
void dump () const
SymExpr::symbol_iterator symbol_begin () const
SymExpr::symbol_iterator symbol_end () const


class ento::SValBuilder
class SVal

Additional Inherited Members

- Static Public Member Functions inherited from clang::ento::NonLoc
static bool isCompoundType (QualType T)
- Protected Member Functions inherited from clang::ento::NonLoc
 NonLoc ()
 NonLoc (unsigned SubKind, const void *d)
- Protected Member Functions inherited from clang::ento::DefinedSVal
 DefinedSVal ()
 DefinedSVal (const void *d, bool isLoc, unsigned ValKind)
- Protected Member Functions inherited from clang::ento::DefinedOrUnknownSVal
 DefinedOrUnknownSVal ()
 DefinedOrUnknownSVal (const void *d, bool isLoc, unsigned ValKind)
 DefinedOrUnknownSVal (BaseKind k, void *D=nullptr)
- Protected Member Functions inherited from clang::ento::SVal
 SVal (const void *d, bool isLoc, unsigned ValKind)
 SVal (BaseKind k, const void *D=nullptr)
- Protected Attributes inherited from clang::ento::SVal
const void * Data
unsigned Kind
 The lowest 2 bits are a BaseKind (0 – 3). More...

Detailed Description

Value representing pointer-to-member.

This value is qualified as NonLoc because neither loading nor storing operations are aplied to it. Instead, the analyzer uses the L-value coming from pointer-to-member applied to an object. This SVal is represented by a DeclaratorDecl which can be a member function pointer or a member data pointer and a list of CXXBaseSpecifiers. This list is required to accumulate the pointer-to-member cast history to figure out the correct subobject field.

Definition at line 487 of file SVals.h.

Member Typedef Documentation

◆ iterator

Definition at line 504 of file SVals.h.

◆ PTMDataType

Definition at line 492 of file SVals.h.

Member Function Documentation

◆ begin()

nonloc::PointerToMember::iterator nonloc::PointerToMember::begin ( ) const

Definition at line 189 of file SVals.cpp.

◆ end()

nonloc::PointerToMember::iterator nonloc::PointerToMember::end ( ) const

Definition at line 196 of file SVals.cpp.

◆ getDecl()

const DeclaratorDecl * nonloc::PointerToMember::getDecl ( ) const

Definition at line 163 of file SVals.cpp.

◆ getDeclAs()

template<typename AdjustedDecl >
const AdjustedDecl* clang::ento::nonloc::PointerToMember::getDeclAs ( ) const

Definition at line 501 of file SVals.h.

◆ getPTMData()

const PTMDataType clang::ento::nonloc::PointerToMember::getPTMData ( ) const

Definition at line 493 of file SVals.h.

Referenced by clang::ento::BasicValueFactory::accumCXXBase().

◆ isNullMemberPointer()

bool clang::ento::nonloc::PointerToMember::isNullMemberPointer ( ) const

Definition at line 496 of file SVals.h.

Friends And Related Function Documentation

◆ ento::SValBuilder

friend class ento::SValBuilder

Definition at line 488 of file SVals.h.

◆ SVal

friend class SVal

Definition at line 511 of file SVals.h.

The documentation for this class was generated from the following files: