clang 22.0.0git
clang::interp::InlineDescriptor Struct Reference

Inline descriptor embedded in structures and arrays. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/AST/ByteCode/Descriptor.h"

Public Member Functions

 InlineDescriptor (const Descriptor *D)
void dump () const
void dump (llvm::raw_ostream &OS) const

Public Attributes

unsigned Offset
 Offset inside the structure/array.
unsigned IsConst: 1
 Flag indicating if the storage is constant or not.
unsigned IsInitialized: 1
 For primitive fields, it indicates if the field was initialized.
unsigned IsBase: 1
 Flag indicating if the field is an embedded base class.
unsigned IsVirtualBase: 1
 Flag inidcating if the field is a virtual base class.
unsigned IsActive: 1
 Flag indicating if the field is the active member of a union.
unsigned InUnion: 1
 Flag indicating if this field is in a union (even if nested).
unsigned IsFieldMutable: 1
 Flag indicating if the field is mutable (if in a record).
unsigned IsConstInMutable: 1
 Flag indicating if this field is a const field nested in a mutable parent field.
unsigned IsArrayElement: 1
 Flag indicating if the field is an element of a composite array.
unsigned IsVolatile: 1
Lifetime LifeState
const DescriptorDesc

Detailed Description

Inline descriptor embedded in structures and arrays.

Such descriptors precede all composite array elements and structure fields. If the base of a pointer is not zero, the base points to the end of this structure. The offset field is used to traverse the pointer chain up to the root structure which allocated the object.

Definition at line 67 of file Descriptor.h.

Constructor & Destructor Documentation

◆ InlineDescriptor()

clang::interp::InlineDescriptor::InlineDescriptor ( const Descriptor * D)
inline

Member Function Documentation

◆ dump() [1/2]

void clang::interp::InlineDescriptor::dump ( ) const
inline

Definition at line 116 of file Descriptor.h.

References dump().

Referenced by dump().

◆ dump() [2/2]

LLVM_DUMP_METHOD void InlineDescriptor::dump ( llvm::raw_ostream & OS) const

Member Data Documentation

◆ Desc

const Descriptor* clang::interp::InlineDescriptor::Desc

◆ InUnion

unsigned clang::interp::InlineDescriptor::InUnion

Flag indicating if this field is in a union (even if nested).

Definition at line 92 of file Descriptor.h.

Referenced by dump().

◆ IsActive

unsigned clang::interp::InlineDescriptor::IsActive

Flag indicating if the field is the active member of a union.

Definition at line 89 of file Descriptor.h.

Referenced by clang::interp::Pointer::activate(), clang::interp::EvalEmitter::createLocal(), dump(), and InlineDescriptor().

◆ IsArrayElement

unsigned clang::interp::InlineDescriptor::IsArrayElement

Flag indicating if the field is an element of a composite array.

Definition at line 102 of file Descriptor.h.

Referenced by dump(), and InlineDescriptor().

◆ IsBase

unsigned clang::interp::InlineDescriptor::IsBase

Flag indicating if the field is an embedded base class.

Definition at line 83 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), dump(), and InlineDescriptor().

◆ IsConst

unsigned clang::interp::InlineDescriptor::IsConst

Flag indicating if the storage is constant or not.

Relevant for primitive fields.

Definition at line 74 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), dump(), and InlineDescriptor().

◆ IsConstInMutable

unsigned clang::interp::InlineDescriptor::IsConstInMutable

Flag indicating if this field is a const field nested in a mutable parent field.

Definition at line 99 of file Descriptor.h.

Referenced by dump().

◆ IsFieldMutable

unsigned clang::interp::InlineDescriptor::IsFieldMutable

Flag indicating if the field is mutable (if in a record).

Definition at line 95 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), dump(), and InlineDescriptor().

◆ IsInitialized

unsigned clang::interp::InlineDescriptor::IsInitialized

For primitive fields, it indicates if the field was initialized.

Primitive fields in static storage are always initialized. Arrays are always initialized, even though their elements might not be. Base classes are initialized after the constructor is invoked.

Definition at line 80 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), dump(), and InlineDescriptor().

◆ IsVirtualBase

unsigned clang::interp::InlineDescriptor::IsVirtualBase

Flag inidcating if the field is a virtual base class.

Definition at line 86 of file Descriptor.h.

◆ IsVolatile

unsigned clang::interp::InlineDescriptor::IsVolatile

Definition at line 104 of file Descriptor.h.

Referenced by InlineDescriptor().

◆ LifeState

Lifetime clang::interp::InlineDescriptor::LifeState

Definition at line 106 of file Descriptor.h.

Referenced by InlineDescriptor().

◆ Offset

unsigned clang::interp::InlineDescriptor::Offset

The documentation for this struct was generated from the following files: