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
void setVolatile (bool flag)
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 (const LValue &LV, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, IsZeroed_t isZeroed=IsNotZeroed)

Detailed Description

An aggregate value slot.

Definition at line 361 of file CGValue.h.


Member Enumeration Documentation

Enumerator:
IsNotAliased 
IsAliased 

Definition at line 400 of file CGValue.h.

Enumerator:
IsNotDestructed 
IsDestructed 

Definition at line 401 of file CGValue.h.

Enumerator:
IsNotZeroed 
IsZeroed 

Definition at line 402 of file CGValue.h.

Enumerator:
DoesNotNeedGCBarriers 
NeedsGCBarriers 

Definition at line 403 of file CGValue.h.


Member Function Documentation

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 422 of file CGValue.h.

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

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

static AggValueSlot clang::CodeGen::AggValueSlot::forLValue ( const LValue LV,
IsDestructed_t  isDestructed,
NeedsGCBarriers_t  needsGC,
IsAliased_t  isAliased,
IsZeroed_t  isZeroed = IsNotZeroed 
) [inline, static]

Definition at line 465 of file CGValue.h.

References clang::Qualifiers::getObjCLifetime().

Definition at line 455 of file CGValue.h.

Definition at line 448 of file CGValue.h.

Definition at line 485 of file CGValue.h.

Definition at line 469 of file CGValue.h.

Definition at line 461 of file CGValue.h.

References clang::Qualifiers::setVolatile().

Definition at line 494 of file CGValue.h.

Referenced by CheckAggExprForMemSetUse().


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