clang 19.0.0git
Public Member Functions | Public Attributes | List of all members
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/Interp/Descriptor.h"

Public Member Functions

 InlineDescriptor (const Descriptor *D)
 

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 IsActive: 1
 Flag indicating if the field is the active member of a union.
 
unsigned IsFieldMutable: 1
 Flag indicating if the field is mutable (if in a record).
 
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 56 of file Descriptor.h.

Constructor & Destructor Documentation

◆ InlineDescriptor()

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

Definition at line 82 of file Descriptor.h.

Member Data Documentation

◆ Desc

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

◆ IsActive

unsigned clang::interp::InlineDescriptor::IsActive

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

Definition at line 75 of file Descriptor.h.

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

◆ IsBase

unsigned clang::interp::InlineDescriptor::IsBase

Flag indicating if the field is an embedded base class.

Definition at line 72 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), and clang::interp::Pointer::isBaseClass().

◆ IsConst

unsigned clang::interp::InlineDescriptor::IsConst

Flag indicating if the storage is constant or not.

Relevant for primitive fields.

Definition at line 63 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), and clang::interp::Pointer::isConst().

◆ IsFieldMutable

unsigned clang::interp::InlineDescriptor::IsFieldMutable

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

Definition at line 78 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), and clang::interp::Pointer::isMutable().

◆ 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 69 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), clang::interp::Pointer::initialize(), clang::interp::Pointer::isInitialized(), and clang::interp::InterpFrame::setLocal().

◆ Offset

unsigned clang::interp::InlineDescriptor::Offset

Offset inside the structure/array.

Definition at line 58 of file Descriptor.h.

Referenced by clang::interp::EvalEmitter::createLocal(), ctorRecord(), clang::interp::Pointer::expand(), and clang::interp::Pointer::getBase().


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