LLDB mainline
lldb_private::TypePayloadClang Class Reference

The implementation of lldb::Type's m_payload field for TypeSystemClang. More...

#include <TypeSystemClang.h>

Public Member Functions

 TypePayloadClang ()=default
 TypePayloadClang (OptionalClangModuleID owning_module, bool is_complete_objc_class=false)
 TypePayloadClang (uint32_t opaque_payload)
 operator Type::Payload ()
bool IsCompleteObjCClass ()
void SetIsCompleteObjCClass (bool is_complete_objc_class)
OptionalClangModuleID GetOwningModule ()
void SetOwningModule (OptionalClangModuleID id)

Static Public Attributes

static constexpr unsigned ObjCClassBit = 1 << 31

Private Attributes

Type::Payload m_payload = 0
 The payload is used for typedefs and ptrauth types.

Detailed Description

The implementation of lldb::Type's m_payload field for TypeSystemClang.

Definition at line 71 of file TypeSystemClang.h.

Constructor & Destructor Documentation

◆ TypePayloadClang() [1/3]

lldb_private::TypePayloadClang::TypePayloadClang ( )
default

◆ TypePayloadClang() [2/3]

TypePayloadClang::TypePayloadClang ( OptionalClangModuleID owning_module,
bool is_complete_objc_class = false )
explicit

Definition at line 332 of file TypeSystemClang.cpp.

References m_payload, and SetIsCompleteObjCClass().

◆ TypePayloadClang() [3/3]

lldb_private::TypePayloadClang::TypePayloadClang ( uint32_t opaque_payload)
inlineexplicit

Definition at line 85 of file TypeSystemClang.h.

References m_payload.

Member Function Documentation

◆ GetOwningModule()

OptionalClangModuleID lldb_private::TypePayloadClang::GetOwningModule ( )
inline

Definition at line 94 of file TypeSystemClang.h.

References m_payload, and ObjCClassBit.

◆ IsCompleteObjCClass()

bool lldb_private::TypePayloadClang::IsCompleteObjCClass ( )
inline

◆ operator Type::Payload()

lldb_private::TypePayloadClang::operator Type::Payload ( )
inline

Definition at line 86 of file TypeSystemClang.h.

References m_payload.

◆ SetIsCompleteObjCClass()

void lldb_private::TypePayloadClang::SetIsCompleteObjCClass ( bool is_complete_objc_class)
inline

◆ SetOwningModule()

void TypePayloadClang::SetOwningModule ( OptionalClangModuleID id)

Member Data Documentation

◆ m_payload

Type::Payload lldb_private::TypePayloadClang::m_payload = 0
private

The payload is used for typedefs and ptrauth types.

For typedefs, the Layout is as follows:

/// bit 0..30 ... Owning Module ID.
/// bit 31 ...... IsCompleteObjCClass.
/// 

For ptrauth types, we store the PointerAuthQualifier as an opaque value.

Definition at line 79 of file TypeSystemClang.h.

Referenced by GetOwningModule(), IsCompleteObjCClass(), operator Type::Payload(), SetIsCompleteObjCClass(), SetOwningModule(), TypePayloadClang(), and TypePayloadClang().

◆ ObjCClassBit

unsigned lldb_private::TypePayloadClang::ObjCClassBit = 1 << 31
staticconstexpr

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