clang API Documentation

Public Types | Public Member Functions | Static Public Member Functions
clang::CodeGen::AggValueSlot Class Reference

An aggregate value slot. More...

#include <CGValue.h>

List of all members.

Public Types

enum  IsAliased_t { IsNotAliased, IsAliased }
enum  IsDestructed_t { IsNotDestructed, IsDestructed }
enum  IsZeroed_t { IsNotZeroed, IsZeroed }
enum  NeedsGCBarriers_t { DoesNotNeedGCBarriers, NeedsGCBarriers }

Public Member Functions

IsDestructed_t isExternallyDestructed () const
void setExternallyDestructed (bool destructed=true)
Qualifiers getQualifiers () const
bool isVolatile () const
Qualifiers::ObjCLifetime getObjCLifetime () const
NeedsGCBarriers_t requiresGCollection () const
llvm::ValuegetAddr () const
bool isIgnored () const
CharUnits getAlignment () const
IsAliased_t isPotentiallyAliased () const
RValue asRValue () const
void setZeroed (bool V=true)
IsZeroed_t isZeroed () const

Static Public Member Functions

static AggValueSlot ignored ()
static AggValueSlot forAddr (llvm::Value *addr, CharUnits align, Qualifiers quals, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, IsZeroed_t isZeroed=IsNotZeroed)
static AggValueSlot forLValue (LValue LV, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, IsZeroed_t isZeroed=IsNotZeroed)

Detailed Description

An aggregate value slot.

Definition at line 314 of file CGValue.h.


Member Enumeration Documentation

Enumerator:
IsNotAliased 
IsAliased 

Definition at line 353 of file CGValue.h.

Enumerator:
IsNotDestructed 
IsDestructed 

Definition at line 354 of file CGValue.h.

Enumerator:
IsNotZeroed 
IsZeroed 

Definition at line 355 of file CGValue.h.

Enumerator:
DoesNotNeedGCBarriers 
NeedsGCBarriers 

Definition at line 356 of file CGValue.h.


Member Function Documentation

RValue clang::CodeGen::AggValueSlot::asRValue ( ) const [inline]
static AggValueSlot clang::CodeGen::AggValueSlot::forAddr ( llvm::Value addr,
CharUnits  align,
Qualifiers  quals,
IsDestructed_t  isDestructed,
NeedsGCBarriers_t  needsGC,
IsAliased_t  isAliased,
IsZeroed_t  isZeroed = IsNotZeroed 
) [inline, static]

forAddr - Make a slot for an aggregate value.

Parameters:
quals- The qualifiers that dictate how the slot should be initialied. Only 'volatile' and the Objective-C lifetime qualifiers matter.
isDestructed- true if something else is responsible for calling destructors on this object
needsGC- true if the slot is potentially located somewhere that ObjC GC calls should be emitted for

Definition at line 375 of file CGValue.h.

References clang::CharUnits::getQuantity(), and isZeroed().

Referenced by clang::CodeGen::CodeGenFunction::CreateAggTemp(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), EmitExprForReferenceBinding(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), forLValue(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), ignored(), InitCatchParam(), and StoreAnyExprIntoOneUnit().

static AggValueSlot clang::CodeGen::AggValueSlot::forLValue ( LValue  LV,
IsDestructed_t  isDestructed,
NeedsGCBarriers_t  needsGC,
IsAliased_t  isAliased,
IsZeroed_t  isZeroed = IsNotZeroed 
) [inline, static]
llvm::Value* clang::CodeGen::AggValueSlot::getAddr ( ) const [inline]
CharUnits clang::CodeGen::AggValueSlot::getAlignment ( ) const [inline]
Qualifiers::ObjCLifetime clang::CodeGen::AggValueSlot::getObjCLifetime ( ) const [inline]

Definition at line 413 of file CGValue.h.

References clang::Qualifiers::getObjCLifetime().

Qualifiers clang::CodeGen::AggValueSlot::getQualifiers ( ) const [inline]

Definition at line 407 of file CGValue.h.

static AggValueSlot clang::CodeGen::AggValueSlot::ignored ( ) [inline, static]

ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored.

Definition at line 360 of file CGValue.h.

References DoesNotNeedGCBarriers, forAddr(), IsNotAliased, and IsNotDestructed.

Referenced by clang::CodeGen::CodeGenFunction::EmitAnyExprToTemp(), EmitExprForReferenceBinding(), clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(), and clang::CodeGen::CodeGenFunction::EmitPseudoObjectLValue().

IsDestructed_t clang::CodeGen::AggValueSlot::isExternallyDestructed ( ) const [inline]

Definition at line 400 of file CGValue.h.

bool clang::CodeGen::AggValueSlot::isIgnored ( ) const [inline]
IsAliased_t clang::CodeGen::AggValueSlot::isPotentiallyAliased ( ) const [inline]

Definition at line 433 of file CGValue.h.

bool clang::CodeGen::AggValueSlot::isVolatile ( ) const [inline]

Definition at line 409 of file CGValue.h.

References clang::Qualifiers::hasVolatile().

Referenced by asRValue(), and CheckAggExprForMemSetUse().

IsZeroed_t clang::CodeGen::AggValueSlot::isZeroed ( ) const [inline]
NeedsGCBarriers_t clang::CodeGen::AggValueSlot::requiresGCollection ( ) const [inline]

Definition at line 417 of file CGValue.h.

void clang::CodeGen::AggValueSlot::setExternallyDestructed ( bool  destructed = true) [inline]
void clang::CodeGen::AggValueSlot::setZeroed ( bool  V = true) [inline]

Definition at line 442 of file CGValue.h.

Referenced by CheckAggExprForMemSetUse().


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