class CodeGenFunction::AutoVarEmission
Declaration
class CodeGenFunction::AutoVarEmission { /* full declaration omitted */ };
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3051
Member Variables
- private const clang::VarDecl* Variable
- private clang::CodeGen::Address Addr
- The address of the alloca for languages with explicit address space (e.g. OpenCL) or alloca casted to generic pointer for address space agnostic languages (e.g. C++). Invalid if the variable was emitted as a global constant.
- private llvm::Value* NRVOFlag
- private bool IsEscapingByRef
- True if the variable is a __block variable that is captured by an escaping block.
- private bool IsConstantAggregate
- True if the variable is of aggregate type and has a constant initializer.
- private llvm::Value* SizeForLifetimeMarkers
- Non-null if we should use lifetime annotations.
- private clang::CodeGen::Address AllocaAddr
- Address with original alloca instruction. Invalid if the variable was emitted as a global constant.
Method Overview
- private AutoVarEmission(clang::CodeGen::CodeGenFunction::AutoVarEmission::Invalid)
- private AutoVarEmission(const clang::VarDecl & variable)
- public clang::CodeGen::Address getAllocatedAddress() const
- public clang::CodeGen::Address getObjectAddress(clang::CodeGen::CodeGenFunction & CGF) const
- public clang::CodeGen::Address getOriginalAllocatedAddress() const
- public llvm::Value * getSizeForLifetimeMarkers() const
- public static clang::CodeGen::CodeGenFunction::AutoVarEmission invalid()
- public bool useLifetimeMarkers() const
- private bool wasEmittedAsGlobal() const
Methods
¶AutoVarEmission(clang::CodeGen::CodeGenFunction::
AutoVarEmission::Invalid)
AutoVarEmission(clang::CodeGen::CodeGenFunction::
AutoVarEmission::Invalid)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3080
Parameters
- clang::CodeGen::CodeGenFunction::AutoVarEmission:: Invalid
¶AutoVarEmission(const clang::VarDecl& variable)
AutoVarEmission(const clang::VarDecl& variable)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3084
Parameters
- const clang::VarDecl& variable
¶clang::CodeGen::Address getAllocatedAddress()
const
clang::CodeGen::Address getAllocatedAddress()
const
Description
Returns the raw, allocated address, which is not necessarily the address of the object itself. It is casted to default address space for address space agnostic languages.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3105
¶clang::CodeGen::Address getObjectAddress(
clang::CodeGen::CodeGenFunction& CGF) const
clang::CodeGen::Address getObjectAddress(
clang::CodeGen::CodeGenFunction& CGF) const
Description
Returns the address of the object within this declaration. Note that this does not chase the forwarding pointer for __block decls.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3115
Parameters
¶clang::CodeGen::Address
getOriginalAllocatedAddress() const
clang::CodeGen::Address
getOriginalAllocatedAddress() const
Description
Returns the address for the original alloca instruction.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3110
¶llvm::Value* getSizeForLifetimeMarkers() const
llvm::Value* getSizeForLifetimeMarkers() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3097
¶static clang::CodeGen::CodeGenFunction::
AutoVarEmission
invalid()
static clang::CodeGen::CodeGenFunction::
AutoVarEmission
invalid()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3092
¶bool useLifetimeMarkers() const
bool useLifetimeMarkers() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3094
¶bool wasEmittedAsGlobal() const
bool wasEmittedAsGlobal() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3089