LLDB mainline
lldb_private::TypeSystemClike Class Reference

A TypeSystem for C-like languages such as C, C++ and Objective-C. More...

#include <TypeSystemClike.h>

Inheritance diagram for lldb_private::TypeSystemClike:
[legend]

Public Member Functions

 TypeSystemClike ()
 ~TypeSystemClike () override
llvm::StringRef GetPluginName () override
bool isA (const void *ClassID) const override
ConstString DeclGetName (void *opaque_decl) override
CompilerType GetTypeForDecl (void *opaque_decl) override
ConstString DeclContextGetName (void *opaque_decl_ctx) override
ConstString DeclContextGetScopeQualifiedName (void *opaque_decl_ctx) override
bool DeclContextIsClassMethod (void *opaque_decl_ctx) override
bool DeclContextIsContainedInLookup (void *opaque_decl_ctx, void *other_opaque_decl_ctx) override
lldb::LanguageType DeclContextGetLanguage (void *opaque_decl_ctx) override
bool Verify (lldb::opaque_compiler_type_t type) override
 Verify the integrity of the type to catch CompilerTypes that mix and match invalid TypeSystem/Opaque type pairs.
bool IsArrayType (lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size, bool *is_incomplete) override
bool IsAggregateType (lldb::opaque_compiler_type_t type) override
bool IsCharType (lldb::opaque_compiler_type_t type) override
bool IsCompleteType (lldb::opaque_compiler_type_t type) override
bool IsDefined (lldb::opaque_compiler_type_t type) override
bool IsFloatingPointType (lldb::opaque_compiler_type_t type) override
bool IsFunctionType (lldb::opaque_compiler_type_t type) override
size_t GetNumberOfFunctionArguments (lldb::opaque_compiler_type_t type) override
CompilerType GetFunctionArgumentAtIndex (lldb::opaque_compiler_type_t type, const size_t index) override
bool IsFunctionPointerType (lldb::opaque_compiler_type_t type) override
bool IsMemberFunctionPointerType (lldb::opaque_compiler_type_t type) override
bool IsMemberDataPointerType (lldb::opaque_compiler_type_t type) override
bool IsBlockPointerType (lldb::opaque_compiler_type_t type, CompilerType *function_pointer_type_ptr) override
bool IsIntegerType (lldb::opaque_compiler_type_t type, bool &is_signed) override
bool IsScopedEnumerationType (lldb::opaque_compiler_type_t type) override
bool IsPossibleDynamicType (lldb::opaque_compiler_type_t type, CompilerType *target_type, bool check_cplusplus, bool check_objc) override
bool IsPointerType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type) override
bool IsScalarType (lldb::opaque_compiler_type_t type) override
bool IsVoidType (lldb::opaque_compiler_type_t type) override
bool CanPassInRegisters (const CompilerType &type) override
bool SupportsLanguage (lldb::LanguageType language) override
bool GetCompleteType (lldb::opaque_compiler_type_t type) override
uint32_t GetPointerByteSize () override
CompilerType GetPointerDiffType (bool is_signed) override
CompilerType GetSizeType () override
unsigned GetPtrAuthKey (lldb::opaque_compiler_type_t type) override
unsigned GetPtrAuthDiscriminator (lldb::opaque_compiler_type_t type) override
bool GetPtrAuthAddressDiversity (lldb::opaque_compiler_type_t type) override
ConstString GetTypeName (lldb::opaque_compiler_type_t type, bool BaseOnly) override
ConstString GetDisplayTypeName (lldb::opaque_compiler_type_t type) override
uint32_t GetTypeInfo (lldb::opaque_compiler_type_t type, CompilerType *pointee_or_element_compiler_type) override
lldb::LanguageType GetMinimumLanguage (lldb::opaque_compiler_type_t type) override
lldb::TypeClass GetTypeClass (lldb::opaque_compiler_type_t type) override
CompilerType GetArrayElementType (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override
CompilerType GetCanonicalType (lldb::opaque_compiler_type_t type) override
CompilerType GetEnumerationIntegerType (lldb::opaque_compiler_type_t type) override
int GetFunctionArgumentCount (lldb::opaque_compiler_type_t type) override
CompilerType GetFunctionArgumentTypeAtIndex (lldb::opaque_compiler_type_t type, size_t idx) override
CompilerType GetFunctionReturnType (lldb::opaque_compiler_type_t type) override
size_t GetNumMemberFunctions (lldb::opaque_compiler_type_t type) override
TypeMemberFunctionImpl GetMemberFunctionAtIndex (lldb::opaque_compiler_type_t type, size_t idx) override
CompilerType GetPointeeType (lldb::opaque_compiler_type_t type) override
CompilerType GetPointerType (lldb::opaque_compiler_type_t type) override
const llvm::fltSemantics & GetFloatTypeSemantics (size_t byte_size, lldb::Format format) override
llvm::Expected< uint64_t > GetBitSize (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override
lldb::Encoding GetEncoding (lldb::opaque_compiler_type_t type) override
lldb::Format GetFormat (lldb::opaque_compiler_type_t type) override
llvm::Expected< uint32_t > GetNumChildren (lldb::opaque_compiler_type_t type, bool omit_empty_base_classes, const ExecutionContext *exe_ctx) override
lldb::BasicType GetBasicTypeEnumeration (lldb::opaque_compiler_type_t type) override
uint32_t GetNumFields (lldb::opaque_compiler_type_t type) override
CompilerType GetFieldAtIndex (lldb::opaque_compiler_type_t type, size_t idx, std::string &name, uint64_t *bit_offset_ptr, uint32_t *bitfield_bit_size_ptr, bool *is_bitfield_ptr) override
uint32_t GetNumDirectBaseClasses (lldb::opaque_compiler_type_t type) override
uint32_t GetNumVirtualBaseClasses (lldb::opaque_compiler_type_t type) override
CompilerType GetDirectBaseClassAtIndex (lldb::opaque_compiler_type_t type, size_t idx, uint32_t *bit_offset_ptr) override
CompilerType GetVirtualBaseClassAtIndex (lldb::opaque_compiler_type_t type, size_t idx, uint32_t *bit_offset_ptr) override
llvm::Expected< CompilerType > GetDereferencedType (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, std::string &deref_name, uint32_t &deref_byte_size, int32_t &deref_byte_offset, ValueObject *valobj, uint64_t &language_flags) override
llvm::Expected< CompilerType > GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, size_t idx, bool transparent_pointers, bool omit_empty_base_classes, bool ignore_array_bounds, std::string &child_name, uint32_t &child_byte_size, int32_t &child_byte_offset, uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset, bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj, uint64_t &language_flags) override
llvm::Expected< uint32_t > GetIndexOfChildWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name, bool omit_empty_base_classes) override
size_t GetIndexOfChildMemberWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name, bool omit_empty_base_classes, std::vector< uint32_t > &child_indexes) override
bool DumpTypeValue (lldb::opaque_compiler_type_t type, Stream &s, lldb::Format format, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, ExecutionContextScope *exe_scope) override
void DumpTypeDescription (lldb::opaque_compiler_type_t type, lldb::DescriptionLevel level=lldb::eDescriptionLevelFull) override
 Dump the type to stdout.
void DumpTypeDescription (lldb::opaque_compiler_type_t type, Stream &s, lldb::DescriptionLevel level=lldb::eDescriptionLevelFull) override
 Print a description of the type to a stream.
void Dump (llvm::raw_ostream &output, llvm::StringRef filter, bool show_color) override
 Dump a textual representation of the internal TypeSystem state to the given stream.
bool IsRuntimeGeneratedType (lldb::opaque_compiler_type_t type) override
 This is used by swift.
bool IsPointerOrReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type) override
unsigned GetTypeQualifiers (lldb::opaque_compiler_type_t type) override
std::optional< size_t > GetTypeBitAlign (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override
CompilerType GetBasicTypeFromAST (lldb::BasicType basic_type) override
CompilerType GetBuiltinTypeForEncodingAndBitSize (lldb::Encoding encoding, size_t bit_size) override
bool IsBeingDefined (lldb::opaque_compiler_type_t type) override
bool IsConst (lldb::opaque_compiler_type_t type) override
uint32_t IsHomogeneousAggregate (lldb::opaque_compiler_type_t type, CompilerType *base_type_ptr) override
bool IsPolymorphicClass (lldb::opaque_compiler_type_t type) override
bool IsTypedefType (lldb::opaque_compiler_type_t type) override
CompilerType GetTypedefedType (lldb::opaque_compiler_type_t type) override
bool IsVectorType (lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size) override
CompilerType GetFullyUnqualifiedType (lldb::opaque_compiler_type_t type) override
CompilerType GetNonReferenceType (lldb::opaque_compiler_type_t type) override
bool IsReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type, bool *is_rvalue) override
Public Member Functions inherited from lldb_private::TypeSystem
 TypeSystem ()
 ~TypeSystem () override
virtual void Finalize ()
 Free up any resources associated with this TypeSystem.
virtual plugin::dwarf::DWARFASTParser * GetDWARFParser ()
virtual PDBASTParser * GetPDBParser ()
virtual npdb::PdbAstBuilder * GetNativePDBParser ()
virtual ConstString DeclGetMangledName (void *opaque_decl)
virtual CompilerDeclContext DeclGetDeclContext (void *opaque_decl)
virtual CompilerType DeclGetFunctionReturnType (void *opaque_decl)
virtual size_t DeclGetFunctionNumArguments (void *opaque_decl)
virtual CompilerType DeclGetFunctionArgumentType (void *opaque_decl, size_t arg_idx)
virtual std::vector< lldb_private::CompilerContext > DeclGetCompilerContext (void *opaque_decl)
virtual Scalar DeclGetConstantValue (void *opaque_decl)
virtual std::vector< CompilerDecl > DeclContextFindDeclByName (void *opaque_decl_ctx, ConstString name, const bool ignore_imported_decls)
virtual CompilerDeclContext GetCompilerDeclContextForType (const CompilerType &type)
 Returns the direct parent context of specified type.
virtual std::vector< lldb_private::CompilerContext > DeclContextGetCompilerContext (void *opaque_decl_ctx)
virtual bool IsAnonymousType (lldb::opaque_compiler_type_t type)
virtual bool IsEnumerationType (lldb::opaque_compiler_type_t type, bool &is_signed)
virtual bool HasPointerAuthQualifier (lldb::opaque_compiler_type_t type)
virtual bool IsForcefullyCompleted (lldb::opaque_compiler_type_t type)
virtual ConstString GetMangledTypeName (lldb::opaque_compiler_type_t type)
 Defaults to GetTypeName(type).
virtual CompilerType GetArrayType (lldb::opaque_compiler_type_t type, uint64_t size)
virtual CompilerType GetLValueReferenceType (lldb::opaque_compiler_type_t type)
virtual CompilerType GetRValueReferenceType (lldb::opaque_compiler_type_t type)
virtual CompilerType GetAtomicType (lldb::opaque_compiler_type_t type)
virtual CompilerType AddConstModifier (lldb::opaque_compiler_type_t type)
virtual CompilerType AddVolatileModifier (lldb::opaque_compiler_type_t type)
virtual CompilerType AddRestrictModifier (lldb::opaque_compiler_type_t type)
virtual CompilerType AddPtrAuthModifier (lldb::opaque_compiler_type_t type, uint32_t payload)
virtual CompilerType CreateTypedef (lldb::opaque_compiler_type_t type, const char *name, const CompilerDeclContext &decl_ctx, uint32_t opaque_payload)
virtual CompilerType GetBuiltinTypeByName (ConstString name)
virtual void ForEachEnumerator (lldb::opaque_compiler_type_t type, std::function< bool(const CompilerType &integer_type, ConstString name, const llvm::APSInt &value)> const &callback)
virtual CompilerDecl GetStaticFieldWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name)
virtual CompilerType GetDirectNestedTypeWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name)
virtual bool IsTemplateType (lldb::opaque_compiler_type_t type)
virtual size_t GetNumTemplateArguments (lldb::opaque_compiler_type_t type, bool expand_pack)
virtual lldb::TemplateArgumentKind GetTemplateArgumentKind (lldb::opaque_compiler_type_t type, size_t idx, bool expand_pack)
virtual CompilerType GetTypeTemplateArgument (lldb::opaque_compiler_type_t type, size_t idx, bool expand_pack)
virtual std::optional< CompilerType::IntegralTemplateArgument > GetIntegralTemplateArgument (lldb::opaque_compiler_type_t type, size_t idx, bool expand_pack)
virtual bool IsPromotableIntegerType (lldb::opaque_compiler_type_t type)
virtual CompilerType GetPromotedIntegerType (lldb::opaque_compiler_type_t type)
virtual LLVM_DUMP_METHOD void dump (lldb::opaque_compiler_type_t type) const =0
 Convenience LLVM-style dump method for use in the debugger only.
virtual CompilerType CreateGenericFunctionPrototype ()
virtual bool ShouldTreatScalarValueAsAddress (lldb::opaque_compiler_type_t type)
virtual UserExpression * GetUserExpression (llvm::StringRef expr, llvm::StringRef prefix, SourceLanguage language, Expression::ResultType desired_type, const EvaluateExpressionOptions &options, ValueObject *ctx_obj)
virtual FunctionCaller * GetFunctionCaller (const CompilerType &return_type, const Address &function_address, const ValueList &arg_value_list, const char *name)
virtual std::unique_ptr< UtilityFunction > CreateUtilityFunction (std::string text, std::string name)
virtual PersistentExpressionState * GetPersistentExpressionState ()
virtual CompilerType GetTypeForFormatters (void *type)
virtual LazyBool ShouldPrintAsOneLiner (void *type, ValueObject *valobj)
virtual bool IsMeaninglessWithoutDynamicResolution (void *type)
virtual std::optional< llvm::json::Value > ReportStatistics ()
SymbolFile * GetSymbolFile () const
void SetSymbolFile (SymbolFile *sym_file)
 Bind this TypeSystem to its owning SymbolFile.
bool GetHasForcefullyCompletedTypes () const
Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
virtual ~PluginInterface ()=default
 PluginInterface (const PluginInterface &)=delete
PluginInterface & operator= (const PluginInterface &)=delete

Static Public Member Functions

static void Initialize ()
static void Terminate ()
static llvm::StringRef GetPluginNameStatic ()
static lldb::TypeSystemSP CreateInstance (lldb::LanguageType language, Module *module, Target *target)
static LanguageSet GetSupportedLanguagesForTypes ()
static LanguageSet GetSupportedLanguagesForExpressions ()
static bool classof (const TypeSystem *ts)
Static Public Member Functions inherited from lldb_private::TypeSystem
static lldb::TypeSystemSP CreateInstance (lldb::LanguageType language, Module *module)
static lldb::TypeSystemSP CreateInstance (lldb::LanguageType language, Target *target)
static bool SupportsLanguageStatic (lldb::LanguageType language)

Static Private Attributes

static char ID

Additional Inherited Members

Protected Attributes inherited from lldb_private::TypeSystem
bool m_has_forcefully_completed_types = false
 Used for reporting statistics.

Detailed Description

A TypeSystem for C-like languages such as C, C++ and Objective-C.

Definition at line 18 of file TypeSystemClike.h.

Constructor & Destructor Documentation

◆ TypeSystemClike()

TypeSystemClike::TypeSystemClike ( )
default

◆ ~TypeSystemClike()

TypeSystemClike::~TypeSystemClike ( )
overridedefault

Member Function Documentation

◆ CanPassInRegisters()

bool TypeSystemClike::CanPassInRegisters ( const CompilerType & type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 178 of file TypeSystemClike.cpp.

◆ classof()

bool lldb_private::TypeSystemClike::classof ( const TypeSystem * ts)
inlinestatic

◆ CreateInstance()

lldb::TypeSystemSP TypeSystemClike::CreateInstance ( lldb::LanguageType language,
Module * module,
Target * target )
static

Definition at line 27 of file TypeSystemClike.cpp.

Referenced by Initialize(), and Terminate().

◆ DeclContextGetLanguage()

lldb::LanguageType TypeSystemClike::DeclContextGetLanguage ( void * opaque_decl_ctx)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 79 of file TypeSystemClike.cpp.

References lldb::eLanguageTypeUnknown.

◆ DeclContextGetName()

ConstString TypeSystemClike::DeclContextGetName ( void * opaque_decl_ctx)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 60 of file TypeSystemClike.cpp.

◆ DeclContextGetScopeQualifiedName()

ConstString TypeSystemClike::DeclContextGetScopeQualifiedName ( void * opaque_decl_ctx)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 65 of file TypeSystemClike.cpp.

◆ DeclContextIsClassMethod()

bool TypeSystemClike::DeclContextIsClassMethod ( void * opaque_decl_ctx)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 69 of file TypeSystemClike.cpp.

◆ DeclContextIsContainedInLookup()

bool TypeSystemClike::DeclContextIsContainedInLookup ( void * opaque_decl_ctx,
void * other_opaque_decl_ctx )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 73 of file TypeSystemClike.cpp.

◆ DeclGetName()

ConstString TypeSystemClike::DeclGetName ( void * opaque_decl)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 52 of file TypeSystemClike.cpp.

◆ Dump()

void TypeSystemClike::Dump ( llvm::raw_ostream & output,
llvm::StringRef filter,
bool show_color )
overridevirtual

Dump a textual representation of the internal TypeSystem state to the given stream.

This should not modify the state of the TypeSystem if possible.

Parameters
[out]outputStream to dup the AST into.
[in]filterIf empty, dump whole AST. If non-empty, will only dump decls whose names contain filter.
[in]show_colorIf true, prints the AST color-highlighted.

Implements lldb_private::TypeSystem.

Definition at line 399 of file TypeSystemClike.cpp.

◆ DumpTypeDescription() [1/2]

void TypeSystemClike::DumpTypeDescription ( lldb::opaque_compiler_type_t type,
lldb::DescriptionLevel level = lldb::eDescriptionLevelFull )
overridevirtual

Dump the type to stdout.

Implements lldb_private::TypeSystem.

Definition at line 392 of file TypeSystemClike.cpp.

◆ DumpTypeDescription() [2/2]

void TypeSystemClike::DumpTypeDescription ( lldb::opaque_compiler_type_t type,
Stream & s,
lldb::DescriptionLevel level = lldb::eDescriptionLevelFull )
overridevirtual

Print a description of the type to a stream.

The exact implementation varies, but the expectation is that eDescriptionLevelFull returns a source-like representation of the type, whereas eDescriptionLevelVerbose does a dump of the underlying AST if applicable.

Implements lldb_private::TypeSystem.

Definition at line 395 of file TypeSystemClike.cpp.

◆ DumpTypeValue()

bool TypeSystemClike::DumpTypeValue ( lldb::opaque_compiler_type_t type,
Stream & s,
lldb::Format format,
const DataExtractor & data,
lldb::offset_t data_offset,
size_t data_byte_size,
uint32_t bitfield_bit_size,
uint32_t bitfield_bit_offset,
ExecutionContextScope * exe_scope )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 384 of file TypeSystemClike.cpp.

◆ GetArrayElementType()

CompilerType TypeSystemClike::GetArrayElementType ( lldb::opaque_compiler_type_t type,
ExecutionContextScope * exe_scope )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 239 of file TypeSystemClike.cpp.

◆ GetBasicTypeEnumeration()

lldb::BasicType TypeSystemClike::GetBasicTypeEnumeration ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 317 of file TypeSystemClike.cpp.

References lldb::eBasicTypeInvalid.

◆ GetBasicTypeFromAST()

CompilerType TypeSystemClike::GetBasicTypeFromAST ( lldb::BasicType basic_type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 422 of file TypeSystemClike.cpp.

◆ GetBitSize()

llvm::Expected< uint64_t > TypeSystemClike::GetBitSize ( lldb::opaque_compiler_type_t type,
ExecutionContextScope * exe_scope )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 296 of file TypeSystemClike.cpp.

◆ GetBuiltinTypeForEncodingAndBitSize()

CompilerType TypeSystemClike::GetBuiltinTypeForEncodingAndBitSize ( lldb::Encoding encoding,
size_t bit_size )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 427 of file TypeSystemClike.cpp.

◆ GetCanonicalType()

CompilerType TypeSystemClike::GetCanonicalType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 245 of file TypeSystemClike.cpp.

◆ GetChildCompilerTypeAtIndex()

llvm::Expected< CompilerType > TypeSystemClike::GetChildCompilerTypeAtIndex ( lldb::opaque_compiler_type_t type,
ExecutionContext * exe_ctx,
size_t idx,
bool transparent_pointers,
bool omit_empty_base_classes,
bool ignore_array_bounds,
std::string & child_name,
uint32_t & child_byte_size,
int32_t & child_byte_offset,
uint32_t & child_bitfield_bit_size,
uint32_t & child_bitfield_bit_offset,
bool & child_is_base_class,
bool & child_is_deref_of_parent,
ValueObject * valobj,
uint64_t & language_flags )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 360 of file TypeSystemClike.cpp.

◆ GetCompleteType()

bool TypeSystemClike::GetCompleteType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 186 of file TypeSystemClike.cpp.

◆ GetDereferencedType()

llvm::Expected< CompilerType > TypeSystemClike::GetDereferencedType ( lldb::opaque_compiler_type_t type,
ExecutionContext * exe_ctx,
std::string & deref_name,
uint32_t & deref_byte_size,
int32_t & deref_byte_offset,
ValueObject * valobj,
uint64_t & language_flags )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 353 of file TypeSystemClike.cpp.

◆ GetDirectBaseClassAtIndex()

CompilerType TypeSystemClike::GetDirectBaseClassAtIndex ( lldb::opaque_compiler_type_t type,
size_t idx,
uint32_t * bit_offset_ptr )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 343 of file TypeSystemClike.cpp.

◆ GetDisplayTypeName()

ConstString TypeSystemClike::GetDisplayTypeName ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 218 of file TypeSystemClike.cpp.

◆ GetEncoding()

lldb::Encoding TypeSystemClike::GetEncoding ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 301 of file TypeSystemClike.cpp.

References lldb::eEncodingInvalid.

◆ GetEnumerationIntegerType()

CompilerType TypeSystemClike::GetEnumerationIntegerType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 250 of file TypeSystemClike.cpp.

◆ GetFieldAtIndex()

CompilerType TypeSystemClike::GetFieldAtIndex ( lldb::opaque_compiler_type_t type,
size_t idx,
std::string & name,
uint64_t * bit_offset_ptr,
uint32_t * bitfield_bit_size_ptr,
bool * is_bitfield_ptr )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 325 of file TypeSystemClike.cpp.

◆ GetFloatTypeSemantics()

const llvm::fltSemantics & TypeSystemClike::GetFloatTypeSemantics ( size_t byte_size,
lldb::Format format )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 291 of file TypeSystemClike.cpp.

◆ GetFormat()

lldb::Format TypeSystemClike::GetFormat ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 305 of file TypeSystemClike.cpp.

References lldb::eFormatDefault.

◆ GetFullyUnqualifiedType()

CompilerType TypeSystemClike::GetFullyUnqualifiedType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 465 of file TypeSystemClike.cpp.

◆ GetFunctionArgumentAtIndex()

CompilerType TypeSystemClike::GetFunctionArgumentAtIndex ( lldb::opaque_compiler_type_t type,
const size_t index )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 123 of file TypeSystemClike.cpp.

◆ GetFunctionArgumentCount()

int TypeSystemClike::GetFunctionArgumentCount ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 254 of file TypeSystemClike.cpp.

◆ GetFunctionArgumentTypeAtIndex()

CompilerType TypeSystemClike::GetFunctionArgumentTypeAtIndex ( lldb::opaque_compiler_type_t type,
size_t idx )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 259 of file TypeSystemClike.cpp.

◆ GetFunctionReturnType()

CompilerType TypeSystemClike::GetFunctionReturnType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 265 of file TypeSystemClike.cpp.

◆ GetIndexOfChildMemberWithName()

size_t TypeSystemClike::GetIndexOfChildMemberWithName ( lldb::opaque_compiler_type_t type,
llvm::StringRef name,
bool omit_empty_base_classes,
std::vector< uint32_t > & child_indexes )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 378 of file TypeSystemClike.cpp.

◆ GetIndexOfChildWithName()

llvm::Expected< uint32_t > TypeSystemClike::GetIndexOfChildWithName ( lldb::opaque_compiler_type_t type,
llvm::StringRef name,
bool omit_empty_base_classes )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 372 of file TypeSystemClike.cpp.

◆ GetMemberFunctionAtIndex()

TypeMemberFunctionImpl TypeSystemClike::GetMemberFunctionAtIndex ( lldb::opaque_compiler_type_t type,
size_t idx )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 275 of file TypeSystemClike.cpp.

◆ GetMinimumLanguage()

lldb::LanguageType TypeSystemClike::GetMinimumLanguage ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 229 of file TypeSystemClike.cpp.

References lldb::eLanguageTypeUnknown.

◆ GetNonReferenceType()

CompilerType TypeSystemClike::GetNonReferenceType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 470 of file TypeSystemClike.cpp.

◆ GetNumberOfFunctionArguments()

size_t TypeSystemClike::GetNumberOfFunctionArguments ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 117 of file TypeSystemClike.cpp.

◆ GetNumChildren()

llvm::Expected< uint32_t > TypeSystemClike::GetNumChildren ( lldb::opaque_compiler_type_t type,
bool omit_empty_base_classes,
const ExecutionContext * exe_ctx )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 310 of file TypeSystemClike.cpp.

◆ GetNumDirectBaseClasses()

uint32_t TypeSystemClike::GetNumDirectBaseClasses ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 334 of file TypeSystemClike.cpp.

◆ GetNumFields()

uint32_t TypeSystemClike::GetNumFields ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 321 of file TypeSystemClike.cpp.

◆ GetNumMemberFunctions()

size_t TypeSystemClike::GetNumMemberFunctions ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 270 of file TypeSystemClike.cpp.

◆ GetNumVirtualBaseClasses()

uint32_t TypeSystemClike::GetNumVirtualBaseClasses ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 339 of file TypeSystemClike.cpp.

◆ GetPluginName()

llvm::StringRef lldb_private::TypeSystemClike::GetPluginName ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 30 of file TypeSystemClike.h.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

llvm::StringRef lldb_private::TypeSystemClike::GetPluginNameStatic ( )
inlinestatic

Definition at line 29 of file TypeSystemClike.h.

Referenced by GetPluginName(), and Initialize().

◆ GetPointeeType()

CompilerType TypeSystemClike::GetPointeeType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 281 of file TypeSystemClike.cpp.

◆ GetPointerByteSize()

uint32_t TypeSystemClike::GetPointerByteSize ( )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 190 of file TypeSystemClike.cpp.

◆ GetPointerDiffType()

CompilerType TypeSystemClike::GetPointerDiffType ( bool is_signed)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 192 of file TypeSystemClike.cpp.

◆ GetPointerType()

CompilerType TypeSystemClike::GetPointerType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 286 of file TypeSystemClike.cpp.

◆ GetPtrAuthAddressDiversity()

bool TypeSystemClike::GetPtrAuthAddressDiversity ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 207 of file TypeSystemClike.cpp.

◆ GetPtrAuthDiscriminator()

unsigned TypeSystemClike::GetPtrAuthDiscriminator ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 203 of file TypeSystemClike.cpp.

◆ GetPtrAuthKey()

unsigned TypeSystemClike::GetPtrAuthKey ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 198 of file TypeSystemClike.cpp.

◆ GetSizeType()

CompilerType TypeSystemClike::GetSizeType ( )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 196 of file TypeSystemClike.cpp.

◆ GetSupportedLanguagesForExpressions()

LanguageSet TypeSystemClike::GetSupportedLanguagesForExpressions ( )
static

Definition at line 37 of file TypeSystemClike.cpp.

Referenced by Initialize().

◆ GetSupportedLanguagesForTypes()

LanguageSet TypeSystemClike::GetSupportedLanguagesForTypes ( )
static

Definition at line 33 of file TypeSystemClike.cpp.

Referenced by Initialize().

◆ GetTypeBitAlign()

std::optional< size_t > TypeSystemClike::GetTypeBitAlign ( lldb::opaque_compiler_type_t type,
ExecutionContextScope * exe_scope )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 417 of file TypeSystemClike.cpp.

◆ GetTypeClass()

lldb::TypeClass TypeSystemClike::GetTypeClass ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 234 of file TypeSystemClike.cpp.

◆ GetTypedefedType()

CompilerType TypeSystemClike::GetTypedefedType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 455 of file TypeSystemClike.cpp.

◆ GetTypeForDecl()

CompilerType TypeSystemClike::GetTypeForDecl ( void * opaque_decl)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 56 of file TypeSystemClike.cpp.

◆ GetTypeInfo()

uint32_t TypeSystemClike::GetTypeInfo ( lldb::opaque_compiler_type_t type,
CompilerType * pointee_or_element_compiler_type )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 223 of file TypeSystemClike.cpp.

◆ GetTypeName()

ConstString TypeSystemClike::GetTypeName ( lldb::opaque_compiler_type_t type,
bool BaseOnly )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 212 of file TypeSystemClike.cpp.

◆ GetTypeQualifiers()

unsigned TypeSystemClike::GetTypeQualifiers ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 412 of file TypeSystemClike.cpp.

◆ GetVirtualBaseClassAtIndex()

CompilerType TypeSystemClike::GetVirtualBaseClassAtIndex ( lldb::opaque_compiler_type_t type,
size_t idx,
uint32_t * bit_offset_ptr )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 348 of file TypeSystemClike.cpp.

◆ Initialize()

◆ isA()

bool lldb_private::TypeSystemClike::isA ( const void * ClassID) const
inlineoverridevirtual

Implements lldb_private::TypeSystem.

Definition at line 38 of file TypeSystemClike.h.

References ID.

◆ IsAggregateType()

bool TypeSystemClike::IsAggregateType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 93 of file TypeSystemClike.cpp.

◆ IsArrayType()

bool TypeSystemClike::IsArrayType ( lldb::opaque_compiler_type_t type,
CompilerType * element_type,
uint64_t * size,
bool * is_incomplete )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 87 of file TypeSystemClike.cpp.

◆ IsBeingDefined()

bool TypeSystemClike::IsBeingDefined ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 432 of file TypeSystemClike.cpp.

◆ IsBlockPointerType()

bool TypeSystemClike::IsBlockPointerType ( lldb::opaque_compiler_type_t type,
CompilerType * function_pointer_type_ptr )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 142 of file TypeSystemClike.cpp.

◆ IsCharType()

bool TypeSystemClike::IsCharType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 97 of file TypeSystemClike.cpp.

◆ IsCompleteType()

bool TypeSystemClike::IsCompleteType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 101 of file TypeSystemClike.cpp.

◆ IsConst()

bool TypeSystemClike::IsConst ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 436 of file TypeSystemClike.cpp.

◆ IsDefined()

bool TypeSystemClike::IsDefined ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 105 of file TypeSystemClike.cpp.

◆ IsFloatingPointType()

bool TypeSystemClike::IsFloatingPointType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 109 of file TypeSystemClike.cpp.

◆ IsFunctionPointerType()

bool TypeSystemClike::IsFunctionPointerType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 128 of file TypeSystemClike.cpp.

◆ IsFunctionType()

bool TypeSystemClike::IsFunctionType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 113 of file TypeSystemClike.cpp.

◆ IsHomogeneousAggregate()

uint32_t TypeSystemClike::IsHomogeneousAggregate ( lldb::opaque_compiler_type_t type,
CompilerType * base_type_ptr )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 441 of file TypeSystemClike.cpp.

◆ IsIntegerType()

bool TypeSystemClike::IsIntegerType ( lldb::opaque_compiler_type_t type,
bool & is_signed )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 148 of file TypeSystemClike.cpp.

◆ IsMemberDataPointerType()

bool TypeSystemClike::IsMemberDataPointerType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 137 of file TypeSystemClike.cpp.

◆ IsMemberFunctionPointerType()

bool TypeSystemClike::IsMemberFunctionPointerType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 132 of file TypeSystemClike.cpp.

◆ IsPointerOrReferenceType()

bool TypeSystemClike::IsPointerOrReferenceType ( lldb::opaque_compiler_type_t type,
CompilerType * pointee_type )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 407 of file TypeSystemClike.cpp.

◆ IsPointerType()

bool TypeSystemClike::IsPointerType ( lldb::opaque_compiler_type_t type,
CompilerType * pointee_type )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 165 of file TypeSystemClike.cpp.

◆ IsPolymorphicClass()

bool TypeSystemClike::IsPolymorphicClass ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 446 of file TypeSystemClike.cpp.

◆ IsPossibleDynamicType()

bool TypeSystemClike::IsPossibleDynamicType ( lldb::opaque_compiler_type_t type,
CompilerType * target_type,
bool check_cplusplus,
bool check_objc )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 158 of file TypeSystemClike.cpp.

◆ IsReferenceType()

bool TypeSystemClike::IsReferenceType ( lldb::opaque_compiler_type_t type,
CompilerType * pointee_type,
bool * is_rvalue )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 474 of file TypeSystemClike.cpp.

◆ IsRuntimeGeneratedType()

bool TypeSystemClike::IsRuntimeGeneratedType ( lldb::opaque_compiler_type_t type)
overridevirtual

This is used by swift.

Implements lldb_private::TypeSystem.

Definition at line 402 of file TypeSystemClike.cpp.

◆ IsScalarType()

bool TypeSystemClike::IsScalarType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 170 of file TypeSystemClike.cpp.

◆ IsScopedEnumerationType()

bool TypeSystemClike::IsScopedEnumerationType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 153 of file TypeSystemClike.cpp.

◆ IsTypedefType()

bool TypeSystemClike::IsTypedefType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 450 of file TypeSystemClike.cpp.

◆ IsVectorType()

bool TypeSystemClike::IsVectorType ( lldb::opaque_compiler_type_t type,
CompilerType * element_type,
uint64_t * size )
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 459 of file TypeSystemClike.cpp.

◆ IsVoidType()

bool TypeSystemClike::IsVoidType ( lldb::opaque_compiler_type_t type)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 174 of file TypeSystemClike.cpp.

◆ SupportsLanguage()

bool TypeSystemClike::SupportsLanguage ( lldb::LanguageType language)
overridevirtual

Implements lldb_private::TypeSystem.

Definition at line 182 of file TypeSystemClike.cpp.

◆ Terminate()

void TypeSystemClike::Terminate ( )
static

◆ Verify()

bool TypeSystemClike::Verify ( lldb::opaque_compiler_type_t type)
overridevirtual

Verify the integrity of the type to catch CompilerTypes that mix and match invalid TypeSystem/Opaque type pairs.

Implements lldb_private::TypeSystem.

Definition at line 83 of file TypeSystemClike.cpp.

Member Data Documentation

◆ ID

char TypeSystemClike::ID
staticprivate

Definition at line 20 of file TypeSystemClike.h.

Referenced by classof(), and isA().


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