clang 22.0.0git
clang::CodeGen::AggValueSlot Class Reference

An aggregate value slot. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGValue.h"

Public Types

enum  IsAliased_t { IsNotAliased , IsAliased }
enum  IsDestructed_t { IsNotDestructed , IsDestructed }
enum  IsZeroed_t { IsNotZeroed , IsZeroed }
enum  Overlap_t { DoesNotOverlap , MayOverlap }
enum  NeedsGCBarriers_t { DoesNotNeedGCBarriers , NeedsGCBarriers }
enum  IsSanitizerChecked_t { IsNotSanitizerChecked , IsSanitizerChecked }

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 (QualType PointeeTy, CodeGenFunction &CGF) const
llvm::Value * emitRawPointer (CodeGenFunction &CGF) const
Address getAddress () const
bool isIgnored () const
CharUnits getAlignment () const
IsAliased_t isPotentiallyAliased () const
Overlap_t mayOverlap () const
bool isSanitizerChecked () const
RValue asRValue () const
void setZeroed (bool V=true)
IsZeroed_t isZeroed () const
CharUnits getPreferredSize (ASTContext &Ctx, QualType Type) const
 Get the preferred size to use when storing a value to this slot.

Static Public Member Functions

static AggValueSlot ignored ()
 ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored.
static AggValueSlot forAddr (Address addr, Qualifiers quals, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, Overlap_t mayOverlap, IsZeroed_t isZeroed=IsNotZeroed, IsSanitizerChecked_t isChecked=IsNotSanitizerChecked)
 forAddr - Make a slot for an aggregate value.
static AggValueSlot forLValue (const LValue &LV, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, Overlap_t mayOverlap, IsZeroed_t isZeroed=IsNotZeroed, IsSanitizerChecked_t isChecked=IsNotSanitizerChecked)

Detailed Description

An aggregate value slot.

Definition at line 504 of file CGValue.h.

Member Enumeration Documentation

◆ IsAliased_t

Enumerator
IsNotAliased 
IsAliased 

Definition at line 563 of file CGValue.h.

◆ IsDestructed_t

Enumerator
IsNotDestructed 
IsDestructed 

Definition at line 564 of file CGValue.h.

◆ IsSanitizerChecked_t

Enumerator
IsNotSanitizerChecked 
IsSanitizerChecked 

Definition at line 568 of file CGValue.h.

◆ IsZeroed_t

Enumerator
IsNotZeroed 
IsZeroed 

Definition at line 565 of file CGValue.h.

◆ NeedsGCBarriers_t

Enumerator
DoesNotNeedGCBarriers 
NeedsGCBarriers 

Definition at line 567 of file CGValue.h.

◆ Overlap_t

Enumerator
DoesNotOverlap 
MayOverlap 

Definition at line 566 of file CGValue.h.

Member Function Documentation

◆ asRValue()

◆ emitRawPointer()

llvm::Value * clang::CodeGen::AggValueSlot::emitRawPointer ( CodeGenFunction & CGF) const
inline

Definition at line 640 of file CGValue.h.

◆ forAddr()

AggValueSlot clang::CodeGen::AggValueSlot::forAddr ( Address addr,
Qualifiers quals,
IsDestructed_t isDestructed,
NeedsGCBarriers_t needsGC,
IsAliased_t isAliased,
Overlap_t mayOverlap,
IsZeroed_t isZeroed = IsNotZeroed,
IsSanitizerChecked_t isChecked = IsNotSanitizerChecked )
inlinestatic

◆ forLValue()

◆ getAddress()

◆ getAlignment()

CharUnits clang::CodeGen::AggValueSlot::getAlignment ( ) const
inline

Definition at line 650 of file CGValue.h.

◆ getObjCLifetime()

Qualifiers::ObjCLifetime clang::CodeGen::AggValueSlot::getObjCLifetime ( ) const
inline

Definition at line 630 of file CGValue.h.

◆ getPointer()

llvm::Value * clang::CodeGen::AggValueSlot::getPointer ( QualType PointeeTy,
CodeGenFunction & CGF ) const

◆ getPreferredSize()

CharUnits clang::CodeGen::AggValueSlot::getPreferredSize ( ASTContext & Ctx,
QualType Type ) const
inline

Get the preferred size to use when storing a value to this slot.

This is the type size unless that might overlap another object, in which case it's the dsize.

Definition at line 682 of file CGValue.h.

References clang::ASTContext::getTypeInfoDataSizeInChars(), clang::ASTContext::getTypeSizeInChars(), mayOverlap(), clang::CodeGen::Type, and clang::TypeInfoChars::Width.

Referenced by CheckAggExprForMemSetUse().

◆ getQualifiers()

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

Definition at line 617 of file CGValue.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall().

◆ ignored()

◆ isExternallyDestructed()

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

Definition at line 610 of file CGValue.h.

◆ isIgnored()

◆ isPotentiallyAliased()

IsAliased_t clang::CodeGen::AggValueSlot::isPotentiallyAliased ( ) const
inline

Definition at line 654 of file CGValue.h.

◆ isSanitizerChecked()

bool clang::CodeGen::AggValueSlot::isSanitizerChecked ( ) const
inline

◆ isVolatile()

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

Definition at line 619 of file CGValue.h.

Referenced by asRValue(), and CheckAggExprForMemSetUse().

◆ isZeroed()

IsZeroed_t clang::CodeGen::AggValueSlot::isZeroed ( ) const
inline

◆ mayOverlap()

Overlap_t clang::CodeGen::AggValueSlot::mayOverlap ( ) const
inline

◆ requiresGCollection()

NeedsGCBarriers_t clang::CodeGen::AggValueSlot::requiresGCollection ( ) const
inline

Definition at line 634 of file CGValue.h.

◆ setExternallyDestructed()

void clang::CodeGen::AggValueSlot::setExternallyDestructed ( bool destructed = true)
inline

◆ setVolatile()

void clang::CodeGen::AggValueSlot::setVolatile ( bool flag)
inline

Definition at line 623 of file CGValue.h.

◆ setZeroed()

void clang::CodeGen::AggValueSlot::setZeroed ( bool V = true)
inline

Definition at line 674 of file CGValue.h.

References V.

Referenced by CheckAggExprForMemSetUse().


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