clang: clang::APValue Class Reference (original) (raw)

APValue - This class implements a discriminated union of [uninitialized] [APSInt] [APFloat], [Complex APSInt] [Complex APFloat], [Expr + Offset], [Vector: N * APValue], [Array: N * APValue]. More...

#include "[clang/AST/APValue.h](APValue%5F8h%5Fsource.html)"

Classes
struct LV
class LValueBase
class LValuePathEntry
A non-discriminated union of a base, field, or array index. More...
class LValuePathSerializationHelper
struct MemberPointerData
struct NoLValuePath
struct UninitArray
struct UninitStruct
Public Types
enum ValueKind { None, Indeterminate, Int, Float, FixedPoint, ComplexInt, ComplexFloat, LValue, Vector, Array, Struct, Union, MemberPointer, AddrLabelDiff }
typedef llvm::PointerIntPair< const Decl *, 1, bool > BaseOrMemberType
A FieldDecl or CXXRecordDecl, along with a flag indicating whether we mean a virtual or non-virtual base class subobject.
Public Member Functions
APValue ()
Creates an empty APValue of type None.
APValue (APSInt I)
Creates an integer APValue holding the given value.
APValue (APFloat F)
Creates a float APValue holding the given value.
APValue (APFixedPoint FX)
Creates a fixed-point APValue holding the given value.
APValue (const APValue *E, unsigned N)
Creates a vector APValue with N elements.
APValue (APSInt R, APSInt I)
Creates an integer complex APValue with the given real and imaginary values.
APValue (APFloat R, APFloat I)
Creates a float complex APValue with the given real and imaginary values.
APValue (const APValue &RHS)
APValue (APValue &&RHS)
APValue (LValueBase Base, const CharUnits &Offset, NoLValuePath, bool IsNullPtr=false)
Creates an lvalue APValue without an lvalue path.
APValue (LValueBase Base, const CharUnits &Offset, ArrayRef< LValuePathEntry > Path, bool OnePastTheEnd, bool IsNullPtr=false)
Creates an lvalue APValue with an lvalue path.
APValue (UninitArray, unsigned InitElts, unsigned Size)
Creates a new array APValue.
APValue (UninitStruct, unsigned NumBases, unsigned NumMembers)
Creates a new struct APValue.
APValue (const FieldDecl *ActiveDecl, const APValue &ActiveValue=APValue())
Creates a new union APValue.
APValue (const ValueDecl *Member, bool IsDerivedMember, ArrayRef< const CXXRecordDecl * > Path)
Creates a new member pointer APValue.
APValue (const AddrLabelExpr *LHSExpr, const AddrLabelExpr *RHSExpr)
Creates a new address label diff APValue.
APValue & operator= (const APValue &RHS)
APValue & operator= (APValue &&RHS)
~APValue ()
bool needsCleanup () const
Returns whether the object performed allocations.
void swap (APValue &RHS)
Swaps the contents of this and the given APValue.
void Profile (llvm::FoldingSetNodeID &ID) const
profile this value.
ValueKind getKind () const
bool isAbsent () const
bool isIndeterminate () const
bool hasValue () const
bool isInt () const
bool isFloat () const
bool isFixedPoint () const
bool isComplexInt () const
bool isComplexFloat () const
bool isLValue () const
bool isVector () const
bool isArray () const
bool isStruct () const
bool isUnion () const
bool isMemberPointer () const
bool isAddrLabelDiff () const
void dump () const
void dump (raw_ostream &OS, const ASTContext &Context) const
void printPretty (raw_ostream &OS, const ASTContext &Ctx, QualType Ty) const
void printPretty (raw_ostream &OS, const PrintingPolicy &Policy, QualType Ty, const ASTContext *Ctx=nullptr) const
std::string getAsString (const ASTContext &Ctx, QualType Ty) const
APSInt & getInt ()
const APSInt & getInt () const
bool toIntegralConstant (APSInt &Result, QualType SrcTy, const ASTContext &Ctx) const
Try to convert this value to an integral constant.
APFloat & getFloat ()
const APFloat & getFloat () const
APFixedPoint & getFixedPoint ()
const APFixedPoint & getFixedPoint () const
APSInt & getComplexIntReal ()
const APSInt & getComplexIntReal () const
APSInt & getComplexIntImag ()
const APSInt & getComplexIntImag () const
APFloat & getComplexFloatReal ()
const APFloat & getComplexFloatReal () const
APFloat & getComplexFloatImag ()
const APFloat & getComplexFloatImag () const
const LValueBase getLValueBase () const
CharUnits & getLValueOffset ()
const CharUnits & getLValueOffset () const
bool isLValueOnePastTheEnd () const
bool hasLValuePath () const
ArrayRef< LValuePathEntry > getLValuePath () const
unsigned getLValueCallIndex () const
unsigned getLValueVersion () const
bool isNullPointer () const
APValue & getVectorElt (unsigned I)
const APValue & getVectorElt (unsigned I) const
unsigned getVectorLength () const
APValue & getArrayInitializedElt (unsigned I)
const APValue & getArrayInitializedElt (unsigned I) const
bool hasArrayFiller () const
APValue & getArrayFiller ()
const APValue & getArrayFiller () const
unsigned getArrayInitializedElts () const
unsigned getArraySize () const
unsigned getStructNumBases () const
unsigned getStructNumFields () const
APValue & getStructBase (unsigned i)
APValue & getStructField (unsigned i)
const APValue & getStructBase (unsigned i) const
const APValue & getStructField (unsigned i) const
const FieldDecl * getUnionField () const
APValue & getUnionValue ()
const APValue & getUnionValue () const
const ValueDecl * getMemberPointerDecl () const
bool isMemberPointerToDerivedMember () const
ArrayRef< const CXXRecordDecl * > getMemberPointerPath () const
const AddrLabelExpr * getAddrLabelDiffLHS () const
const AddrLabelExpr * getAddrLabelDiffRHS () const
void setInt (APSInt I)
void setFloat (APFloat F)
void setFixedPoint (APFixedPoint FX)
void setVector (const APValue *E, unsigned N)
void setComplexInt (APSInt R, APSInt I)
void setComplexFloat (APFloat R, APFloat I)
void setLValue (LValueBase B, const CharUnits &O, NoLValuePath, bool IsNullPtr)
void setLValue (LValueBase B, const CharUnits &O, ArrayRef< LValuePathEntry > Path, bool OnePastTheEnd, bool IsNullPtr)
void setUnion (const FieldDecl *Field, const APValue &Value)
void setAddrLabelDiff (const AddrLabelExpr *LHSExpr, const AddrLabelExpr *RHSExpr)
Friends
template
class clang::serialization::BasicReaderBase
class ASTImporter
class ASTNodeImporter

APValue - This class implements a discriminated union of [uninitialized] [APSInt] [APFloat], [Complex APSInt] [Complex APFloat], [Expr + Offset], [Vector: N * APValue], [Array: N * APValue].

Definition at line 122 of file APValue.h.

BaseOrMemberType

ValueKind

Enumerator
None There is no such object (it's outside its lifetime).
Indeterminate This object has an indeterminate value (C++ [basic.indet]).
Int
Float
FixedPoint
ComplexInt
ComplexFloat
LValue
Vector
Array
Struct
Union
MemberPointer
AddrLabelDiff

Definition at line 127 of file APValue.h.

APValue() [1/16]

clang::APValue::APValue ( ) inline

APValue() [2/16]

clang::APValue::APValue ( APSInt I) inlineexplicit

APValue() [3/16]

clang::APValue::APValue ( APFloat F) inlineexplicit

APValue() [4/16]

clang::APValue::APValue ( APFixedPoint FX) inlineexplicit

Creates a fixed-point APValue holding the given value.

Definition at line 326 of file APValue.h.

APValue() [5/16]

APValue() [6/16]

clang::APValue::APValue ( APSInt R, APSInt I ) inline

APValue() [7/16]

clang::APValue::APValue ( APFloat R, APFloat I ) inline

APValue() [8/16]

APValue::APValue ( const APValue & RHS )

Definition at line 311 of file APValue.cpp.

References AddrLabelDiff, Array, ComplexFloat, ComplexInt, FixedPoint, Float, getAddrLabelDiffLHS(), getAddrLabelDiffRHS(), getArrayFiller(), getArrayInitializedElt(), getArrayInitializedElts(), getArraySize(), getComplexFloatImag(), getComplexFloatReal(), getComplexIntImag(), getComplexIntReal(), getFixedPoint(), getFloat(), getInt(), getKind(), getLValueBase(), getLValueOffset(), getLValuePath(), getMemberPointerDecl(), getMemberPointerPath(), getStructBase(), getStructField(), getStructNumBases(), getStructNumFields(), getUnionField(), getUnionValue(), getVectorLength(), hasArrayFiller(), hasLValuePath(), Indeterminate, Int, isLValueOnePastTheEnd(), isMemberPointerToDerivedMember(), isNullPointer(), LValue, MemberPointer, None, setAddrLabelDiff(), setComplexFloat(), setComplexInt(), setFloat(), setInt(), setLValue(), setUnion(), setVector(), Struct, Union, and Vector.

APValue() [9/16]

APValue() [10/16]

Creates an lvalue APValue without an lvalue path.

Parameters

Base The base of the lvalue.
Offset The offset of the lvalue.
IsNullPtr Whether this lvalue is a null pointer.

Definition at line 349 of file APValue.h.

References setLValue().

APValue() [11/16]

Creates an lvalue APValue with an lvalue path.

Parameters

Base The base of the lvalue.
Offset The offset of the lvalue.
Path The lvalue path.
OnePastTheEnd Whether this lvalue is one-past-the-end of the subobject it points to.
IsNullPtr Whether this lvalue is a null pointer.

Definition at line 362 of file APValue.h.

References Path, and setLValue().

APValue() [12/16]

Creates a new array APValue.

Parameters

UninitArray Marker. Pass an empty UninitArray.
InitElts Number of elements you're going to initialize in the array.
Size Full size of the array.

Definition at line 374 of file APValue.h.

APValue() [13/16]

APValue() [14/16]

Creates a new union APValue.

Parameters

ActiveDecl The FieldDecl of the active union member.
ActiveValue The value of the active union member.

Definition at line 387 of file APValue.h.

References setUnion().

APValue() [15/16]

Creates a new member pointer APValue.

Parameters

Member Declaration of the member
IsDerivedMember Whether member is a derived one.
Path The path of the member.

Definition at line 397 of file APValue.h.

References clang::Member, and Path.

APValue() [16/16]

Creates a new address label diff APValue.

Parameters

LHSExpr The left-hand side of the difference.
RHSExpr The right-hand side of the difference.

Definition at line 404 of file APValue.h.

References setAddrLabelDiff().

clang::APValue::~APValue ( ) inline

dump() [1/2]

LLVM_DUMP_METHOD void APValue::dump ( ) const

dump() [2/2]

LLVM_DUMP_METHOD void APValue::dump ( raw_ostream & OS,
const ASTContext & Context
) const

getAddrLabelDiffLHS()

const AddrLabelExpr * clang::APValue::getAddrLabelDiffLHS ( ) const inline

getAddrLabelDiffRHS()

const AddrLabelExpr * clang::APValue::getAddrLabelDiffRHS ( ) const inline

getArrayFiller() [1/2]

APValue & clang::APValue::getArrayFiller ( ) inline

getArrayFiller() [2/2]

const APValue & clang::APValue::getArrayFiller ( ) const inline

getArrayInitializedElt() [1/2]

Definition at line 552 of file APValue.h.

References Data, getArrayInitializedElts(), and isArray().

Referenced by APValue(), expandArray(), findSubobject(), getArrayInitializedElt(), clang::MSGuidDecl::getAsAPValue(), printPretty(), Profile(), clang::interp::Pointer::toRValue(), and clang::interp::Compiler< Emitter >::visitAPValueInitializer().

getArrayInitializedElt() [2/2]

const APValue & clang::APValue::getArrayInitializedElt ( unsigned I) const inline

getArrayInitializedElts()

unsigned clang::APValue::getArrayInitializedElts ( ) const inline

getArraySize()

unsigned clang::APValue::getArraySize ( ) const inline

getAsString()

Definition at line 946 of file APValue.cpp.

References printPretty(), and clang::Result.

Referenced by BuildConvertedConstantExpression(), checkDynamicType(), checkThreeWayNarrowingConversion(), DiagnoseNarrowingInInitList(), findCompleteObject(), HandleDestructionImpl(), isNullPointerValueTemplateArgument(), clang::interp::FunctionPointer::toDiagnosticString(), clang::interp::MemberPointer::toDiagnosticString(), and clang::interp::Pointer::toDiagnosticString().

getComplexFloatImag() [1/2]

APFloat & clang::APValue::getComplexFloatImag ( ) inline

getComplexFloatImag() [2/2]

const APFloat & clang::APValue::getComplexFloatImag ( ) const inline

getComplexFloatReal() [1/2]

APFloat & clang::APValue::getComplexFloatReal ( ) inline

getComplexFloatReal() [2/2]

const APFloat & clang::APValue::getComplexFloatReal ( ) const inline

getComplexIntImag() [1/2]

APSInt & clang::APValue::getComplexIntImag ( ) inline

getComplexIntImag() [2/2]

const APSInt & clang::APValue::getComplexIntImag ( ) const inline

getComplexIntReal() [1/2]

APSInt & clang::APValue::getComplexIntReal ( ) inline

getComplexIntReal() [2/2]

const APSInt & clang::APValue::getComplexIntReal ( ) const inline

getFixedPoint() [1/2]

APFixedPoint & clang::APValue::getFixedPoint ( ) inline

getFixedPoint() [2/2]

const APFixedPoint & clang::APValue::getFixedPoint ( ) const inline

getFloat() [1/2]

APFloat & clang::APValue::getFloat ( ) inline

Definition at line 479 of file APValue.h.

References Data, and isFloat().

Referenced by APValue(), BuildExpressionFromNonTypeTemplateArgumentValue(), getFloat(), clang::StandardConversionSequence::getNarrowingKind(), handleCompareOpForVector(), HandleConversionToBool(), handleLogicalOpForVector(), handleVectorUnaryOperator(), handleVectorVectorBinOp(), IsSameFloatAfterCast(), needsCleanup(), printPretty(), Profile(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), and clang::interp::Compiler< Emitter >::visitAPValue().

getFloat() [2/2]

const APFloat & clang::APValue::getFloat ( ) const inline

getInt() [1/2]

APSInt & clang::APValue::getInt ( ) inline

Definition at line 465 of file APValue.h.

References Data, and isInt().

Referenced by clang::SemaOpenACC::ActOnArraySectionExpr(), clang::SemaOpenMP::ActOnOMPArrayShapingExpr(), APValue(), clang::ast_matchers::libc_func_matchers::AST_MATCHER(), BuildExpressionFromNonTypeTemplateArgumentValue(), BuiltinAlignment(), calculateConstraintSatisfaction(), canConvertIntToOtherIntTy(), canConvertIntTyToFloatTy(), clang::Sema::CheckAdditionOperands(), clang::SemaAMDGPU::CheckAMDGCNBuiltinFunctionCall(), clang::Sema::checkCall(), checkFormatStringExpr(), clang::Sema::CheckLogicalOperands(), checkOpenMPLoop(), checkSimdlenSafelenSpecified(), clang::Sema::CheckSubtractionOperands(), DiagnoseBadDivideOrRemainderValues(), DiagnoseBadShiftValues(), diagnoseWellFormedUnsatisfiedConstraintExpr(), EvaluateBuiltinStrLen(), clang::Expr::EvaluateCharRangeAsString(), EvaluateInteger(), clang::Sema::FillInlineAsmIdentifierInfo(), getInt(), clang::ConstantExpr::getResultAsAPSInt(), GetValueRange(), handleCompareOpForVector(), HandleConversionToBool(), handleLogicalOpForVector(), handleVectorUnaryOperator(), handleVectorVectorBinOp(), needsCleanup(), clang::InitializationSequence::Perform(), printPretty(), Profile(), shouldAddCase(), toIntegralConstant(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), clang::Sema::VerifyIntegerConstantExpression(), clang::interp::Compiler< Emitter >::visitAPValue(), and clang::interp::Compiler< Emitter >::VisitSourceLocExpr().

getInt() [2/2]

const APSInt & clang::APValue::getInt ( ) const inline

getKind()

ValueKind clang::APValue::getKind ( ) const inline

getLValueBase()

Definition at line 973 of file APValue.cpp.

References isLValue().

Referenced by APValue(), EvaluateBuiltinConstantPForLValue(), getLValueType(), clang::ASTNodeImporter::ImportAPValue(), clang::interp::interp__builtin_constant_p(), clang::Expr::EvalResult::isGlobalLValue(), isNullPointerValueTemplateArgument(), printPretty(), Profile(), toIntegralConstant(), clang::interp::Compiler< Emitter >::visitAPValue(), and clang::interp::Compiler< Emitter >::VisitSourceLocExpr().

getLValueCallIndex()

unsigned APValue::getLValueCallIndex ( ) const

getLValueOffset() [1/2]

getLValueOffset() [2/2]

const CharUnits & clang::APValue::getLValueOffset ( ) const inline

getLValuePath()

getLValueVersion()

unsigned APValue::getLValueVersion ( ) const

getMemberPointerDecl()

const ValueDecl * APValue::getMemberPointerDecl ( ) const

getMemberPointerPath()

getStructBase() [1/2]

getStructBase() [2/2]

getStructField() [1/2]

getStructField() [2/2]

getStructNumBases()

unsigned clang::APValue::getStructNumBases ( ) const inline

getStructNumFields()

unsigned clang::APValue::getStructNumFields ( ) const inline

getUnionField()

const FieldDecl * clang::APValue::getUnionField ( ) const inline

getUnionValue() [1/2]

APValue & clang::APValue::getUnionValue ( ) inline

getUnionValue() [2/2]

const APValue & clang::APValue::getUnionValue ( ) const inline

getVectorElt() [1/2]

Definition at line 539 of file APValue.h.

References Data, getVectorLength(), and isVector().

Referenced by BuildExpressionFromNonTypeTemplateArgumentValue(), findSubobject(), GetValueRange(), getVectorElt(), handleVectorShuffle(), handleVectorVectorBinOp(), IsSameFloatAfterCast(), printPretty(), and Profile().

getVectorElt() [2/2]

getVectorLength()

unsigned clang::APValue::getVectorLength ( ) const inline

Definition at line 547 of file APValue.h.

References Data, and isVector().

Referenced by APValue(), BuildExpressionFromNonTypeTemplateArgumentValue(), GetValueRange(), getVectorElt(), handleVectorShuffle(), handleVectorVectorBinOp(), clang::ASTNodeImporter::ImportAPValue(), IsSameFloatAfterCast(), printPretty(), and Profile().

hasArrayFiller()

bool clang::APValue::hasArrayFiller ( ) const inline

hasLValuePath()

bool APValue::hasLValuePath ( ) const

hasValue()

bool clang::APValue::hasValue ( ) const inline

IndeterminateValue()

static APValue clang::APValue::IndeterminateValue ( ) inlinestatic

isAbsent()

bool clang::APValue::isAbsent ( ) const inline

isAddrLabelDiff()

bool clang::APValue::isAddrLabelDiff ( ) const inline

isArray()

bool clang::APValue::isArray ( ) const inline

isComplexFloat()

bool clang::APValue::isComplexFloat ( ) const inline

isComplexInt()

bool clang::APValue::isComplexInt ( ) const inline

isFixedPoint()

bool clang::APValue::isFixedPoint ( ) const inline

isFloat()

bool clang::APValue::isFloat ( ) const inline

isIndeterminate()

bool clang::APValue::isIndeterminate ( ) const inline

isInt()

bool clang::APValue::isInt ( ) const inline

Definition at line 443 of file APValue.h.

References Int, and Kind.

Referenced by BuildConvertedConstantExpression(), calculateConstraintSatisfaction(), CheckEvalInICE(), EvaluateBuiltinStrLen(), clang::Sema::EvaluateConvertedConstantExpression(), EvaluateInteger(), getInt(), GetValueRange(), setInt(), shouldAddCase(), toIntegralConstant(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), clang::Sema::VerifyIntegerConstantExpression(), clang::interp::Compiler< Emitter >::visitAPValue(), clang::interp::Compiler< Emitter >::visitAPValueInitializer(), and clang::interp::Compiler< Emitter >::VisitSourceLocExpr().

isLValue()

bool clang::APValue::isLValue ( ) const inline

Definition at line 448 of file APValue.h.

References Kind, and LValue.

Referenced by FastEvaluateAsRValue(), getLValueBase(), getLValueCallIndex(), getLValueOffset(), getLValuePath(), getLValueVersion(), GetValueRange(), handleVectorVectorBinOp(), hasLValuePath(), clang::interp::interp__builtin_constant_p(), clang::Expr::EvalResult::isGlobalLValue(), isLValueOnePastTheEnd(), isNullPointer(), isNullPointerValueTemplateArgument(), setLValue(), toIntegralConstant(), clang::interp::Compiler< Emitter >::visitAPValue(), clang::interp::Compiler< Emitter >::visitAPValueInitializer(), and clang::interp::Compiler< Emitter >::VisitSourceLocExpr().

isLValueOnePastTheEnd()

bool APValue::isLValueOnePastTheEnd ( ) const

isMemberPointer()

bool clang::APValue::isMemberPointer ( ) const inline

isMemberPointerToDerivedMember()

bool APValue::isMemberPointerToDerivedMember ( ) const

isNullPointer()

bool APValue::isNullPointer ( ) const

isStruct()

bool clang::APValue::isStruct ( ) const inline

isUnion()

bool clang::APValue::isUnion ( ) const inline

isVector()

bool clang::APValue::isVector ( ) const inline

needsCleanup()

bool APValue::needsCleanup ( ) const

Returns whether the object performed allocations.

If APValues are constructed via placement new, [needsCleanup()](classclang%5F1%5F1APValue.html#a70f81f6a4f3d9836beaa45b9d361b231 "Returns whether the object performed allocations.") indicates whether the destructor must be called in order to correctly free all allocated memory.

Definition at line 431 of file APValue.cpp.

References AddrLabelDiff, Array, ComplexFloat, ComplexInt, FixedPoint, Float, getComplexFloatImag(), getComplexFloatReal(), getComplexIntImag(), getComplexIntReal(), getFixedPoint(), getFloat(), getInt(), getKind(), Indeterminate, Int, LValue, MemberPointer, needsCleanup(), None, Struct, Union, and Vector.

Referenced by needsCleanup(), and clang::ASTDeclReader::ReadVarDeclInit().

operator=() [1/2]

operator=() [2/2]

printPretty() [1/2]

printPretty() [2/2]

Definition at line 698 of file APValue.cpp.

References AddrLabelDiff, Array, clang::CXXRecordDecl::bases_begin(), clang::CXXRecordDecl::bases_end(), clang::Type::castAs(), clang::Type::castAsArrayTypeUnsafe(), ComplexFloat, ComplexInt, E, clang::PrintingPolicy::EntireContentsOfLargeArray, clang::RecordDecl::fields(), clang::First, FixedPoint, Float, getAddrLabelDiffLHS(), getAddrLabelDiffRHS(), GetApproxValue(), getArrayInitializedElt(), getArrayInitializedElts(), clang::Type::getAs(), getComplexFloatImag(), getComplexFloatReal(), getComplexIntImag(), getComplexIntReal(), clang::ArrayType::getElementType(), getFixedPoint(), getFloat(), getInt(), getKind(), clang::AddrLabelExpr::getLabel(), getLValueBase(), getLValueOffset(), getLValuePath(), getMemberPointerDecl(), clang::NamedDecl::getName(), clang::QualType::getNonReferenceType(), clang::Type::getPointeeType(), clang::CharUnits::getQuantity(), getStructBase(), getStructField(), getStructNumBases(), clang::ValueDecl::getType(), clang::CXXBaseSpecifier::getType(), clang::ASTContext::getTypeSizeInCharsIfKnown(), getUnionField(), getUnionValue(), getVectorElt(), getVectorLength(), hasLValuePath(), Indeterminate, Int, clang::Type::isAnyComplexType(), clang::Type::isBooleanType(), isLValueOnePastTheEnd(), clang::QualType::isNull(), isNullPointer(), clang::Type::isRecordType(), clang::Type::isReferenceType(), clang::Type::isVoidType(), clang::CharUnits::isZero(), LValue, MemberPointer, None, clang::PrintingPolicy::Nullptr, clang::CharUnits::One(), Path, printPretty(), clang::Stmt::printPretty(), clang::QualType::stream(), Struct, TryPrintAsStringLiteral(), Union, Vector, and clang::CharUnits::Zero().

Profile()

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

profile this value.

There is no guarantee that values of different types will not produce the same profiled value, so the type should typically also be profiled if it's not implied by the context.

Definition at line 479 of file APValue.cpp.

References AddrLabelDiff, Array, ComplexFloat, ComplexInt, D, E, FixedPoint, Float, getAddrLabelDiffLHS(), getAddrLabelDiffRHS(), getArrayFiller(), getArrayInitializedElt(), getArrayInitializedElts(), getArraySize(), getCanonicalDecl(), getComplexFloatImag(), getComplexFloatReal(), getComplexIntImag(), getComplexIntReal(), getFixedPoint(), getFloat(), getInt(), getLValueBase(), getLValueOffset(), getLValuePath(), getMemberPointerDecl(), getMemberPointerPath(), getStructBase(), getStructField(), getStructNumBases(), getStructNumFields(), getUnionField(), getUnionValue(), getVectorElt(), getVectorLength(), hasArrayFiller(), hasLValuePath(), Indeterminate, Int, isLValueOnePastTheEnd(), isMemberPointerToDerivedMember(), isNullPointer(), LValue, MemberPointer, None, clang::APValue::LValueBase::Profile(), Profile(), clang::Stmt::Profile(), profileIntValue(), Struct, Union, and Vector.

Referenced by Profile(), clang::TemplateArgument::Profile(), clang::UnnamedGlobalConstantDecl::Profile(), and clang::TemplateArgument::structurallyEquals().

setAddrLabelDiff()

setComplexFloat()

void clang::APValue::setComplexFloat ( APFloat R, APFloat I ) inline

setComplexInt()

void clang::APValue::setComplexInt ( APSInt R, APSInt I ) inline

setFixedPoint()

void clang::APValue::setFixedPoint ( APFixedPoint FX) inline

setFloat()

void clang::APValue::setFloat ( APFloat F) inline

setInt()

void clang::APValue::setInt ( APSInt I) inline

setLValue() [1/2]

setLValue() [2/2]

setUnion()

setVector()

swap()

void APValue::swap ( APValue & RHS )

toIntegralConstant()

Try to convert this value to an integral constant.

This works if it's an integer, null pointer, or offset from a null pointer. Returns true on success.

Definition at line 953 of file APValue.cpp.

References getInt(), getLValueBase(), getLValueOffset(), clang::ASTContext::getTargetNullPointerValue(), isInt(), isLValue(), isNullPointer(), clang::ASTContext::MakeIntValue(), and clang::Result.

Referenced by clang::Sema::ActOnGCCAsmStmt().

ASTImporter

ASTNodeImporter

clang::serialization::BasicReaderBase


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