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 (clang::LangAS address_space)
 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, ptrauth types, and pointer types.

Detailed Description

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

Definition at line 77 of file TypeSystemClang.h.

Constructor & Destructor Documentation

◆ TypePayloadClang() [1/4]

lldb_private::TypePayloadClang::TypePayloadClang ( )
default

◆ TypePayloadClang() [2/4]

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

Definition at line 351 of file TypeSystemClang.cpp.

References m_payload, and SetIsCompleteObjCClass().

◆ TypePayloadClang() [3/4]

lldb_private::TypePayloadClang::TypePayloadClang ( clang::LangAS address_space)
inlineexplicit

Definition at line 92 of file TypeSystemClang.h.

References m_payload.

◆ TypePayloadClang() [4/4]

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

Definition at line 94 of file TypeSystemClang.h.

References m_payload.

Member Function Documentation

◆ GetOwningModule()

OptionalClangModuleID lldb_private::TypePayloadClang::GetOwningModule ( )
inline

Definition at line 103 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 95 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, ptrauth types, and pointer 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. For pointer types, we store the address space class of the pointee.

Definition at line 86 of file TypeSystemClang.h.

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

◆ ObjCClassBit

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

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