LLDB  mainline
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
lldb_private::TypeSystem Class Referenceabstract

Interface for representing a type system. More...

#include <TypeSystem.h>

Inheritance diagram for lldb_private::TypeSystem:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::TypeSystem:
Collaboration graph
[legend]

Public Member Functions

 ~TypeSystem () override
 
virtual bool isA (const void *ClassID) const =0
 
virtual void Finalize ()
 
virtual DWARFASTParserGetDWARFParser ()
 
virtual PDBASTParserGetPDBParser ()
 
virtual SymbolFileGetSymbolFile () const
 
virtual void SetSymbolFile (SymbolFile *sym_file)
 
virtual ConstString DeclGetName (void *opaque_decl)=0
 
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 CompilerType GetTypeForDecl (void *opaque_decl)=0
 
virtual std::vector< CompilerDeclDeclContextFindDeclByName (void *opaque_decl_ctx, ConstString name, const bool ignore_imported_decls)
 
virtual ConstString DeclContextGetName (void *opaque_decl_ctx)=0
 
virtual ConstString DeclContextGetScopeQualifiedName (void *opaque_decl_ctx)=0
 
virtual bool DeclContextIsClassMethod (void *opaque_decl_ctx, lldb::LanguageType *language_ptr, bool *is_instance_method_ptr, ConstString *language_object_name_ptr)=0
 
virtual bool DeclContextIsContainedInLookup (void *opaque_decl_ctx, void *other_opaque_decl_ctx)=0
 
virtual bool Verify (lldb::opaque_compiler_type_t type)=0
 Verify the integrity of the type to catch CompilerTypes that mix and match invalid TypeSystem/Opaque type pairs. More...
 
virtual bool IsArrayType (lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size, bool *is_incomplete)=0
 
virtual bool IsAggregateType (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsAnonymousType (lldb::opaque_compiler_type_t type)
 
virtual bool IsCharType (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsCompleteType (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsDefined (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsFloatingPointType (lldb::opaque_compiler_type_t type, uint32_t &count, bool &is_complex)=0
 
virtual bool IsFunctionType (lldb::opaque_compiler_type_t type)=0
 
virtual size_t GetNumberOfFunctionArguments (lldb::opaque_compiler_type_t type)=0
 
virtual CompilerType GetFunctionArgumentAtIndex (lldb::opaque_compiler_type_t type, const size_t index)=0
 
virtual bool IsFunctionPointerType (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsBlockPointerType (lldb::opaque_compiler_type_t type, CompilerType *function_pointer_type_ptr)=0
 
virtual bool IsIntegerType (lldb::opaque_compiler_type_t type, bool &is_signed)=0
 
virtual bool IsEnumerationType (lldb::opaque_compiler_type_t type, bool &is_signed)
 
virtual bool IsScopedEnumerationType (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsPossibleDynamicType (lldb::opaque_compiler_type_t type, CompilerType *target_type, bool check_cplusplus, bool check_objc)=0
 
virtual bool IsPointerType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type)=0
 
virtual bool IsScalarType (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsVoidType (lldb::opaque_compiler_type_t type)=0
 
virtual bool CanPassInRegisters (const CompilerType &type)=0
 
virtual bool SupportsLanguage (lldb::LanguageType language)=0
 
virtual bool GetCompleteType (lldb::opaque_compiler_type_t type)=0
 
virtual uint32_t GetPointerByteSize ()=0
 
virtual ConstString GetTypeName (lldb::opaque_compiler_type_t type)=0
 
virtual ConstString GetDisplayTypeName (lldb::opaque_compiler_type_t type)=0
 
virtual uint32_t GetTypeInfo (lldb::opaque_compiler_type_t type, CompilerType *pointee_or_element_compiler_type)=0
 
virtual lldb::LanguageType GetMinimumLanguage (lldb::opaque_compiler_type_t type)=0
 
virtual lldb::TypeClass GetTypeClass (lldb::opaque_compiler_type_t type)=0
 
virtual CompilerType GetArrayElementType (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope)=0
 
virtual CompilerType GetArrayType (lldb::opaque_compiler_type_t type, uint64_t size)
 
virtual CompilerType GetCanonicalType (lldb::opaque_compiler_type_t type)=0
 
virtual CompilerType GetEnumerationIntegerType (lldb::opaque_compiler_type_t type)=0
 
virtual int GetFunctionArgumentCount (lldb::opaque_compiler_type_t type)=0
 
virtual CompilerType GetFunctionArgumentTypeAtIndex (lldb::opaque_compiler_type_t type, size_t idx)=0
 
virtual CompilerType GetFunctionReturnType (lldb::opaque_compiler_type_t type)=0
 
virtual size_t GetNumMemberFunctions (lldb::opaque_compiler_type_t type)=0
 
virtual TypeMemberFunctionImpl GetMemberFunctionAtIndex (lldb::opaque_compiler_type_t type, size_t idx)=0
 
virtual CompilerType GetPointeeType (lldb::opaque_compiler_type_t type)=0
 
virtual CompilerType GetPointerType (lldb::opaque_compiler_type_t type)=0
 
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 CreateTypedef (lldb::opaque_compiler_type_t type, const char *name, const CompilerDeclContext &decl_ctx, uint32_t opaque_payload)
 
virtual const llvm::fltSemantics & GetFloatTypeSemantics (size_t byte_size)=0
 
virtual llvm::Optional< uint64_t > GetBitSize (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope)=0
 
virtual lldb::Encoding GetEncoding (lldb::opaque_compiler_type_t type, uint64_t &count)=0
 
virtual lldb::Format GetFormat (lldb::opaque_compiler_type_t type)=0
 
virtual uint32_t GetNumChildren (lldb::opaque_compiler_type_t type, bool omit_empty_base_classes, const ExecutionContext *exe_ctx)=0
 
virtual CompilerType GetBuiltinTypeByName (ConstString name)
 
virtual lldb::BasicType GetBasicTypeEnumeration (lldb::opaque_compiler_type_t type)=0
 
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 uint32_t GetNumFields (lldb::opaque_compiler_type_t type)=0
 
virtual 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)=0
 
virtual uint32_t GetNumDirectBaseClasses (lldb::opaque_compiler_type_t type)=0
 
virtual uint32_t GetNumVirtualBaseClasses (lldb::opaque_compiler_type_t type)=0
 
virtual CompilerType GetDirectBaseClassAtIndex (lldb::opaque_compiler_type_t type, size_t idx, uint32_t *bit_offset_ptr)=0
 
virtual CompilerType GetVirtualBaseClassAtIndex (lldb::opaque_compiler_type_t type, size_t idx, uint32_t *bit_offset_ptr)=0
 
virtual 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)=0
 
virtual uint32_t GetIndexOfChildWithName (lldb::opaque_compiler_type_t type, const char *name, bool omit_empty_base_classes)=0
 
virtual size_t GetIndexOfChildMemberWithName (lldb::opaque_compiler_type_t type, const char *name, bool omit_empty_base_classes, std::vector< uint32_t > &child_indexes)=0
 
virtual size_t GetNumTemplateArguments (lldb::opaque_compiler_type_t type)
 
virtual lldb::TemplateArgumentKind GetTemplateArgumentKind (lldb::opaque_compiler_type_t type, size_t idx)
 
virtual CompilerType GetTypeTemplateArgument (lldb::opaque_compiler_type_t type, size_t idx)
 
virtual llvm::Optional< CompilerType::IntegralTemplateArgumentGetIntegralTemplateArgument (lldb::opaque_compiler_type_t type, size_t idx)
 
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. More...
 
virtual void DumpValue (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, 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, bool show_types, bool show_summary, bool verbose, uint32_t depth)=0
 
virtual 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)=0
 
virtual void DumpTypeDescription (lldb::opaque_compiler_type_t type, lldb::DescriptionLevel level=lldb::eDescriptionLevelFull)=0
 Dump the type to stdout. More...
 
virtual void DumpTypeDescription (lldb::opaque_compiler_type_t type, Stream *s, lldb::DescriptionLevel level=lldb::eDescriptionLevelFull)=0
 Print a description of the type to a stream. More...
 
virtual void Dump (llvm::raw_ostream &output)=0
 Dump a textual representation of the internal TypeSystem state to the given stream. More...
 
virtual bool IsRuntimeGeneratedType (lldb::opaque_compiler_type_t type)=0
 
virtual void DumpSummary (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size)=0
 
virtual bool IsPointerOrReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type)=0
 
virtual unsigned GetTypeQualifiers (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsCStringType (lldb::opaque_compiler_type_t type, uint32_t &length)=0
 
virtual llvm::Optional< size_t > GetTypeBitAlign (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope)=0
 
virtual CompilerType GetBasicTypeFromAST (lldb::BasicType basic_type)=0
 
virtual CompilerType GetBuiltinTypeForEncodingAndBitSize (lldb::Encoding encoding, size_t bit_size)=0
 
virtual bool IsBeingDefined (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsConst (lldb::opaque_compiler_type_t type)=0
 
virtual uint32_t IsHomogeneousAggregate (lldb::opaque_compiler_type_t type, CompilerType *base_type_ptr)=0
 
virtual bool IsPolymorphicClass (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsTypedefType (lldb::opaque_compiler_type_t type)=0
 
virtual CompilerType GetTypedefedType (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsVectorType (lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size)=0
 
virtual CompilerType GetFullyUnqualifiedType (lldb::opaque_compiler_type_t type)=0
 
virtual CompilerType GetNonReferenceType (lldb::opaque_compiler_type_t type)=0
 
virtual bool IsReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type, bool *is_rvalue)=0
 
virtual bool ShouldTreatScalarValueAsAddress (lldb::opaque_compiler_type_t type)
 
virtual UserExpressionGetUserExpression (llvm::StringRef expr, llvm::StringRef prefix, lldb::LanguageType language, Expression::ResultType desired_type, const EvaluateExpressionOptions &options, ValueObject *ctx_obj)
 
virtual FunctionCallerGetFunctionCaller (const CompilerType &return_type, const Address &function_address, const ValueList &arg_value_list, const char *name)
 
virtual std::unique_ptr< UtilityFunctionCreateUtilityFunction (std::string text, std::string name)
 
virtual PersistentExpressionStateGetPersistentExpressionState ()
 
virtual CompilerType GetTypeForFormatters (void *type)
 
virtual LazyBool ShouldPrintAsOneLiner (void *type, ValueObject *valobj)
 
virtual bool IsMeaninglessWithoutDynamicResolution (void *type)
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
virtual llvm::StringRef GetPluginName ()=0
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

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

Protected Attributes

SymbolFilem_sym_file = nullptr
 

Detailed Description

Interface for representing a type system.

Implemented by language plugins to define the type system for a given language.

This interface extensively used opaque pointers to prevent that generic LLDB code has dependencies on language plugins. The type and semantics of these opaque pointers are defined by the TypeSystem implementation inside the respective language plugin. Opaque pointers from one TypeSystem instance should never be passed to a different TypeSystem instance (even when the language plugin for both TypeSystem instances is the same).

Most of the functions in this class should not be called directly but only called by their respective counterparts in CompilerType, CompilerDecl and CompilerDeclContext.

See also
lldb_private::CompilerType
lldb_private::CompilerDecl
lldb_private::CompilerDeclContext

Definition at line 71 of file TypeSystem.h.

Constructor & Destructor Documentation

◆ ~TypeSystem()

TypeSystem::~TypeSystem ( )
overridedefault

Member Function Documentation

◆ AddConstModifier()

CompilerType TypeSystem::AddConstModifier ( lldb::opaque_compiler_type_t  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 92 of file TypeSystem.cpp.

◆ AddRestrictModifier()

CompilerType TypeSystem::AddRestrictModifier ( lldb::opaque_compiler_type_t  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 102 of file TypeSystem.cpp.

◆ AddVolatileModifier()

CompilerType TypeSystem::AddVolatileModifier ( lldb::opaque_compiler_type_t  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 97 of file TypeSystem.cpp.

◆ CanPassInRegisters()

virtual bool lldb_private::TypeSystem::CanPassInRegisters ( const CompilerType type)
pure virtual

◆ CreateInstance() [1/2]

lldb::TypeSystemSP TypeSystem::CreateInstance ( lldb::LanguageType  language,
Module module 
)
static

◆ CreateInstance() [2/2]

lldb::TypeSystemSP TypeSystem::CreateInstance ( lldb::LanguageType  language,
Target target 
)
static

Definition at line 60 of file TypeSystem.cpp.

References CreateInstanceHelper().

◆ CreateTypedef()

CompilerType TypeSystem::CreateTypedef ( lldb::opaque_compiler_type_t  type,
const char *  name,
const CompilerDeclContext decl_ctx,
uint32_t  opaque_payload 
)
virtual
Parameters
opaque_payloadThe m_payload field of Type, which may carry TypeSystem-specific extra information.

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 106 of file TypeSystem.cpp.

◆ CreateUtilityFunction()

std::unique_ptr< UtilityFunction > TypeSystem::CreateUtilityFunction ( std::string  text,
std::string  name 
)
virtual

Reimplemented in lldb_private::ScratchTypeSystemClang.

Definition at line 175 of file TypeSystem.cpp.

◆ DeclContextFindDeclByName()

std::vector< CompilerDecl > TypeSystem::DeclContextFindDeclByName ( void *  opaque_decl_ctx,
ConstString  name,
const bool  ignore_imported_decls 
)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 169 of file TypeSystem.cpp.

Referenced by lldb_private::CompilerDeclContext::FindDeclByName().

◆ DeclContextGetName()

virtual ConstString lldb_private::TypeSystem::DeclContextGetName ( void *  opaque_decl_ctx)
pure virtual

◆ DeclContextGetScopeQualifiedName()

virtual ConstString lldb_private::TypeSystem::DeclContextGetScopeQualifiedName ( void *  opaque_decl_ctx)
pure virtual

◆ DeclContextIsClassMethod()

virtual bool lldb_private::TypeSystem::DeclContextIsClassMethod ( void *  opaque_decl_ctx,
lldb::LanguageType language_ptr,
bool *  is_instance_method_ptr,
ConstString language_object_name_ptr 
)
pure virtual

◆ DeclContextIsContainedInLookup()

virtual bool lldb_private::TypeSystem::DeclContextIsContainedInLookup ( void *  opaque_decl_ctx,
void *  other_opaque_decl_ctx 
)
pure virtual

◆ DeclGetDeclContext()

CompilerDeclContext TypeSystem::DeclGetDeclContext ( void *  opaque_decl)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 153 of file TypeSystem.cpp.

Referenced by lldb_private::CompilerDecl::GetDeclContext().

◆ DeclGetFunctionArgumentType()

CompilerType TypeSystem::DeclGetFunctionArgumentType ( void *  opaque_decl,
size_t  arg_idx 
)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 163 of file TypeSystem.cpp.

Referenced by lldb_private::CompilerDecl::GetFunctionArgumentType().

◆ DeclGetFunctionNumArguments()

size_t TypeSystem::DeclGetFunctionNumArguments ( void *  opaque_decl)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 161 of file TypeSystem.cpp.

Referenced by lldb_private::CompilerDecl::GetNumFunctionArguments().

◆ DeclGetFunctionReturnType()

CompilerType TypeSystem::DeclGetFunctionReturnType ( void *  opaque_decl)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 157 of file TypeSystem.cpp.

Referenced by lldb_private::CompilerDecl::GetFunctionReturnType().

◆ DeclGetMangledName()

ConstString TypeSystem::DeclGetMangledName ( void *  opaque_decl)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 149 of file TypeSystem.cpp.

Referenced by lldb_private::CompilerDecl::GetMangledName().

◆ DeclGetName()

virtual ConstString lldb_private::TypeSystem::DeclGetName ( void *  opaque_decl)
pure virtual

◆ dump()

virtual LLVM_DUMP_METHOD void lldb_private::TypeSystem::dump ( lldb::opaque_compiler_type_t  type) const
pure virtual

Convenience LLVM-style dump method for use in the debugger only.

Implemented in lldb_private::TypeSystemClang.

◆ Dump()

virtual void lldb_private::TypeSystem::Dump ( llvm::raw_ostream &  output)
pure virtual

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

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

Implemented in lldb_private::ScratchTypeSystemClang, and lldb_private::TypeSystemClang.

◆ DumpSummary()

virtual void lldb_private::TypeSystem::DumpSummary ( lldb::opaque_compiler_type_t  type,
ExecutionContext exe_ctx,
Stream s,
const DataExtractor data,
lldb::offset_t  data_offset,
size_t  data_byte_size 
)
pure virtual

◆ DumpTypeDescription() [1/2]

virtual void lldb_private::TypeSystem::DumpTypeDescription ( lldb::opaque_compiler_type_t  type,
lldb::DescriptionLevel  level = lldb::eDescriptionLevelFull 
)
pure virtual

Dump the type to stdout.

Implemented in lldb_private::TypeSystemClang.

◆ DumpTypeDescription() [2/2]

virtual void lldb_private::TypeSystem::DumpTypeDescription ( lldb::opaque_compiler_type_t  type,
Stream s,
lldb::DescriptionLevel  level = lldb::eDescriptionLevelFull 
)
pure virtual

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.

Implemented in lldb_private::TypeSystemClang.

◆ DumpTypeValue()

virtual bool lldb_private::TypeSystem::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 
)
pure virtual

◆ DumpValue()

virtual void lldb_private::TypeSystem::DumpValue ( lldb::opaque_compiler_type_t  type,
ExecutionContext exe_ctx,
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,
bool  show_types,
bool  show_summary,
bool  verbose,
uint32_t  depth 
)
pure virtual

◆ Finalize()

virtual void lldb_private::TypeSystem::Finalize ( )
inlinevirtual

◆ ForEachEnumerator()

virtual void lldb_private::TypeSystem::ForEachEnumerator ( lldb::opaque_compiler_type_t  type,
std::function< bool(const CompilerType &integer_type, ConstString name, const llvm::APSInt &value)> const &  callback 
)
inlinevirtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 295 of file TypeSystem.h.

◆ GetArrayElementType()

virtual CompilerType lldb_private::TypeSystem::GetArrayElementType ( lldb::opaque_compiler_type_t  type,
ExecutionContextScope exe_scope 
)
pure virtual

◆ GetArrayType()

CompilerType TypeSystem::GetArrayType ( lldb::opaque_compiler_type_t  type,
uint64_t  size 
)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 73 of file TypeSystem.cpp.

◆ GetAtomicType()

CompilerType TypeSystem::GetAtomicType ( lldb::opaque_compiler_type_t  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 88 of file TypeSystem.cpp.

◆ GetBasicTypeEnumeration()

virtual lldb::BasicType lldb_private::TypeSystem::GetBasicTypeEnumeration ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetBasicTypeFromAST()

virtual CompilerType lldb_private::TypeSystem::GetBasicTypeFromAST ( lldb::BasicType  basic_type)
pure virtual

◆ GetBitSize()

virtual llvm::Optional<uint64_t> lldb_private::TypeSystem::GetBitSize ( lldb::opaque_compiler_type_t  type,
ExecutionContextScope exe_scope 
)
pure virtual

◆ GetBuiltinTypeByName()

CompilerType TypeSystem::GetBuiltinTypeByName ( ConstString  name)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 113 of file TypeSystem.cpp.

◆ GetBuiltinTypeForEncodingAndBitSize()

virtual CompilerType lldb_private::TypeSystem::GetBuiltinTypeForEncodingAndBitSize ( lldb::Encoding  encoding,
size_t  bit_size 
)
pure virtual

◆ GetCanonicalType()

virtual CompilerType lldb_private::TypeSystem::GetCanonicalType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetChildCompilerTypeAtIndex()

virtual CompilerType lldb_private::TypeSystem::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 
)
pure virtual

◆ GetCompleteType()

virtual bool lldb_private::TypeSystem::GetCompleteType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetDirectBaseClassAtIndex()

virtual CompilerType lldb_private::TypeSystem::GetDirectBaseClassAtIndex ( lldb::opaque_compiler_type_t  type,
size_t  idx,
uint32_t bit_offset_ptr 
)
pure virtual

◆ GetDisplayTypeName()

virtual ConstString lldb_private::TypeSystem::GetDisplayTypeName ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetDWARFParser()

virtual DWARFASTParser* lldb_private::TypeSystem::GetDWARFParser ( )
inlinevirtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 89 of file TypeSystem.h.

Referenced by SymbolFileDWARF::ParseDeclsForContext().

◆ GetEncoding()

virtual lldb::Encoding lldb_private::TypeSystem::GetEncoding ( lldb::opaque_compiler_type_t  type,
uint64_t &  count 
)
pure virtual

◆ GetEnumerationIntegerType()

virtual CompilerType lldb_private::TypeSystem::GetEnumerationIntegerType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetFieldAtIndex()

virtual CompilerType lldb_private::TypeSystem::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 
)
pure virtual

◆ GetFloatTypeSemantics()

virtual const llvm::fltSemantics& lldb_private::TypeSystem::GetFloatTypeSemantics ( size_t  byte_size)
pure virtual

◆ GetFormat()

virtual lldb::Format lldb_private::TypeSystem::GetFormat ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetFullyUnqualifiedType()

virtual CompilerType lldb_private::TypeSystem::GetFullyUnqualifiedType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetFunctionArgumentAtIndex()

virtual CompilerType lldb_private::TypeSystem::GetFunctionArgumentAtIndex ( lldb::opaque_compiler_type_t  type,
const size_t  index 
)
pure virtual

◆ GetFunctionArgumentCount()

virtual int lldb_private::TypeSystem::GetFunctionArgumentCount ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetFunctionArgumentTypeAtIndex()

virtual CompilerType lldb_private::TypeSystem::GetFunctionArgumentTypeAtIndex ( lldb::opaque_compiler_type_t  type,
size_t  idx 
)
pure virtual

◆ GetFunctionCaller()

virtual FunctionCaller* lldb_private::TypeSystem::GetFunctionCaller ( const CompilerType return_type,
const Address function_address,
const ValueList arg_value_list,
const char *  name 
)
inlinevirtual

Reimplemented in lldb_private::ScratchTypeSystemClang.

Definition at line 470 of file TypeSystem.h.

◆ GetFunctionReturnType()

virtual CompilerType lldb_private::TypeSystem::GetFunctionReturnType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetIndexOfChildMemberWithName()

virtual size_t lldb_private::TypeSystem::GetIndexOfChildMemberWithName ( lldb::opaque_compiler_type_t  type,
const char *  name,
bool  omit_empty_base_classes,
std::vector< uint32_t > &  child_indexes 
)
pure virtual

◆ GetIndexOfChildWithName()

virtual uint32_t lldb_private::TypeSystem::GetIndexOfChildWithName ( lldb::opaque_compiler_type_t  type,
const char *  name,
bool  omit_empty_base_classes 
)
pure virtual

◆ GetIntegralTemplateArgument()

llvm::Optional< CompilerType::IntegralTemplateArgument > TypeSystem::GetIntegralTemplateArgument ( lldb::opaque_compiler_type_t  type,
size_t  idx 
)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 136 of file TypeSystem.cpp.

◆ GetLValueReferenceType()

CompilerType TypeSystem::GetLValueReferenceType ( lldb::opaque_compiler_type_t  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 79 of file TypeSystem.cpp.

◆ GetMemberFunctionAtIndex()

virtual TypeMemberFunctionImpl lldb_private::TypeSystem::GetMemberFunctionAtIndex ( lldb::opaque_compiler_type_t  type,
size_t  idx 
)
pure virtual

◆ GetMinimumLanguage()

virtual lldb::LanguageType lldb_private::TypeSystem::GetMinimumLanguage ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetNonReferenceType()

virtual CompilerType lldb_private::TypeSystem::GetNonReferenceType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetNumberOfFunctionArguments()

virtual size_t lldb_private::TypeSystem::GetNumberOfFunctionArguments ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetNumChildren()

virtual uint32_t lldb_private::TypeSystem::GetNumChildren ( lldb::opaque_compiler_type_t  type,
bool  omit_empty_base_classes,
const ExecutionContext exe_ctx 
)
pure virtual

◆ GetNumDirectBaseClasses()

virtual uint32_t lldb_private::TypeSystem::GetNumDirectBaseClasses ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetNumFields()

virtual uint32_t lldb_private::TypeSystem::GetNumFields ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetNumMemberFunctions()

virtual size_t lldb_private::TypeSystem::GetNumMemberFunctions ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetNumTemplateArguments()

size_t TypeSystem::GetNumTemplateArguments ( lldb::opaque_compiler_type_t  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 121 of file TypeSystem.cpp.

◆ GetNumVirtualBaseClasses()

virtual uint32_t lldb_private::TypeSystem::GetNumVirtualBaseClasses ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetPDBParser()

virtual PDBASTParser* lldb_private::TypeSystem::GetPDBParser ( )
inlinevirtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 90 of file TypeSystem.h.

◆ GetPersistentExpressionState()

virtual PersistentExpressionState* lldb_private::TypeSystem::GetPersistentExpressionState ( )
inlinevirtual

◆ GetPointeeType()

virtual CompilerType lldb_private::TypeSystem::GetPointeeType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetPointerByteSize()

virtual uint32_t lldb_private::TypeSystem::GetPointerByteSize ( )
pure virtual

◆ GetPointerType()

virtual CompilerType lldb_private::TypeSystem::GetPointerType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetRValueReferenceType()

CompilerType TypeSystem::GetRValueReferenceType ( lldb::opaque_compiler_type_t  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 84 of file TypeSystem.cpp.

◆ GetSymbolFile()

virtual SymbolFile* lldb_private::TypeSystem::GetSymbolFile ( ) const
inlinevirtual

◆ GetTemplateArgumentKind()

TemplateArgumentKind TypeSystem::GetTemplateArgumentKind ( lldb::opaque_compiler_type_t  type,
size_t  idx 
)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 126 of file TypeSystem.cpp.

References lldb::eTemplateArgumentKindNull.

◆ GetTypeBitAlign()

virtual llvm::Optional<size_t> lldb_private::TypeSystem::GetTypeBitAlign ( lldb::opaque_compiler_type_t  type,
ExecutionContextScope exe_scope 
)
pure virtual

◆ GetTypeClass()

virtual lldb::TypeClass lldb_private::TypeSystem::GetTypeClass ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetTypedefedType()

virtual CompilerType lldb_private::TypeSystem::GetTypedefedType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetTypeForDecl()

virtual CompilerType lldb_private::TypeSystem::GetTypeForDecl ( void *  opaque_decl)
pure virtual

◆ GetTypeForFormatters()

CompilerType TypeSystem::GetTypeForFormatters ( void *  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 117 of file TypeSystem.cpp.

◆ GetTypeInfo()

virtual uint32_t lldb_private::TypeSystem::GetTypeInfo ( lldb::opaque_compiler_type_t  type,
CompilerType pointee_or_element_compiler_type 
)
pure virtual

◆ GetTypeName()

virtual ConstString lldb_private::TypeSystem::GetTypeName ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetTypeQualifiers()

virtual unsigned lldb_private::TypeSystem::GetTypeQualifiers ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ GetTypeTemplateArgument()

CompilerType TypeSystem::GetTypeTemplateArgument ( lldb::opaque_compiler_type_t  type,
size_t  idx 
)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 130 of file TypeSystem.cpp.

◆ GetUserExpression()

virtual UserExpression* lldb_private::TypeSystem::GetUserExpression ( llvm::StringRef  expr,
llvm::StringRef  prefix,
lldb::LanguageType  language,
Expression::ResultType  desired_type,
const EvaluateExpressionOptions options,
ValueObject ctx_obj 
)
inlinevirtual

Reimplemented in lldb_private::ScratchTypeSystemClang.

Definition at line 462 of file TypeSystem.h.

◆ GetVirtualBaseClassAtIndex()

virtual CompilerType lldb_private::TypeSystem::GetVirtualBaseClassAtIndex ( lldb::opaque_compiler_type_t  type,
size_t  idx,
uint32_t bit_offset_ptr 
)
pure virtual

◆ isA()

virtual bool lldb_private::TypeSystem::isA ( const void *  ClassID) const
pure virtual

◆ IsAggregateType()

virtual bool lldb_private::TypeSystem::IsAggregateType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsAnonymousType()

bool TypeSystem::IsAnonymousType ( lldb::opaque_compiler_type_t  type)
virtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 69 of file TypeSystem.cpp.

◆ IsArrayType()

virtual bool lldb_private::TypeSystem::IsArrayType ( lldb::opaque_compiler_type_t  type,
CompilerType element_type,
uint64_t *  size,
bool *  is_incomplete 
)
pure virtual

◆ IsBeingDefined()

virtual bool lldb_private::TypeSystem::IsBeingDefined ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsBlockPointerType()

virtual bool lldb_private::TypeSystem::IsBlockPointerType ( lldb::opaque_compiler_type_t  type,
CompilerType function_pointer_type_ptr 
)
pure virtual

◆ IsCharType()

virtual bool lldb_private::TypeSystem::IsCharType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsCompleteType()

virtual bool lldb_private::TypeSystem::IsCompleteType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsConst()

virtual bool lldb_private::TypeSystem::IsConst ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsCStringType()

virtual bool lldb_private::TypeSystem::IsCStringType ( lldb::opaque_compiler_type_t  type,
uint32_t length 
)
pure virtual

◆ IsDefined()

virtual bool lldb_private::TypeSystem::IsDefined ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsEnumerationType()

virtual bool lldb_private::TypeSystem::IsEnumerationType ( lldb::opaque_compiler_type_t  type,
bool &  is_signed 
)
inlinevirtual

Reimplemented in lldb_private::TypeSystemClang.

Definition at line 171 of file TypeSystem.h.

◆ IsFloatingPointType()

virtual bool lldb_private::TypeSystem::IsFloatingPointType ( lldb::opaque_compiler_type_t  type,
uint32_t count,
bool &  is_complex 
)
pure virtual

◆ IsFunctionPointerType()

virtual bool lldb_private::TypeSystem::IsFunctionPointerType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsFunctionType()

virtual bool lldb_private::TypeSystem::IsFunctionType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsHomogeneousAggregate()

virtual uint32_t lldb_private::TypeSystem::IsHomogeneousAggregate ( lldb::opaque_compiler_type_t  type,
CompilerType base_type_ptr 
)
pure virtual

◆ IsIntegerType()

virtual bool lldb_private::TypeSystem::IsIntegerType ( lldb::opaque_compiler_type_t  type,
bool &  is_signed 
)
pure virtual

◆ IsMeaninglessWithoutDynamicResolution()

bool TypeSystem::IsMeaninglessWithoutDynamicResolution ( void *  type)
virtual

Definition at line 145 of file TypeSystem.cpp.

◆ IsPointerOrReferenceType()

virtual bool lldb_private::TypeSystem::IsPointerOrReferenceType ( lldb::opaque_compiler_type_t  type,
CompilerType pointee_type 
)
pure virtual

◆ IsPointerType()

virtual bool lldb_private::TypeSystem::IsPointerType ( lldb::opaque_compiler_type_t  type,
CompilerType pointee_type 
)
pure virtual

◆ IsPolymorphicClass()

virtual bool lldb_private::TypeSystem::IsPolymorphicClass ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsPossibleDynamicType()

virtual bool lldb_private::TypeSystem::IsPossibleDynamicType ( lldb::opaque_compiler_type_t  type,
CompilerType target_type,
bool  check_cplusplus,
bool  check_objc 
)
pure virtual

◆ IsReferenceType()

virtual bool lldb_private::TypeSystem::IsReferenceType ( lldb::opaque_compiler_type_t  type,
CompilerType pointee_type,
bool *  is_rvalue 
)
pure virtual

◆ IsRuntimeGeneratedType()

virtual bool lldb_private::TypeSystem::IsRuntimeGeneratedType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsScalarType()

virtual bool lldb_private::TypeSystem::IsScalarType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsScopedEnumerationType()

virtual bool lldb_private::TypeSystem::IsScopedEnumerationType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsTypedefType()

virtual bool lldb_private::TypeSystem::IsTypedefType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ IsVectorType()

virtual bool lldb_private::TypeSystem::IsVectorType ( lldb::opaque_compiler_type_t  type,
CompilerType element_type,
uint64_t *  size 
)
pure virtual

◆ IsVoidType()

virtual bool lldb_private::TypeSystem::IsVoidType ( lldb::opaque_compiler_type_t  type)
pure virtual

◆ SetSymbolFile()

virtual void lldb_private::TypeSystem::SetSymbolFile ( SymbolFile sym_file)
inlinevirtual

Definition at line 94 of file TypeSystem.h.

References m_sym_file.

◆ ShouldPrintAsOneLiner()

LazyBool TypeSystem::ShouldPrintAsOneLiner ( void *  type,
ValueObject valobj 
)
virtual

Definition at line 141 of file TypeSystem.cpp.

References lldb_private::eLazyBoolCalculate.

◆ ShouldTreatScalarValueAsAddress()

virtual bool lldb_private::TypeSystem::ShouldTreatScalarValueAsAddress ( lldb::opaque_compiler_type_t  type)
inlinevirtual

Definition at line 457 of file TypeSystem.h.

References IsPointerOrReferenceType().

◆ SupportsLanguage()

virtual bool lldb_private::TypeSystem::SupportsLanguage ( lldb::LanguageType  language)
pure virtual

◆ Verify()

bool TypeSystem::Verify ( lldb::opaque_compiler_type_t  type)
pure virtual

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

Implemented in lldb_private::TypeSystemClang.

Definition at line 66 of file TypeSystem.cpp.

Member Data Documentation

◆ m_sym_file

SymbolFile* lldb_private::TypeSystem::m_sym_file = nullptr
protected

Definition at line 503 of file TypeSystem.h.

Referenced by GetSymbolFile(), and SetSymbolFile().


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