clang 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::ento::nonloc::CompoundVal Class Reference

The simplest example of a concrete compound value is nonloc::CompoundVal, which represents a concrete r-value of an initializer-list or a string. More...

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

Inheritance diagram for clang::ento::nonloc::CompoundVal:
Inheritance graph
[legend]

Public Types

using iterator = llvm::ImmutableList< SVal >::iterator
 
- Public Types inherited from clang::ento::SVal
enum  SValKind : unsigned char
 

Public Member Functions

LLVM_ATTRIBUTE_RETURNS_NONNULL const CompoundValDatagetValue () 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::DefinedSVal
bool isUnknown () const =delete
 
bool isUnknownOrUndef () const =delete
 
bool isValid () const =delete
 
- Public Member Functions inherited from clang::ento::DefinedOrUnknownSVal
bool isUndef () const =delete
 
bool isValid () const =delete
 
- Public Member Functions inherited from clang::ento::SVal
 SVal ()=default
 
template<typename T >
T castAs () const
 Convert to the specified SVal type, asserting that this SVal is of the desired type.
 
template<typename T >
std::optional< TgetAs () const
 Convert to the specified SVal type, returning std::nullopt if this SVal is not of the desired type.
 
SValKind getKind () const
 
StringRef getKindStr () const
 
void Profile (llvm::FoldingSetNodeID &ID) const
 
bool operator== (SVal R) const
 
bool operator!= (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
 
const FunctionDeclgetAsFunctionDecl () const
 getAsFunctionDecl - If this SVal is a MemRegionVal and wraps a CodeTextRegion wrapping a FunctionDecl, return that FunctionDecl.
 
SymbolRef getAsLocSymbol (bool IncludeBaseRegions=false) const
 If this SVal is a location and wraps a symbol, return that SymbolRef.
 
SymbolRef getLocSymbolInBase () const
 Get the symbol in the SVal or its base region.
 
SymbolRef getAsSymbol (bool IncludeBaseRegions=false) const
 If this SVal wraps a symbol return that SymbolRef.
 
const llvm::APSInt * getAsInteger () const
 If this SVal is loc::ConcreteInt or nonloc::ConcreteInt, return a pointer to APSInt which is held in it.
 
const MemRegiongetAsRegion () const
 
void printJson (raw_ostream &Out, bool AddQuotes) const
 printJson - Pretty-prints in JSON format.
 
void dumpToStream (raw_ostream &OS) const
 
void dump () const
 
llvm::iterator_range< SymExpr::symbol_iteratorsymbols () const
 
QualType getType (const ASTContext &) const
 Try to get a reasonable type for the given value.
 

Static Public Member Functions

static bool classof (SVal V)
 
- Static Public Member Functions inherited from clang::ento::NonLoc
static bool isCompoundType (QualType T)
 
static bool classof (SVal V)
 
- Static Public Member Functions inherited from clang::ento::DefinedSVal
static bool classof (SVal V)
 
- Static Public Member Functions inherited from clang::ento::DefinedOrUnknownSVal
static bool classof (SVal V)
 

Friends

class ento::SValBuilder
 

Additional Inherited Members

- Protected Member Functions inherited from clang::ento::NonLoc
 NonLoc (SValKind Kind, const void *Data)
 
- Protected Member Functions inherited from clang::ento::DefinedSVal
 DefinedSVal (SValKind Kind, const void *Data)
 
- Protected Member Functions inherited from clang::ento::DefinedOrUnknownSVal
 DefinedOrUnknownSVal (SValKind Kind, const void *Data=nullptr)
 
- Protected Member Functions inherited from clang::ento::SVal
 SVal (SValKind Kind, const void *Data=nullptr)
 
template<typename T >
const TcastDataAs () const
 
- Protected Attributes inherited from clang::ento::SVal
const void * Data = nullptr
 
SValKind Kind = UndefinedValKind
 

Detailed Description

The simplest example of a concrete compound value is nonloc::CompoundVal, which represents a concrete r-value of an initializer-list or a string.

Internally, it contains an llvm::ImmutableList of SVal's stored inside the literal.

Definition at line 339 of file SVals.h.

Member Typedef Documentation

◆ iterator

using clang::ento::nonloc::CompoundVal::iterator = llvm::ImmutableList<SVal>::iterator

Definition at line 352 of file SVals.h.

Member Function Documentation

◆ begin()

nonloc::CompoundVal::iterator nonloc::CompoundVal::begin ( ) const

Definition at line 220 of file SVals.cpp.

◆ classof()

static bool clang::ento::nonloc::CompoundVal::classof ( SVal  V)
inlinestatic

Definition at line 356 of file SVals.h.

References V.

◆ end()

nonloc::CompoundVal::iterator nonloc::CompoundVal::end ( ) const

Definition at line 224 of file SVals.cpp.

◆ getValue()

LLVM_ATTRIBUTE_RETURNS_NONNULL const CompoundValData * clang::ento::nonloc::CompoundVal::getValue ( ) const
inline

Definition at line 348 of file SVals.h.

Friends And Related Function Documentation

◆ ento::SValBuilder

friend class ento::SValBuilder
friend

Definition at line 340 of file SVals.h.


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