clang
3.9.0
|
An aggregate value slot. More...
#include <CGValue.h>
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::Value * | getPointer () const |
Address | getAddress () 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 () |
ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored. More... | |
static AggValueSlot | forAddr (Address addr, Qualifiers quals, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, IsZeroed_t isZeroed=IsNotZeroed) |
forAddr - Make a slot for an aggregate value. More... | |
static AggValueSlot | forLValue (const LValue &LV, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, IsZeroed_t isZeroed=IsNotZeroed) |
|
inline |
Definition at line 578 of file CGValue.h.
References getAddress(), clang::CodeGen::RValue::getAggregate(), clang::CodeGen::RValue::getIgnored(), isIgnored(), and isVolatile().
Referenced by clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitCallArg(), and emitPseudoObjectExpr().
|
inlinestatic |
forAddr - Make a slot for an aggregate value.
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 502 of file CGValue.h.
References clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), clang::CharUnits::getQuantity(), clang::CodeGen::Address::isValid(), 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().
|
inlinestatic |
Definition at line 524 of file CGValue.h.
References forAddr(), clang::CodeGen::LValue::getAddress(), clang::CodeGen::LValue::getQuals(), and isZeroed().
Referenced by clang::CodeGen::CodeGenFunction::EmitAggExprToLValue(), EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), and clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod().
|
inline |
Definition at line 562 of file CGValue.h.
References getAlignment().
Referenced by asRValue(), CheckAggExprForMemSetUse(), clang::CodeGen::CodeGenFunction::EmitAggExpr(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCXXBindTemporaryLValue(), clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr(), clang::CodeGen::CodeGenFunction::EmitLambdaExpr(), clang::CodeGen::CodeGenFunction::EmitLambdaLValue(), and emitPseudoObjectExpr().
|
inline |
Definition at line 570 of file CGValue.h.
References clang::CharUnits::fromQuantity().
Referenced by getAddress().
|
inline |
Definition at line 550 of file CGValue.h.
References clang::Qualifiers::getObjCLifetime().
|
inline |
|
inline |
|
inlinestatic |
ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored.
Definition at line 487 of file CGValue.h.
References DoesNotNeedGCBarriers, forAddr(), clang::CodeGen::Address::invalid(), IsNotAliased, and IsNotDestructed.
Referenced by clang::CodeGen::CodeGenFunction::EmitAnyExprToTemp(), clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(), and emitSimdlenSafelenClause().
|
inline |
|
inline |
Definition at line 566 of file CGValue.h.
Referenced by asRValue(), clang::CodeGen::CodeGenFunction::EmitAggExpr(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), and clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr().
|
inline |
|
inline |
Definition at line 542 of file CGValue.h.
References clang::Qualifiers::hasVolatile().
Referenced by asRValue(), and CheckAggExprForMemSetUse().
|
inline |
Definition at line 587 of file CGValue.h.
Referenced by CheckAggExprForMemSetUse(), clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr(), forAddr(), and forLValue().
|
inline |
Definition at line 536 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArg(), and clang::CodeGen::CodeGenFunction::EmitCXXBindTemporaryLValue().
|
inline |
Definition at line 546 of file CGValue.h.
References clang::Qualifiers::setVolatile().
Definition at line 586 of file CGValue.h.
Referenced by CheckAggExprForMemSetUse().