LLDB mainline
Public Member Functions | Static Public Attributes | Private Attributes | List of all members
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 69 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 329 of file TypeSystemClang.cpp.

References SetIsCompleteObjCClass().

◆ TypePayloadClang() [3/3]

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

Definition at line 83 of file TypeSystemClang.h.

Member Function Documentation

◆ GetOwningModule()

OptionalClangModuleID lldb_private::TypePayloadClang::GetOwningModule ( )
inline

Definition at line 92 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 84 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 77 of file TypeSystemClang.h.

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

◆ ObjCClassBit

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

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