class PointerToMember

Declaration

class PointerToMember : public NonLoc { /* full declaration omitted */ };

Description

Value representing pointer-to-member. This value is qualified as NonLoc because neither loading nor storing operations are applied to it. Instead, the analyzer uses the L-value coming from pointer-to-member applied to an object. This SVal is represented by a NamedDecl which can be a member function pointer or a member data pointer and an optional list of CXXBaseSpecifiers. This list is required to accumulate the pointer-to-member cast history to figure out the correct subobject field. In particular, implicit casts grow this list and explicit casts like static_cast shrink this list.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:442

Inherits from: NonLoc

Member Variables

Inherited from SVal:

protected Data = nullptr
protected Kind = 0

Method Overview

  • private PointerToMember(const clang::ento::nonloc::PointerToMember::PTMDataType D)
  • public clang::ento::nonloc::PointerToMember::iterator begin() const
  • public static bool classof(clang::ento::SVal V)
  • public static bool classof(clang::ento::NonLoc V)
  • public clang::ento::nonloc::PointerToMember::iterator end() const
  • public const clang::NamedDecl * getDecl() const
  • public template <typename AdjustedDecl>const AdjustedDecl * getDeclAs() const
  • public const clang::ento::nonloc::PointerToMember::PTMDataType getPTMData() const
  • public bool isNullMemberPointer() const

Inherited from NonLoc:

Inherited from DefinedSVal:

Inherited from DefinedOrUnknownSVal:

Inherited from SVal:

Methods

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

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:477

Parameters

const clang::ento::nonloc::PointerToMember:: PTMDataType D

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

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:464

static bool classof(clang::ento::SVal V)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:467

Parameters

clang::ento::SVal V

static bool classof(clang::ento::NonLoc V)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:472

Parameters

clang::ento::NonLoc V

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

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:465

const clang::NamedDecl* getDecl() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:455

template <typename AdjustedDecl>
const AdjustedDecl* getDeclAs() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:458

Templates

AdjustedDecl

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

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:449

bool isNullMemberPointer() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:453