LLDB mainline
|
A TypeSystem implementation based on Clang. More...
#include <TypeSystemClang.h>
Classes | |
class | TemplateParameterInfos |
Public Types | |
typedef void(* | CompleteTagDeclCallback) (void *baton, clang::TagDecl *) |
typedef void(* | CompleteObjCInterfaceDeclCallback) (void *baton, clang::ObjCInterfaceDecl *) |
Public Member Functions | |
bool | isA (const void *ClassID) const override |
TypeSystemClang (llvm::StringRef name, llvm::Triple triple) | |
Constructs a TypeSystemClang with an ASTContext using the given triple. | |
TypeSystemClang (llvm::StringRef name, clang::ASTContext &existing_ctxt) | |
Constructs a TypeSystemClang that uses an existing ASTContext internally. | |
~TypeSystemClang () override | |
void | Finalize () override |
Free up any resources associated with this TypeSystem. | |
llvm::StringRef | GetPluginName () override |
llvm::StringRef | getDisplayName () const |
Returns the display name of this TypeSystemClang that indicates what purpose it serves in LLDB. | |
clang::ASTContext & | getASTContext () const |
Returns the clang::ASTContext instance managed by this TypeSystemClang. | |
clang::MangleContext * | getMangleContext () |
std::shared_ptr< clang::TargetOptions > & | getTargetOptions () |
clang::TargetInfo * | getTargetInfo () |
void | setSema (clang::Sema *s) |
clang::Sema * | getSema () |
const char * | GetTargetTriple () |
void | SetExternalSource (llvm::IntrusiveRefCntPtr< clang::ExternalASTSource > &ast_source_up) |
bool | GetCompleteDecl (clang::Decl *decl) |
void | SetMetadataAsUserID (const clang::Decl *decl, lldb::user_id_t user_id) |
void | SetMetadataAsUserID (const clang::Type *type, lldb::user_id_t user_id) |
void | SetMetadata (const clang::Decl *object, ClangASTMetadata &meta_data) |
void | SetMetadata (const clang::Type *object, ClangASTMetadata &meta_data) |
ClangASTMetadata * | GetMetadata (const clang::Decl *object) |
ClangASTMetadata * | GetMetadata (const clang::Type *object) |
void | SetCXXRecordDeclAccess (const clang::CXXRecordDecl *object, clang::AccessSpecifier access) |
clang::AccessSpecifier | GetCXXRecordDeclAccess (const clang::CXXRecordDecl *object) |
CompilerType | GetBuiltinTypeForEncodingAndBitSize (lldb::Encoding encoding, size_t bit_size) override |
CompilerType | GetBasicType (lldb::BasicType type) |
CompilerType | GetBuiltinTypeForDWARFEncodingAndBitSize (llvm::StringRef type_name, uint32_t dw_ate, uint32_t bit_size) |
CompilerType | GetCStringType (bool is_const) |
CompilerDeclContext | GetCompilerDeclContextForType (const CompilerType &type) override |
Returns the direct parent context of specified type. | |
uint32_t | GetPointerByteSize () override |
clang::TranslationUnitDecl * | GetTranslationUnitDecl () |
CompilerType | GetType (clang::QualType qt) |
Creates a CompilerType from the given QualType with the current TypeSystemClang instance as the CompilerType's typesystem. | |
CompilerType | GetTypeForDecl (clang::NamedDecl *decl) |
CompilerType | GetTypeForDecl (clang::TagDecl *decl) |
CompilerType | GetTypeForDecl (clang::ObjCInterfaceDecl *objc_decl) |
CompilerType | GetTypeForDecl (clang::ValueDecl *value_decl) |
template<typename RecordDeclType > | |
CompilerType | GetTypeForIdentifier (llvm::StringRef type_name, clang::DeclContext *decl_context=nullptr) |
CompilerType | CreateStructForIdentifier (llvm::StringRef type_name, const std::initializer_list< std::pair< const char *, CompilerType > > &type_fields, bool packed=false) |
CompilerType | GetOrCreateStructForIdentifier (llvm::StringRef type_name, const std::initializer_list< std::pair< const char *, CompilerType > > &type_fields, bool packed=false) |
uint32_t | GetNumBaseClasses (const clang::CXXRecordDecl *cxx_record_decl, bool omit_empty_base_classes) |
uint32_t | GetIndexForRecordChild (const clang::RecordDecl *record_decl, clang::NamedDecl *canonical_decl, bool omit_empty_base_classes) |
uint32_t | GetIndexForRecordBase (const clang::RecordDecl *record_decl, const clang::CXXBaseSpecifier *base_spec, bool omit_empty_base_classes) |
OptionalClangModuleID | GetOrCreateClangModule (llvm::StringRef name, OptionalClangModuleID parent, bool is_framework=false, bool is_explicit=false) |
Synthesize a clang::Module and return its ID or a default-constructed ID. | |
CompilerType | CreateRecordType (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, lldb::AccessType access_type, llvm::StringRef name, int kind, lldb::LanguageType language, ClangASTMetadata *metadata=nullptr, bool exports_symbols=false) |
clang::FunctionTemplateDecl * | CreateFunctionTemplateDecl (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, clang::FunctionDecl *func_decl, const TemplateParameterInfos &infos) |
void | CreateFunctionTemplateSpecializationInfo (clang::FunctionDecl *func_decl, clang::FunctionTemplateDecl *Template, const TemplateParameterInfos &infos) |
clang::ClassTemplateDecl * | CreateClassTemplateDecl (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, lldb::AccessType access_type, llvm::StringRef class_name, int kind, const TemplateParameterInfos &infos) |
clang::TemplateTemplateParmDecl * | CreateTemplateTemplateParmDecl (const char *template_name) |
clang::ClassTemplateSpecializationDecl * | CreateClassTemplateSpecializationDecl (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, clang::ClassTemplateDecl *class_template_decl, int kind, const TemplateParameterInfos &infos) |
CompilerType | CreateClassTemplateSpecializationType (clang::ClassTemplateSpecializationDecl *class_template_specialization_decl) |
bool | FieldIsBitfield (clang::FieldDecl *field, uint32_t &bitfield_bit_size) |
bool | RecordHasFields (const clang::RecordDecl *record_decl) |
bool | BaseSpecifierIsEmpty (const clang::CXXBaseSpecifier *b) |
CompilerType | CreateObjCClass (llvm::StringRef name, clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, bool isForwardDecl, bool isInternal, ClangASTMetadata *metadata=nullptr) |
clang::NamespaceDecl * | GetUniqueNamespaceDeclaration (const char *name, clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, bool is_inline=false) |
clang::FunctionDecl * | CreateFunctionDeclaration (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, llvm::StringRef name, const CompilerType &function_Type, clang::StorageClass storage, bool is_inline) |
CompilerType | CreateFunctionType (const CompilerType &result_type, const CompilerType *args, unsigned num_args, bool is_variadic, unsigned type_quals, clang::CallingConv cc=clang::CC_C, clang::RefQualifierKind ref_qual=clang::RQ_None) |
clang::ParmVarDecl * | CreateParameterDeclaration (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, const char *name, const CompilerType ¶m_type, int storage, bool add_decl=false) |
void | SetFunctionParameters (clang::FunctionDecl *function_decl, llvm::ArrayRef< clang::ParmVarDecl * > params) |
CompilerType | CreateBlockPointerType (const CompilerType &function_type) |
CompilerType | CreateArrayType (const CompilerType &element_type, size_t element_count, bool is_vector) |
CompilerType | CreateEnumerationType (llvm::StringRef name, clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, const Declaration &decl, const CompilerType &integer_qual_type, bool is_scoped) |
CompilerType | GetIntTypeFromBitSize (size_t bit_size, bool is_signed) |
CompilerType | GetPointerSizedIntType (bool is_signed) |
plugin::dwarf::DWARFASTParser * | GetDWARFParser () override |
PDBASTParser * | GetPDBParser () override |
npdb::PdbAstBuilder * | GetNativePDBParser () override |
void | CompleteTagDecl (clang::TagDecl *) |
void | CompleteObjCInterfaceDecl (clang::ObjCInterfaceDecl *) |
bool | LayoutRecordType (const clang::RecordDecl *record_decl, uint64_t &size, uint64_t &alignment, llvm::DenseMap< const clang::FieldDecl *, uint64_t > &field_offsets, llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &base_offsets, llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &vbase_offsets) |
CompilerDecl | GetCompilerDecl (clang::Decl *decl) |
Creates a CompilerDecl from the given Decl with the current TypeSystemClang instance as its typesystem. | |
ConstString | DeclGetName (void *opaque_decl) override |
ConstString | DeclGetMangledName (void *opaque_decl) override |
CompilerDeclContext | DeclGetDeclContext (void *opaque_decl) override |
CompilerType | DeclGetFunctionReturnType (void *opaque_decl) override |
size_t | DeclGetFunctionNumArguments (void *opaque_decl) override |
CompilerType | DeclGetFunctionArgumentType (void *opaque_decl, size_t arg_idx) override |
std::vector< lldb_private::CompilerContext > | DeclGetCompilerContext (void *opaque_decl) override |
Scalar | DeclGetConstantValue (void *opaque_decl) override |
CompilerType | GetTypeForDecl (void *opaque_decl) override |
CompilerDeclContext | CreateDeclContext (clang::DeclContext *ctx) |
Creates a CompilerDeclContext from the given DeclContext with the current TypeSystemClang instance as its typesystem. | |
std::vector< CompilerDecl > | DeclContextFindDeclByName (void *opaque_decl_ctx, ConstString name, const bool ignore_using_decls) 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 |
std::vector< lldb_private::CompilerContext > | DeclContextGetCompilerContext (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 | IsVectorType (lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size) override |
bool | IsAggregateType (lldb::opaque_compiler_type_t type) override |
bool | IsAnonymousType (lldb::opaque_compiler_type_t type) override |
bool | IsBeingDefined (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 | IsConst (lldb::opaque_compiler_type_t type) override |
bool | IsCStringType (lldb::opaque_compiler_type_t type, uint32_t &length) |
bool | IsDefined (lldb::opaque_compiler_type_t type) override |
bool | IsFloatingPointType (lldb::opaque_compiler_type_t type, uint32_t &count, bool &is_complex) 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 |
bool | IsFunctionType (lldb::opaque_compiler_type_t type) override |
uint32_t | IsHomogeneousAggregate (lldb::opaque_compiler_type_t type, CompilerType *base_type_ptr) 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 | 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 | IsEnumerationType (lldb::opaque_compiler_type_t type, bool &is_signed) override |
bool | IsScopedEnumerationType (lldb::opaque_compiler_type_t type) override |
bool | IsPolymorphicClass (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 | IsRuntimeGeneratedType (lldb::opaque_compiler_type_t type) override |
This is used by swift. | |
bool | IsPointerType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type) override |
bool | IsPointerOrReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type) override |
bool | IsReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type, bool *is_rvalue) override |
bool | IsScalarType (lldb::opaque_compiler_type_t type) override |
bool | IsTypedefType (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 |
bool | IsForcefullyCompleted (lldb::opaque_compiler_type_t type) override |
ConstString | GetTypeName (lldb::opaque_compiler_type_t type, bool base_only) 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 |
unsigned | GetTypeQualifiers (lldb::opaque_compiler_type_t type) override |
CompilerType | GetArrayElementType (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override |
CompilerType | GetArrayType (lldb::opaque_compiler_type_t type, uint64_t size) override |
CompilerType | GetCanonicalType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetFullyUnqualifiedType (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 | GetNonReferenceType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetPointeeType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetPointerType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetLValueReferenceType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetRValueReferenceType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetAtomicType (lldb::opaque_compiler_type_t type) override |
CompilerType | AddConstModifier (lldb::opaque_compiler_type_t type) override |
CompilerType | AddPtrAuthModifier (lldb::opaque_compiler_type_t type, uint32_t payload) override |
CompilerType | AddVolatileModifier (lldb::opaque_compiler_type_t type) override |
CompilerType | AddRestrictModifier (lldb::opaque_compiler_type_t type) override |
CompilerType | CreateTypedef (lldb::opaque_compiler_type_t type, const char *name, const CompilerDeclContext &decl_ctx, uint32_t opaque_payload) override |
Using the current type, create a new typedef to that type using "typedef_name" as the name and "decl_ctx" as the decl context. | |
CompilerType | GetTypedefedType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetBasicTypeFromAST (lldb::BasicType basic_type) override |
CompilerType | CreateGenericFunctionPrototype () override |
const llvm::fltSemantics & | GetFloatTypeSemantics (size_t byte_size) override |
std::optional< uint64_t > | GetByteSize (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) |
std::optional< uint64_t > | GetBitSize (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override |
lldb::Encoding | GetEncoding (lldb::opaque_compiler_type_t type, uint64_t &count) override |
lldb::Format | GetFormat (lldb::opaque_compiler_type_t type) override |
std::optional< size_t > | GetTypeBitAlign (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override |
llvm::Expected< uint32_t > | GetNumChildren (lldb::opaque_compiler_type_t type, bool omit_empty_base_classes, const ExecutionContext *exe_ctx) override |
CompilerType | GetBuiltinTypeByName (ConstString name) override |
lldb::BasicType | GetBasicTypeEnumeration (lldb::opaque_compiler_type_t type) override |
void | ForEachEnumerator (lldb::opaque_compiler_type_t type, std::function< bool(const CompilerType &integer_type, ConstString name, const llvm::APSInt &value)> const &callback) 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 |
CompilerDecl | GetStaticFieldWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name) 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 |
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 |
CompilerType | GetDirectNestedTypeWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name) override |
bool | IsTemplateType (lldb::opaque_compiler_type_t type) override |
size_t | GetNumTemplateArguments (lldb::opaque_compiler_type_t type, bool expand_pack) override |
lldb::TemplateArgumentKind | GetTemplateArgumentKind (lldb::opaque_compiler_type_t type, size_t idx, bool expand_pack) override |
CompilerType | GetTypeTemplateArgument (lldb::opaque_compiler_type_t type, size_t idx, bool expand_pack) override |
std::optional< CompilerType::IntegralTemplateArgument > | GetIntegralTemplateArgument (lldb::opaque_compiler_type_t type, size_t idx, bool expand_pack) override |
CompilerType | GetTypeForFormatters (void *type) override |
uint32_t | CountDeclLevels (clang::DeclContext *frame_decl_ctx, clang::DeclContext *child_decl_ctx, ConstString *child_name=nullptr, CompilerType *child_type=nullptr) |
clang::CXXMethodDecl * | AddMethodToCXXRecordType (lldb::opaque_compiler_type_t type, llvm::StringRef name, const char *mangled_name, const CompilerType &method_type, lldb::AccessType access, bool is_virtual, bool is_static, bool is_inline, bool is_explicit, bool is_attr_used, bool is_artificial) |
void | AddMethodOverridesForCXXRecordType (lldb::opaque_compiler_type_t type) |
std::unique_ptr< clang::CXXBaseSpecifier > | CreateBaseClassSpecifier (lldb::opaque_compiler_type_t type, lldb::AccessType access, bool is_virtual, bool base_of_class) |
bool | TransferBaseClasses (lldb::opaque_compiler_type_t type, std::vector< std::unique_ptr< clang::CXXBaseSpecifier > > bases) |
clang::EnumConstantDecl * | AddEnumerationValueToEnumerationType (const CompilerType &enum_type, const Declaration &decl, const char *name, int64_t enum_value, uint32_t enum_value_bit_size) |
clang::EnumConstantDecl * | AddEnumerationValueToEnumerationType (const CompilerType &enum_type, const Declaration &decl, const char *name, const llvm::APSInt &value) |
CompilerType | GetEnumerationIntegerType (CompilerType type) |
Returns the underlying integer type for an enum type. | |
LLVM_DUMP_METHOD void | dump (lldb::opaque_compiler_type_t type) const override |
Convenience LLVM-style dump method for use in the debugger only. | |
void | Dump (llvm::raw_ostream &output) override |
void | DumpFromSymbolFile (Stream &s, llvm::StringRef symbol_name) |
Dump clang AST types from the symbol file. | |
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. | |
clang::ClassTemplateDecl * | ParseClassTemplateDecl (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, lldb::AccessType access_type, const char *parent_name, int tag_decl_kind, const TypeSystemClang::TemplateParameterInfos &template_param_infos) |
clang::BlockDecl * | CreateBlockDeclaration (clang::DeclContext *ctx, OptionalClangModuleID owning_module) |
clang::UsingDirectiveDecl * | CreateUsingDirectiveDeclaration (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, clang::NamespaceDecl *ns_decl) |
clang::UsingDecl * | CreateUsingDeclaration (clang::DeclContext *current_decl_ctx, OptionalClangModuleID owning_module, clang::NamedDecl *target) |
clang::VarDecl * | CreateVariableDeclaration (clang::DeclContext *decl_context, OptionalClangModuleID owning_module, const char *name, clang::QualType type) |
clang::DeclarationName | GetDeclarationName (llvm::StringRef name, const CompilerType &function_clang_type) |
clang::LangOptions * | GetLangOpts () const |
clang::SourceManager * | GetSourceMgr () const |
bool | SetDeclIsForcefullyCompleted (const clang::TagDecl *td) |
std::string | PrintTemplateParams (const TemplateParameterInfos &template_param_infos) |
Return the template parameters (including surrounding <>) in string form. | |
![]() | |
TypeSystem () | |
~TypeSystem () override | |
virtual bool | isA (const void *ClassID) const =0 |
virtual void | Finalize () |
Free up any resources associated with this TypeSystem. | |
virtual plugin::dwarf::DWARFASTParser * | GetDWARFParser () |
virtual PDBASTParser * | GetPDBParser () |
virtual npdb::PdbAstBuilder * | GetNativePDBParser () |
virtual SymbolFile * | GetSymbolFile () 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 std::vector< lldb_private::CompilerContext > | DeclGetCompilerContext (void *opaque_decl) |
virtual Scalar | DeclGetConstantValue (void *opaque_decl) |
virtual CompilerType | GetTypeForDecl (void *opaque_decl)=0 |
virtual std::vector< CompilerDecl > | DeclContextFindDeclByName (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)=0 |
virtual bool | DeclContextIsContainedInLookup (void *opaque_decl_ctx, void *other_opaque_decl_ctx)=0 |
virtual lldb::LanguageType | DeclContextGetLanguage (void *opaque_decl_ctx)=0 |
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 | 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. | |
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 | IsMemberFunctionPointerType (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 bool | IsForcefullyCompleted (lldb::opaque_compiler_type_t type) |
virtual uint32_t | GetPointerByteSize ()=0 |
virtual unsigned | GetPtrAuthKey (lldb::opaque_compiler_type_t type)=0 |
virtual unsigned | GetPtrAuthDiscriminator (lldb::opaque_compiler_type_t type)=0 |
virtual bool | GetPtrAuthAddressDiversity (lldb::opaque_compiler_type_t type)=0 |
virtual ConstString | GetTypeName (lldb::opaque_compiler_type_t type, bool BaseOnly)=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 | 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 const llvm::fltSemantics & | GetFloatTypeSemantics (size_t byte_size)=0 |
virtual std::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 llvm::Expected< 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 CompilerDecl | GetStaticFieldWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name) |
virtual 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)=0 |
virtual uint32_t | GetIndexOfChildWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name, bool omit_empty_base_classes)=0 |
virtual size_t | GetIndexOfChildMemberWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name, bool omit_empty_base_classes, std::vector< uint32_t > &child_indexes)=0 |
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 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 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. | |
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. | |
virtual void | Dump (llvm::raw_ostream &output)=0 |
Dump a textual representation of the internal TypeSystem state to the given stream. | |
virtual bool | IsRuntimeGeneratedType (lldb::opaque_compiler_type_t type)=0 |
This is used by swift. | |
virtual bool | IsPointerOrReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type)=0 |
virtual unsigned | GetTypeQualifiers (lldb::opaque_compiler_type_t type)=0 |
virtual std::optional< size_t > | GetTypeBitAlign (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope)=0 |
virtual CompilerType | GetBasicTypeFromAST (lldb::BasicType basic_type)=0 |
virtual CompilerType | CreateGenericFunctionPrototype () |
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 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 () |
bool | GetHasForcefullyCompletedTypes () const |
![]() | |
PluginInterface ()=default | |
virtual | ~PluginInterface ()=default |
virtual llvm::StringRef | GetPluginName ()=0 |
PluginInterface (const PluginInterface &)=delete | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
static bool | classof (const TypeSystem *ts) |
static llvm::StringRef | GetPluginNameStatic () |
static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Module *module, Target *target) |
static LanguageSet | GetSupportedLanguagesForTypes () |
static LanguageSet | GetSupportedLanguagesForExpressions () |
static void | Initialize () |
static void | Terminate () |
static TypeSystemClang * | GetASTContext (clang::ASTContext *ast_ctx) |
static void | DumpDeclHiearchy (clang::Decl *decl) |
static void | DumpDeclContextHiearchy (clang::DeclContext *decl_ctx) |
static bool | GetCompleteDecl (clang::ASTContext *ast, clang::Decl *decl) |
static lldb::BasicType | GetBasicTypeEnumeration (llvm::StringRef name) |
static clang::DeclContext * | GetDeclContextForType (clang::QualType type) |
static clang::DeclContext * | GetDeclContextForType (const CompilerType &type) |
static bool | AreTypesSame (CompilerType type1, CompilerType type2, bool ignore_qualifiers=false) |
static bool | IsOperator (llvm::StringRef name, clang::OverloadedOperatorKind &op_kind) |
static clang::AccessSpecifier | ConvertAccessTypeToAccessSpecifier (lldb::AccessType access) |
static clang::AccessSpecifier | UnifyAccessSpecifiers (clang::AccessSpecifier lhs, clang::AccessSpecifier rhs) |
static clang::DeclContext * | GetAsDeclContext (clang::FunctionDecl *function_decl) |
static bool | CheckOverloadedOperatorKindParameterCount (bool is_method, clang::OverloadedOperatorKind op_kind, uint32_t num_params) |
static CompilerType | GetFloatTypeFromBitSize (clang::ASTContext *ast, size_t bit_size) |
static void | SetOwningModule (clang::Decl *decl, OptionalClangModuleID owning_module) |
Set the owning module for decl . | |
static clang::DeclContext * | DeclContextGetAsDeclContext (const CompilerDeclContext &dc) |
static clang::ObjCMethodDecl * | DeclContextGetAsObjCMethodDecl (const CompilerDeclContext &dc) |
static clang::CXXMethodDecl * | DeclContextGetAsCXXMethodDecl (const CompilerDeclContext &dc) |
static clang::FunctionDecl * | DeclContextGetAsFunctionDecl (const CompilerDeclContext &dc) |
static clang::NamespaceDecl * | DeclContextGetAsNamespaceDecl (const CompilerDeclContext &dc) |
static ClangASTMetadata * | DeclContextGetMetaData (const CompilerDeclContext &dc, const clang::Decl *object) |
static clang::ASTContext * | DeclContextGetTypeSystemClang (const CompilerDeclContext &dc) |
static bool | IsCXXClassType (const CompilerType &type) |
static bool | IsObjCClassType (const CompilerType &type) |
static bool | IsObjCClassTypeAndHasIVars (const CompilerType &type, bool check_superclass) |
static bool | IsObjCObjectOrInterfaceType (const CompilerType &type) |
static bool | IsObjCObjectPointerType (const CompilerType &type, CompilerType *target_type=nullptr) |
static bool | IsClassType (lldb::opaque_compiler_type_t type) |
static bool | IsEnumType (lldb::opaque_compiler_type_t type) |
static std::optional< std::string > | GetCXXClassName (const CompilerType &type) |
static uint32_t | GetNumPointeeChildren (clang::QualType type) |
static clang::FieldDecl * | AddFieldToRecordType (const CompilerType &type, llvm::StringRef name, const CompilerType &field_type, lldb::AccessType access, uint32_t bitfield_bit_size) |
static void | BuildIndirectFields (const CompilerType &type) |
static void | SetIsPacked (const CompilerType &type) |
static clang::VarDecl * | AddVariableToRecordType (const CompilerType &type, llvm::StringRef name, const CompilerType &var_type, lldb::AccessType access) |
static void | SetIntegerInitializerForVariable (clang::VarDecl *var, const llvm::APInt &init_value) |
Initializes a variable with an integer value. | |
static void | SetFloatingInitializerForVariable (clang::VarDecl *var, const llvm::APFloat &init_value) |
Initializes a variable with a floating point value. | |
static bool | SetObjCSuperClass (const CompilerType &type, const CompilerType &superclass_compiler_type) |
static bool | AddObjCClassProperty (const CompilerType &type, const char *property_name, const CompilerType &property_compiler_type, clang::ObjCIvarDecl *ivar_decl, const char *property_setter_name, const char *property_getter_name, uint32_t property_attributes, ClangASTMetadata *metadata) |
static clang::ObjCMethodDecl * | AddMethodToObjCObjectType (const CompilerType &type, const char *name, const CompilerType &method_compiler_type, bool is_artificial, bool is_variadic, bool is_objc_direct_call) |
static bool | SetHasExternalStorage (lldb::opaque_compiler_type_t type, bool has_extern) |
static bool | StartTagDeclarationDefinition (const CompilerType &type) |
static bool | CompleteTagDeclarationDefinition (const CompilerType &type) |
static CompilerType | CreateMemberPointerType (const CompilerType &type, const CompilerType &pointee_type) |
static void | DumpTypeName (const CompilerType &type) |
static clang::EnumDecl * | GetAsEnumDecl (const CompilerType &type) |
static clang::RecordDecl * | GetAsRecordDecl (const CompilerType &type) |
static clang::TagDecl * | GetAsTagDecl (const CompilerType &type) |
static clang::TypedefNameDecl * | GetAsTypedefDecl (const CompilerType &type) |
static clang::CXXRecordDecl * | GetAsCXXRecordDecl (lldb::opaque_compiler_type_t type) |
static clang::ObjCInterfaceDecl * | GetAsObjCInterfaceDecl (const CompilerType &type) |
static lldb::opaque_compiler_type_t | GetOpaqueCompilerType (clang::ASTContext *ast, lldb::BasicType basic_type) |
static clang::QualType | GetQualType (lldb::opaque_compiler_type_t type) |
static clang::QualType | GetCanonicalQualType (lldb::opaque_compiler_type_t type) |
static void | RequireCompleteType (CompilerType type) |
Complete a type from debug info, or mark it as forcefully completed if there is no definition of the type in the current Module. | |
![]() | |
static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Module *module) |
static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Target *target) |
static bool | SupportsLanguageStatic (lldb::LanguageType language) |
Private Types | |
typedef llvm::DenseMap< const clang::Decl *, ClangASTMetadata > | DeclMetadataMap |
typedef llvm::DenseMap< const clang::Type *, ClangASTMetadata > | TypeMetadataMap |
typedef llvm::DenseMap< const clang::CXXRecordDecl *, clang::AccessSpecifier > | CXXRecordDeclAccessMap |
Private Member Functions | |
clang::PrintingPolicy | GetTypePrintingPolicy () |
Returns the PrintingPolicy used when generating the internal type names. | |
std::string | GetTypeNameForDecl (const clang::NamedDecl *named_decl, bool qualified=true) |
Returns the internal type name for the given NamedDecl using the type printing policy. | |
const clang::ClassTemplateSpecializationDecl * | GetAsTemplateSpecialization (lldb::opaque_compiler_type_t type) |
bool | IsTypeImpl (lldb::opaque_compiler_type_t type, llvm::function_ref< bool(clang::QualType)> predicate) const |
void | LogCreation () const |
Emits information about this TypeSystem into the expression log. | |
TypeSystemClang (const TypeSystemClang &) | |
const TypeSystemClang & | operator= (const TypeSystemClang &) |
void | CreateASTContext () |
Creates the internal ASTContext. | |
void | SetTargetTriple (llvm::StringRef target_triple) |
Private Attributes | |
std::string | m_target_triple |
std::unique_ptr< clang::ASTContext > | m_ast_up |
std::unique_ptr< clang::LangOptions > | m_language_options_up |
std::unique_ptr< clang::FileManager > | m_file_manager_up |
std::unique_ptr< clang::SourceManager > | m_source_manager_up |
std::unique_ptr< clang::DiagnosticsEngine > | m_diagnostics_engine_up |
std::unique_ptr< clang::DiagnosticConsumer > | m_diagnostic_consumer_up |
std::shared_ptr< clang::TargetOptions > | m_target_options_rp |
std::unique_ptr< clang::TargetInfo > | m_target_info_up |
std::unique_ptr< clang::IdentifierTable > | m_identifier_table_up |
std::unique_ptr< clang::SelectorTable > | m_selector_table_up |
std::unique_ptr< clang::Builtin::Context > | m_builtins_up |
std::unique_ptr< clang::HeaderSearch > | m_header_search_up |
std::unique_ptr< clang::ModuleMap > | m_module_map_up |
std::unique_ptr< DWARFASTParserClang > | m_dwarf_ast_parser_up |
std::unique_ptr< PDBASTParser > | m_pdb_ast_parser_up |
std::unique_ptr< npdb::PdbAstBuilder > | m_native_pdb_ast_parser_up |
std::unique_ptr< clang::MangleContext > | m_mangle_ctx_up |
uint32_t | m_pointer_byte_size = 0 |
bool | m_ast_owned = false |
std::string | m_display_name |
A string describing what this TypeSystemClang represents (e.g., AST for debug information, an expression, some other utility ClangAST). | |
DeclMetadataMap | m_decl_metadata |
Maps Decls to their associated ClangASTMetadata. | |
TypeMetadataMap | m_type_metadata |
Maps Types to their associated ClangASTMetadata. | |
CXXRecordDeclAccessMap | m_cxx_record_decl_access |
Maps CXXRecordDecl to their most recent added method/field's AccessSpecifier. | |
clang::Sema * | m_sema = nullptr |
The sema associated that is currently used to build this ASTContext. | |
Static Private Attributes | |
static char | ID |
Additional Inherited Members | |
![]() | |
SymbolFile * | m_sym_file = nullptr |
bool | m_has_forcefully_completed_types = false |
Used for reporting statistics. | |
A TypeSystem implementation based on Clang.
This class uses a single clang::ASTContext as the backend for storing its types and declarations. Every clang::ASTContext should also just have a single associated TypeSystemClang instance that manages it.
The clang::ASTContext instance can either be created by TypeSystemClang itself or it can adopt an existing clang::ASTContext (for example, when it is necessary to provide a TypeSystem interface for an existing clang::ASTContext that was created by clang::CompilerInstance).
Definition at line 109 of file TypeSystemClang.h.
typedef void(* lldb_private::TypeSystemClang::CompleteObjCInterfaceDeclCallback) (void *baton, clang::ObjCInterfaceDecl *) |
Definition at line 115 of file TypeSystemClang.h.
typedef void(* lldb_private::TypeSystemClang::CompleteTagDeclCallback) (void *baton, clang::TagDecl *) |
Definition at line 114 of file TypeSystemClang.h.
|
private |
Definition at line 1210 of file TypeSystemClang.h.
|
private |
Definition at line 1201 of file TypeSystemClang.h.
|
private |
Definition at line 1205 of file TypeSystemClang.h.
|
explicit |
Constructs a TypeSystemClang with an ASTContext using the given triple.
name | The name for the TypeSystemClang (for logging purposes) |
triple | The llvm::Triple used for the ASTContext. The triple defines certain characteristics of the ASTContext and its types (e.g., whether certain primitive types exist or what their signedness is). |
Definition at line 496 of file TypeSystemClang.cpp.
References CreateASTContext(), LogCreation(), m_display_name, and SetTargetTriple().
|
explicit |
Constructs a TypeSystemClang that uses an existing ASTContext internally.
Useful when having an existing ASTContext created by Clang.
name | The name for the TypeSystemClang (for logging purposes) |
existing_ctxt | An existing ASTContext. |
|
override |
Definition at line 520 of file TypeSystemClang.cpp.
References Finalize().
|
private |
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4594 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
clang::EnumConstantDecl * TypeSystemClang::AddEnumerationValueToEnumerationType | ( | const CompilerType & | enum_type, |
const Declaration & | decl, | ||
const char * | name, | ||
const llvm::APSInt & | value | ||
) |
Definition at line 8488 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::TypeSystemSPWrapper::GetSharedPointer(), lldb_private::CompilerType::GetTypeSystem(), lldbassert, and SetMemberOwningModule().
clang::EnumConstantDecl * TypeSystemClang::AddEnumerationValueToEnumerationType | ( | const CompilerType & | enum_type, |
const Declaration & | decl, | ||
const char * | name, | ||
int64_t | enum_value, | ||
uint32_t | enum_value_bit_size | ||
) |
Definition at line 8536 of file TypeSystemClang.cpp.
References AddEnumerationValueToEnumerationType(), GetEnumerationIntegerType(), and lldb_private::CompilerType::IsIntegerType().
Referenced by AddEnumerationValueToEnumerationType(), PDBASTParser::AddEnumValue(), lldb_private::SymbolFileCTF::CreateEnum(), and DWARFASTParserClang::ParseChildEnumerators().
|
static |
Definition at line 7415 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), ConvertAccessTypeToObjCIvarAccessControl(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), getASTContext(), lldb_private::CompilerType::GetCompleteType(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), and SetMemberOwningModule().
Referenced by lldb_private::npdb::UdtRecordCompleter::AddMember(), PDBASTParser::AddRecordMembers(), lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), lldb_private::SymbolFileCTF::CompleteType(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), DWARFASTParserClang::ParseRustVariantPart(), DWARFASTParserClang::ParseSingleMember(), and SystemRuntimeMacOSX::ReadLibdispatchTSDIndexes().
void TypeSystemClang::AddMethodOverridesForCXXRecordType | ( | lldb::opaque_compiler_type_t | type | ) |
Definition at line 7909 of file TypeSystemClang.cpp.
References GetAsCXXRecordDecl().
Referenced by DWARFASTParserClang::CompleteRecordType(), and PDBASTParser::CompleteTypeFromUDT().
clang::CXXMethodDecl * TypeSystemClang::AddMethodToCXXRecordType | ( | lldb::opaque_compiler_type_t | type, |
llvm::StringRef | name, | ||
const char * | mangled_name, | ||
const CompilerType & | method_type, | ||
lldb::AccessType | access, | ||
bool | is_virtual, | ||
bool | is_static, | ||
bool | is_inline, | ||
bool | is_explicit, | ||
bool | is_attr_used, | ||
bool | is_artificial | ||
) |
Definition at line 7712 of file TypeSystemClang.cpp.
References CheckOverloadedOperatorKindParameterCount(), ConvertAccessTypeToAccessSpecifier(), getASTContext(), GetCanonicalQualType(), GetCXXRecordDeclAccess(), lldb_private::ClangUtil::GetQualType(), IsOperator(), lldb_private::CompilerType::IsValid(), SetCXXRecordDeclAccess(), and SetMemberOwningModule().
Referenced by lldb_private::ClangExpressionDeclMap::AddContextClassType(), lldb_private::npdb::UdtRecordCompleter::AddMethod(), PDBASTParser::AddRecordMethod(), lldb_private::npdb::PdbAstBuilder::CreateFunctionDecl(), and DWARFASTParserClang::ParseCXXMethod().
|
static |
Force this to true because we don't have source locations.
Definition at line 8191 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), GetAsObjCInterfaceDecl(), getASTContext(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), and SetMemberOwningModule().
Referenced by DWARFASTParserClang::ParseObjCMethod().
|
static |
Definition at line 7974 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), GetAsObjCInterfaceDecl(), getASTContext(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), and SetMemberOwningModule().
Referenced by DWARFASTParserClang::DelayedAddObjCClassProperty::Finalize().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4604 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4627 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
static |
Definition at line 7637 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), GetAsRecordDecl(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), and SetMemberOwningModule().
Referenced by PDBASTParser::AddRecordMembers(), and DWARFASTParserClang::CreateStaticMemberVariable().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4617 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
static |
Definition at line 1114 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::ClangUtil::GetQualType(), and lldb_private::CompilerType::GetTypeSystem().
Referenced by CountDeclLevels(), and lldb_private::ItaniumABILanguageRuntime::GetDynamicTypeAndAddress().
bool TypeSystemClang::BaseSpecifierIsEmpty | ( | const clang::CXXBaseSpecifier * | b | ) |
Definition at line 1822 of file TypeSystemClang.cpp.
References RecordHasFields().
Referenced by GetIndexForRecordBase(), and GetNumBaseClasses().
|
static |
Definition at line 7512 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), GetAsRecordDecl(), lldb_private::CompilerType::GetTypeSystem(), SetMemberOwningModule(), and UnifyAccessSpecifiers().
Referenced by lldb_private::npdb::UdtRecordCompleter::complete(), DWARFASTParserClang::CompleteRecordType(), and PDBASTParser::CompleteTypeFromUDT().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3686 of file TypeSystemClang.cpp.
References GetAsRecordDecl().
|
static |
Definition at line 1705 of file TypeSystemClang.cpp.
Referenced by lldb_private::NameSearchContext::AddFunDecl(), AddMethodToCXXRecordType(), and GetDeclarationName().
|
inlinestatic |
Definition at line 120 of file TypeSystemClang.h.
References ID, and lldb_private::TypeSystem::isA().
void TypeSystemClang::CompleteObjCInterfaceDecl | ( | clang::ObjCInterfaceDecl * | decl | ) |
Definition at line 9059 of file TypeSystemClang.cpp.
References lldb_private::SymbolFile::CompleteType(), lldb_private::TypeSystem::GetSymbolFile(), and GetTypeForDecl().
Referenced by lldb_private::ClangExternalASTSourceCallbacks::CompleteType().
void TypeSystemClang::CompleteTagDecl | ( | clang::TagDecl * | decl | ) |
Definition at line 9050 of file TypeSystemClang.cpp.
References lldb_private::SymbolFile::CompleteType(), lldb_private::TypeSystem::GetSymbolFile(), and GetTypeForDecl().
Referenced by lldb_private::ClangExternalASTSourceCallbacks::CompleteType().
|
static |
TODO This really needs to be fixed.
Definition at line 8404 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), and SetCXXRecordDeclAccess().
Referenced by lldb_private::npdb::UdtRecordCompleter::AddMember(), PDBASTParser::AddRecordBases(), PDBASTParser::AddRecordMembers(), PDBASTParser::AddRecordMethod(), lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), lldb_private::npdb::UdtRecordCompleter::complete(), DWARFASTParserClang::CompleteEnumType(), DWARFASTParserClang::CompleteRecordType(), lldb_private::SymbolFileCTF::CompleteType(), lldb_private::ClangASTImporter::CompleteType(), DWARFASTParserClang::CompleteTypeFromDWARF(), PDBASTParser::CompleteTypeFromUDT(), lldb_private::SymbolFileCTF::CreateEnum(), PDBASTParser::CreateLLDBTypeFromPDBType(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), DWARFASTParserClang::ParseEnum(), DWARFASTParserClang::ParseRustVariantPart(), SystemRuntimeMacOSX::ReadLibdispatchTSDIndexes(), and RequireCompleteType().
|
static |
Definition at line 447 of file TypeSystemClang.cpp.
References lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessProtected, and lldb::eAccessPublic.
Referenced by AddFieldToRecordType(), AddMethodToCXXRecordType(), AddVariableToRecordType(), CreateBaseClassSpecifier(), CreateClassTemplateDecl(), and CreateRecordType().
uint32_t TypeSystemClang::CountDeclLevels | ( | clang::DeclContext * | frame_decl_ctx, |
clang::DeclContext * | child_decl_ctx, | ||
ConstString * | child_name = nullptr , |
||
CompilerType * | child_type = nullptr |
||
) |
Definition at line 9368 of file TypeSystemClang.cpp.
References AreTypesSame(), lldb_private::ConstString::AsCString(), CreateDeclContext(), lldb_private::TypeSystem::GetSymbolFile(), GetTypeForDecl(), LLDB_INVALID_DECL_LEVEL, and lldb_private::SymbolFile::ParseDeclsForContext().
Referenced by lldb_private::ClangExpressionDeclMap::SearchFunctionsInSymbolContexts().
CompilerType TypeSystemClang::CreateArrayType | ( | const CompilerType & | element_type, |
size_t | element_count, | ||
bool | is_vector | ||
) |
Definition at line 2236 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), and lldb_private::CompilerType::IsValid().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildArray(), lldb_private::SymbolFileCTF::CreateArray(), lldb_private::npdb::PdbAstBuilder::CreateArrayType(), PDBASTParser::CreateLLDBTypeFromPDBType(), DWARFASTParserClang::ParseArrayType(), and DWARFASTParserClang::ParseSingleMember().
|
private |
Creates the internal ASTContext.
Definition at line 664 of file TypeSystemClang.cpp.
References GetASTMap(), getTargetInfo(), GetTargetTriple(), lldb_private::ThreadSafeDenseMap< _KeyType, _ValueType >::Insert(), lldb_private::FileSystem::Instance(), m_ast_owned, m_ast_up, m_builtins_up, m_diagnostic_consumer_up, m_diagnostics_engine_up, m_file_manager_up, m_identifier_table_up, m_language_options_up, m_selector_table_up, m_source_manager_up, ParseLangArgs(), and SetExternalSource().
Referenced by TypeSystemClang().
std::unique_ptr< clang::CXXBaseSpecifier > TypeSystemClang::CreateBaseClassSpecifier | ( | lldb::opaque_compiler_type_t | type, |
lldb::AccessType | access, | ||
bool | is_virtual, | ||
bool | base_of_class | ||
) |
Definition at line 7919 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), getASTContext(), and GetQualType().
Referenced by lldb_private::npdb::UdtRecordCompleter::AddBaseClassForTypeIndex(), and PDBASTParser::AddRecordBases().
clang::BlockDecl * TypeSystemClang::CreateBlockDeclaration | ( | clang::DeclContext * | ctx, |
OptionalClangModuleID | owning_module | ||
) |
Definition at line 1913 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::GetOrCreateBlockDecl(), and DWARFASTParserClang::ResolveBlockDIE().
CompilerType TypeSystemClang::CreateBlockPointerType | ( | const CompilerType & | function_type | ) |
Definition at line 2227 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::GetOpaqueQualType(), GetType(), and m_ast_up.
Referenced by DWARFASTParserClang::ParseTypeModifier().
ClassTemplateDecl * TypeSystemClang::CreateClassTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
lldb::AccessType | access_type, | ||
llvm::StringRef | class_name, | ||
int | kind, | ||
const TemplateParameterInfos & | infos | ||
) |
Definition at line 1542 of file TypeSystemClang.cpp.
References ClassTemplateAllowsToInstantiationArgs(), ConvertAccessTypeToAccessSpecifier(), CreateTemplateParameterList(), lldb::eAccessNone, getASTContext(), and SetOwningModule().
Referenced by ParseClassTemplateDecl().
ClassTemplateSpecializationDecl * TypeSystemClang::CreateClassTemplateSpecializationDecl | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
clang::ClassTemplateDecl * | class_template_decl, | ||
int | kind, | ||
const TemplateParameterInfos & | infos | ||
) |
Definition at line 1642 of file TypeSystemClang.cpp.
References lldb_private::TypeSystemClang::TemplateParameterInfos::GetArgs(), getASTContext(), lldb_private::TypeSystemClang::TemplateParameterInfos::GetParameterPackArgs(), lldb_private::TypeSystemClang::TemplateParameterInfos::hasParameterPack(), SetOwningModule(), and lldb_private::TypeSystemClang::TemplateParameterInfos::Size().
Referenced by DWARFASTParserClang::ParseStructureLikeDIE().
CompilerType TypeSystemClang::CreateClassTemplateSpecializationType | ( | clang::ClassTemplateSpecializationDecl * | class_template_specialization_decl | ) |
Definition at line 1677 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
Referenced by DWARFASTParserClang::ParseStructureLikeDIE().
CompilerDeclContext TypeSystemClang::CreateDeclContext | ( | clang::DeclContext * | ctx | ) |
Creates a CompilerDeclContext from the given DeclContext with the current TypeSystemClang instance as its typesystem.
The DeclContext has to come from the ASTContext of this TypeSystemClang.
Definition at line 1144 of file TypeSystemClang.cpp.
References getASTContext().
Referenced by CountDeclLevels(), PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::SymbolFileCTF::CreateTypedef(), DeclContextFindDeclByName(), DeclGetDeclContext(), lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(), GetCompilerDeclContextForType(), SymbolFilePDB::GetDeclContextContainingUID(), DWARFASTParserClang::GetDeclContextContainingUIDFromDWARF(), SymbolFilePDB::GetDeclContextForUID(), DWARFASTParserClang::GetDeclContextForUIDFromDWARF(), and lldb_private::npdb::PdbAstBuilder::ToCompilerDeclContext().
CompilerType TypeSystemClang::CreateEnumerationType | ( | llvm::StringRef | name, |
clang::DeclContext * | decl_ctx, | ||
OptionalClangModuleID | owning_module, | ||
const Declaration & | decl, | ||
const CompilerType & | integer_qual_type, | ||
bool | is_scoped | ||
) |
Definition at line 2302 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), and SetOwningModule().
Referenced by lldb_private::SymbolFileCTF::CreateEnum(), lldb_private::npdb::PdbAstBuilder::CreateEnumType(), PDBASTParser::CreateLLDBTypeFromPDBType(), and DWARFASTParserClang::ParseEnum().
FunctionDecl * TypeSystemClang::CreateFunctionDeclaration | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
llvm::StringRef | name, | ||
const CompilerType & | function_Type, | ||
clang::StorageClass | storage, | ||
bool | is_inline | ||
) |
Definition at line 2132 of file TypeSystemClang.cpp.
References getASTContext(), GetDeclarationName(), lldb_private::ClangUtil::GetQualType(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateFunctionDecl(), PDBASTParser::GetDeclForSymbol(), and DWARFASTParserClang::ParseSubroutine().
clang::FunctionTemplateDecl * TypeSystemClang::CreateFunctionTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
clang::FunctionDecl * | func_decl, | ||
const TemplateParameterInfos & | infos | ||
) |
Definition at line 1405 of file TypeSystemClang.cpp.
References CreateTemplateParameterList(), getASTContext(), and SetOwningModule().
Referenced by DWARFASTParserClang::ParseSubroutine().
void TypeSystemClang::CreateFunctionTemplateSpecializationInfo | ( | clang::FunctionDecl * | func_decl, |
clang::FunctionTemplateDecl * | Template, | ||
const TemplateParameterInfos & | infos | ||
) |
Definition at line 1438 of file TypeSystemClang.cpp.
References lldb_private::TypeSystemClang::TemplateParameterInfos::GetArgs().
Referenced by DWARFASTParserClang::ParseSubroutine().
CompilerType TypeSystemClang::CreateFunctionType | ( | const CompilerType & | result_type, |
const CompilerType * | args, | ||
unsigned | num_args, | ||
bool | is_variadic, | ||
unsigned | type_quals, | ||
clang::CallingConv | cc = clang::CC_C , |
||
clang::RefQualifierKind | ref_qual = clang::RQ_None |
||
) |
Definition at line 2164 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), lldb_private::ClangUtil::IsClangType(), and lldbassert.
Referenced by lldb_private::ClangExpressionDeclMap::AddContextClassType(), lldb_private::SymbolFileCTF::CreateFunction(), lldb_private::npdb::PdbAstBuilder::CreateFunctionType(), PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::SymbolFileCTF::ParseFunctions(), and DWARFASTParserClang::ParseSubroutine().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4695 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
|
static |
Definition at line 522 of file TypeSystemClang.cpp.
References lldb_private::Module::GetArchitecture(), lldb_private::Target::GetArchitecture(), lldb_private::Module::GetFileSpec(), lldb_private::FileSpec::GetPath(), lldb_private::ArchSpec::GetTriple(), lldb_private::Target::IsValid(), and lldb_private::ArchSpec::IsValid().
Referenced by Initialize(), and Terminate().
|
static |
Definition at line 8560 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), and lldb_private::CompilerType::IsValid().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType(), and DWARFASTParserClang::ParsePointerToMemberType().
CompilerType TypeSystemClang::CreateObjCClass | ( | llvm::StringRef | name, |
clang::DeclContext * | decl_ctx, | ||
OptionalClangModuleID | owning_module, | ||
bool | isForwardDecl, | ||
bool | isInternal, | ||
ClangASTMetadata * | metadata = nullptr |
||
) |
Definition at line 1799 of file TypeSystemClang.cpp.
References getASTContext(), GetType(), SetMetadata(), and SetOwningModule().
Referenced by CreateRecordType().
ParmVarDecl * TypeSystemClang::CreateParameterDeclaration | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
const char * | name, | ||
const CompilerType & | param_type, | ||
int | storage, | ||
bool | add_decl = false |
||
) |
Definition at line 2202 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateFunctionParameters(), PDBASTParser::GetDeclForSymbol(), and DWARFASTParserClang::ParseChildParameters().
CompilerType TypeSystemClang::CreateRecordType | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
lldb::AccessType | access_type, | ||
llvm::StringRef | name, | ||
int | kind, | ||
lldb::LanguageType | language, | ||
ClangASTMetadata * | metadata = nullptr , |
||
bool | exports_symbols = false |
||
) |
Definition at line 1220 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), CreateObjCClass(), lldb::eAccessNone, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, getASTContext(), GetType(), SetMetadata(), and SetOwningModule().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), lldb_private::SymbolFileCTF::CreateForward(), PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::SymbolFileCTF::CreateRecord(), lldb_private::npdb::PdbAstBuilder::CreateRecordType(), CreateStructForIdentifier(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), DWARFASTParserClang::ParseRustVariantPart(), and DWARFASTParserClang::ParseStructureLikeDIE().
CompilerType TypeSystemClang::CreateStructForIdentifier | ( | llvm::StringRef | type_name, |
const std::initializer_list< std::pair< const char *, CompilerType > > & | type_fields, | ||
bool | packed = false |
||
) |
Definition at line 2262 of file TypeSystemClang.cpp.
References AddFieldToRecordType(), CompleteTagDeclarationDefinition(), CreateRecordType(), lldb::eAccessPublic, lldb::eLanguageTypeC, lldbassert, SetIsPacked(), and StartTagDeclarationDefinition().
Referenced by GetOrCreateStructForIdentifier(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), and lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType().
TemplateTemplateParmDecl * TypeSystemClang::CreateTemplateTemplateParmDecl | ( | const char * | template_name | ) |
Definition at line 1618 of file TypeSystemClang.cpp.
References CreateTemplateParameterList(), and getASTContext().
Referenced by DWARFASTParserClang::ParseTemplateDIE().
|
overridevirtual |
Using the current type, create a new typedef to that type using "typedef_name" as the name and "decl_ctx" as the decl context.
opaque_payload | is an opaque TypePayloadClang. |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4636 of file TypeSystemClang.cpp.
References DeclContextGetAsDeclContext(), getASTContext(), GetQualType(), GetType(), and SetOwningModule().
clang::UsingDecl * TypeSystemClang::CreateUsingDeclaration | ( | clang::DeclContext * | current_decl_ctx, |
OptionalClangModuleID | owning_module, | ||
clang::NamedDecl * | target | ||
) |
Definition at line 1962 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
Referenced by DWARFASTParserClang::GetClangDeclForDIE().
clang::UsingDirectiveDecl * TypeSystemClang::CreateUsingDirectiveDeclaration | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
clang::NamespaceDecl * | ns_decl | ||
) |
Definition at line 1943 of file TypeSystemClang.cpp.
References FindLCABetweenDecls(), getASTContext(), and SetOwningModule().
Referenced by DWARFASTParserClang::GetClangDeclForDIE().
clang::VarDecl * TypeSystemClang::CreateVariableDeclaration | ( | clang::DeclContext * | decl_context, |
OptionalClangModuleID | owning_module, | ||
const char * | name, | ||
clang::QualType | type | ||
) |
Definition at line 1981 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateVariableDecl(), DWARFASTParserClang::GetClangDeclForDIE(), and PDBASTParser::GetDeclForSymbol().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9272 of file TypeSystemClang.cpp.
References lldb_private::ConstString::AsCString(), CreateDeclContext(), GetCompilerDecl(), lldb_private::TypeSystem::GetSymbolFile(), and lldb_private::SymbolFile::ParseDeclsForContext().
|
static |
Definition at line 9568 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangExpressionDeclMap::LookUpLldbClass(), and lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 9553 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by CreateTypedef(), and DWARFASTParserClang::GetClangDeclForDIE().
|
static |
Definition at line 9576 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 9584 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangASTSource::AddNamespace(), and DWARFASTParserClang::GetClangDeclForDIE().
|
static |
Definition at line 9560 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangASTSource::FindObjCMethodDecls(), lldb_private::ClangExpressionDeclMap::LookUpLldbObjCClass(), and lldb_private::ClangUserExpression::ScanContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9496 of file TypeSystemClang.cpp.
References InsertCompilerContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9531 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeObjC, lldb::eLanguageTypeUnknown, and GetMetadata().
|
static |
Definition at line 9592 of file TypeSystemClang.cpp.
References GetMetadata(), and lldb_private::CompilerDeclContext::GetTypeSystem().
Referenced by lldb_private::ClangUserExpression::ScanContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9450 of file TypeSystemClang.cpp.
References GetTypePrintingPolicy().
Referenced by InsertCompilerContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9467 of file TypeSystemClang.cpp.
References GetTypeNameForDecl().
|
static |
Definition at line 9599 of file TypeSystemClang.cpp.
References getASTContext(), and lldb_private::CompilerDeclContext::GetTypeSystem().
Referenced by lldb_private::ClangASTSource::AddNamespace().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9477 of file TypeSystemClang.cpp.
References GetMetadata().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9503 of file TypeSystemClang.cpp.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9221 of file TypeSystemClang.cpp.
References DeclGetName(), GetCompilerKind(), and InsertCompilerContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9255 of file TypeSystemClang.cpp.
References getASTContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9151 of file TypeSystemClang.cpp.
References CreateDeclContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9237 of file TypeSystemClang.cpp.
References GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9168 of file TypeSystemClang.cpp.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9157 of file TypeSystemClang.cpp.
References GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9121 of file TypeSystemClang.cpp.
References getMangleContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9111 of file TypeSystemClang.cpp.
Referenced by DeclGetCompilerContext().
|
overridevirtual |
Convenience LLVM-style dump method for use in the debugger only.
In contrast to the other Dump()
methods this directly invokes clang::QualType::dump()
.
Implements lldb_private::TypeSystem.
Definition at line 8580 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Reimplemented in lldb_private::ScratchTypeSystemClang.
Definition at line 8588 of file TypeSystemClang.cpp.
References GetTranslationUnitDecl().
Referenced by lldb_private::ScratchTypeSystemClang::Dump(), lldb_private::npdb::PdbAstBuilder::Dump(), and SymbolFilePDB::DumpClangAST().
|
static |
Definition at line 2380 of file TypeSystemClang.cpp.
References DumpDeclContextHiearchy().
Referenced by DumpDeclContextHiearchy(), and DumpDeclHiearchy().
|
static |
Definition at line 2394 of file TypeSystemClang.cpp.
References DumpDeclContextHiearchy().
void TypeSystemClang::DumpFromSymbolFile | ( | Stream & | s, |
llvm::StringRef | symbol_name | ||
) |
Dump clang AST types from the symbol file.
[in] | s | A stream to send the dumped AST node(s) to |
[in] | symbol_name | The name of the symbol to dump, if it is empty dump all the symbols |
Definition at line 8592 of file TypeSystemClang.cpp.
References lldb_private::Stream::AsRawOstream(), lldb_private::CompilerType::dump(), GetAsTagDecl(), getASTContext(), GetAsTypedefDecl(), GetCanonicalQualType(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::ClangUtil::GetQualType(), lldb_private::TypeList::GetSize(), lldb_private::TypeSystem::GetSymbolFile(), lldb_private::TypeList::GetTypeAtIndex(), and lldb_private::SymbolFile::GetTypes().
|
overridevirtual |
Dump the type to stdout.
Implements lldb_private::TypeSystem.
Definition at line 8859 of file TypeSystemClang.cpp.
References lldb_private::ClangASTMetadata::Dump(), DumpTypeDescription(), GetMetadata(), and lldb_private::ClangUtil::GetQualType().
Referenced by DumpTypeDescription(), and GetBitSize().
|
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 8872 of file TypeSystemClang.cpp.
References lldb::eDescriptionLevelVerbose, getASTContext(), GetCompleteType(), lldb_private::Stream::GetIndentLevel(), GetQualType(), GetTypeNameForDecl(), lldb_private::Stream::PutCString(), RemoveWrappingTypes(), and lldb_private::Stream::Write().
|
static |
Definition at line 8961 of file TypeSystemClang.cpp.
References DumpTypeName(), lldb_private::ClangUtil::GetCanonicalQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::ClangUtil::IsClangType(), and lldb_private::ClangUtil::RemoveFastQualifiers().
Referenced by DumpTypeName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 8735 of file TypeSystemClang.cpp.
References lldb_private::DumpDataExtractor(), DumpEnumValue(), DumpTypeValue(), lldb_private::CompilerType::DumpTypeValue(), lldb::eFormatBinary, lldb::eFormatBoolean, lldb::eFormatBytes, lldb::eFormatBytesWithASCII, lldb::eFormatChar, lldb::eFormatCharArray, lldb::eFormatCharPrintable, lldb::eFormatComplex, lldb::eFormatCString, lldb::eFormatDecimal, lldb::eFormatDefault, lldb::eFormatEnum, lldb::eFormatFloat, lldb::eFormatHex, lldb::eFormatHexUppercase, lldb::eFormatOctal, lldb::eFormatOSType, lldb::eFormatPointer, lldb::eFormatUnicode16, lldb::eFormatUnicode32, lldb::eFormatUnicode8, lldb::eFormatUnsigned, lldb::eFormatVectorOfChar, lldb::eFormatVectorOfFloat32, lldb::eFormatVectorOfFloat64, lldb::eFormatVectorOfSInt16, lldb::eFormatVectorOfSInt32, lldb::eFormatVectorOfSInt64, lldb::eFormatVectorOfSInt8, lldb::eFormatVectorOfUInt128, lldb::eFormatVectorOfUInt16, lldb::eFormatVectorOfUInt32, lldb::eFormatVectorOfUInt64, lldb::eFormatVectorOfUInt8, getASTContext(), GetCompleteType(), lldb_private::CompilerType::GetFormat(), GetQualType(), GetType(), IsAggregateType(), LLDB_INVALID_ADDRESS, and UINT32_MAX.
Referenced by DumpTypeValue().
bool TypeSystemClang::FieldIsBitfield | ( | clang::FieldDecl * | field, |
uint32_t & | bitfield_bit_size | ||
) |
Definition at line 1744 of file TypeSystemClang.cpp.
References getASTContext(), and UINT32_MAX.
Referenced by GetChildCompilerTypeAtIndex().
|
overridevirtual |
Free up any resources associated with this TypeSystem.
Done before removing all the TypeSystems from the TypeSystemMap.
Reimplemented from lldb_private::TypeSystem.
Reimplemented in lldb_private::ScratchTypeSystemClang.
Definition at line 600 of file TypeSystemClang.cpp.
References lldb_private::ThreadSafeDenseMap< _KeyType, _ValueType >::Erase(), GetASTMap(), m_ast_owned, m_ast_up, m_builtins_up, m_diagnostics_engine_up, m_identifier_table_up, m_language_options_up, m_selector_table_up, m_source_manager_up, m_target_info_up, and m_target_options_rp.
Referenced by lldb_private::ScratchTypeSystemClang::Finalize(), and ~TypeSystemClang().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 5571 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4250 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4266 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), and GetType().
|
static |
Definition at line 7401 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
Referenced by AddMethodOverridesForCXXRecordType(), PDBASTParser::AddRecordBases(), DWARFASTParserClang::CompleteRecordType(), PDBASTParser::CompleteTypeFromPDB(), PDBASTParser::CompleteTypeFromUDT(), PDBASTParser::CreateLLDBTypeFromPDBType(), DWARFASTParserClang::ParseStructureLikeDIE(), and TransferBaseClasses().
|
static |
|
static |
Definition at line 7371 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType().
|
static |
Definition at line 7406 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by AddMethodToObjCObjectType(), AddObjCClassProperty(), IsObjCClassTypeAndHasIVars(), and SetObjCSuperClass().
|
static |
Definition at line 7379 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by AddVariableToRecordType(), BuildIndirectFields(), CanPassInRegisters(), and SetIsPacked().
|
static |
Definition at line 7387 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetAsTagDecl().
Referenced by DumpFromSymbolFile(), and DWARFASTParserClang::ParseTypeFromClangModule().
ASTContext & TypeSystemClang::getASTContext | ( | ) | const |
Returns the clang::ASTContext instance managed by this TypeSystemClang.
Definition at line 637 of file TypeSystemClang.cpp.
References m_ast_up.
Referenced by AddEnumerationValueToEnumerationType(), PDBASTParser::AddEnumValue(), AddFieldToRecordType(), AddMethodToCXXRecordType(), AddMethodToObjCObjectType(), AddObjCClassProperty(), AddPtrAuthModifier(), PDBASTParser::AddRecordMembers(), lldb_private::AppleObjCTypeEncodingParser::BuildObjCObjectPointerType(), lldb_private::AppleObjCTypeEncodingParser::BuildType(), lldb_private::npdb::PdbAstBuilder::CompleteTagDecl(), lldb_private::ClangASTImporter::CopyType(), CreateArrayType(), CreateBaseClassSpecifier(), CreateBlockDeclaration(), CreateClassTemplateDecl(), CreateClassTemplateSpecializationDecl(), CreateClassTemplateSpecializationType(), CreateDeclContext(), CreateEnumerationType(), CreateFunctionDeclaration(), CreateFunctionTemplateDecl(), CreateFunctionType(), CreateGenericFunctionPrototype(), PDBASTParser::CreateLLDBTypeFromPDBType(), CreateObjCClass(), CreateParameterDeclaration(), lldb_private::npdb::PdbAstBuilder::CreatePointerType(), CreateRecordType(), lldb_private::npdb::PdbAstBuilder::CreateSimpleType(), CreateTemplateTemplateParmDecl(), CreateTypedef(), CreateUsingDeclaration(), CreateUsingDirectiveDeclaration(), CreateVariableDeclaration(), DeclContextGetTypeSystemClang(), DeclGetConstantValue(), lldb_private::ClangASTImporter::DeportType(), lldb_private::ClangExpressionDeclMap::DeportType(), DumpFromSymbolFile(), DumpTypeDescription(), DumpTypeValue(), DWARFASTParserClang::ExtractIntFromFormValue(), FieldIsBitfield(), lldb_private::ScratchTypeSystemClang::ForgetSource(), GetArrayType(), lldb_private::NameSearchContext::GetASTContext(), GetAtomicType(), GetBasicType(), GetBitSize(), GetBuiltinTypeForDWARFEncodingAndBitSize(), GetBuiltinTypeForEncodingAndBitSize(), GetBuiltinTypeForPDBEncodingAndBitSize(), GetChildCompilerTypeAtIndex(), GetCompilerDecl(), GetCompleteDecl(), GetCompleteType(), GetCStringType(), GetDeclarationName(), PDBASTParser::GetDeclForSymbol(), GetDirectBaseClassAtIndex(), GetDirectNestedTypeWithName(), GetDisplayTypeName(), GetFieldAtIndex(), GetFloatTypeSemantics(), GetFullyUnqualifiedType(), GetIndexOfChildMemberWithName(), GetIntTypeFromBitSize(), GetLValueReferenceType(), getMangleContext(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNumChildren(), GetNumMemberFunctions(), GetOrCreateClangModule(), GetPointerSizedIntType(), GetPointerType(), GetRValueReferenceType(), GetStaticFieldWithName(), getTargetInfo(), GetTranslationUnitDecl(), GetType(), GetTypeBitAlign(), GetTypeForIdentifier(), GetTypeInfo(), GetTypePrintingPolicy(), GetUniqueNamespaceDeclaration(), GetVirtualBaseClassAtIndex(), lldb_private::ClangASTSource::InstallASTContext(), IsCompleteType(), IsHomogeneousAggregate(), LogCreation(), DWARFASTParserClang::ParseSubroutine(), DWARFASTParserClang::ParseTemplateDIE(), PrintTemplateParams(), SetExternalSource(), and SetObjCSuperClass().
|
static |
Definition at line 708 of file TypeSystemClang.cpp.
References GetASTMap(), and lldb_private::ThreadSafeDenseMap< _KeyType, _ValueType >::Lookup().
Referenced by lldb_private::ClangASTImporter::GetDeclMetadata(), and lldb_private::ClangASTImporter::importRecordLayoutFromOrigin().
|
private |
Definition at line 7233 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
Referenced by GetIntegralTemplateArgument(), GetTemplateArgumentKind(), and GetTypeTemplateArgument().
|
static |
Definition at line 7392 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType(), DumpFromSymbolFile(), and lldb_private::npdb::PdbAstBuilder::GetOrCreateTypedefDecl().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4587 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
CompilerType TypeSystemClang::GetBasicType | ( | lldb::BasicType | type | ) |
Definition at line 875 of file TypeSystemClang.cpp.
References getASTContext(), and GetOpaqueCompilerType().
Referenced by lldb_private::ClangExpressionDeclMap::AddContextClassType(), lldb_private::ClangExpressionDeclMap::AddOneGenericVariable(), lldb_private::SymbolFileCTF::CreateEnum(), lldb_private::SymbolFileCTF::CreateInteger(), PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::npdb::PdbAstBuilder::GetBasicType(), GetBasicTypeFromAST(), GetBuiltinTypeByName(), GetBuiltinTypeForPDBEncodingAndBitSize(), GetPointerByteSize(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), DWARFASTParserClang::ParseEnum(), DWARFASTParserClang::ParseSubroutine(), DWARFASTParserClang::ParseTemplateDIE(), and DWARFASTParserClang::ParseTypeModifier().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5497 of file TypeSystemClang.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeChar16, lldb::eBasicTypeChar32, lldb::eBasicTypeChar8, lldb::eBasicTypeDouble, lldb::eBasicTypeFloat, lldb::eBasicTypeHalf, lldb::eBasicTypeInt, lldb::eBasicTypeInt128, lldb::eBasicTypeInvalid, lldb::eBasicTypeLong, lldb::eBasicTypeLongDouble, lldb::eBasicTypeLongLong, lldb::eBasicTypeNullPtr, lldb::eBasicTypeObjCClass, lldb::eBasicTypeObjCID, lldb::eBasicTypeObjCSel, lldb::eBasicTypeOther, lldb::eBasicTypeShort, lldb::eBasicTypeSignedChar, lldb::eBasicTypeSignedWChar, lldb::eBasicTypeUnsignedChar, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedInt128, lldb::eBasicTypeUnsignedLong, lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeUnsignedShort, lldb::eBasicTypeUnsignedWChar, lldb::eBasicTypeVoid, and GetQualType().
|
static |
Definition at line 805 of file TypeSystemClang.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeChar, lldb::eBasicTypeDouble, lldb::eBasicTypeFloat, lldb::eBasicTypeInt, lldb::eBasicTypeInt128, lldb::eBasicTypeInvalid, lldb::eBasicTypeLong, lldb::eBasicTypeLongDouble, lldb::eBasicTypeLongLong, lldb::eBasicTypeNullPtr, lldb::eBasicTypeObjCID, lldb::eBasicTypeObjCSel, lldb::eBasicTypeShort, lldb::eBasicTypeSignedChar, lldb::eBasicTypeSignedWChar, lldb::eBasicTypeUnsignedChar, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedInt128, lldb::eBasicTypeUnsignedLong, lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeUnsignedShort, lldb::eBasicTypeUnsignedWChar, lldb::eBasicTypeVoid, and lldb::eBasicTypeWChar.
Referenced by lldb_private::SymbolFileCTF::CreateInteger(), and GetBuiltinTypeByName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4691 of file TypeSystemClang.cpp.
References GetBasicType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4729 of file TypeSystemClang.cpp.
References DumpTypeDescription(), lldb_private::ObjCLanguageRuntime::Get(), getASTContext(), GetCanonicalQualType(), GetCompleteType(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::StreamString::GetString(), and GetType().
Referenced by GetByteSize().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 5492 of file TypeSystemClang.cpp.
References GetBasicType(), and GetBasicTypeEnumeration().
CompilerType TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize | ( | llvm::StringRef | type_name, |
uint32_t | dw_ate, | ||
uint32_t | bit_size | ||
) |
Definition at line 886 of file TypeSystemClang.cpp.
References getASTContext(), GetBuiltinTypeForDWARFEncodingAndBitSize(), lldb_private::GetLog(), lldb_private::ClangUtil::GetQualType(), getTargetInfo(), GetType(), LLDB_LOG, QualTypeMatchesBitSize(), and lldb_private::Types.
Referenced by GetBuiltinTypeForDWARFEncodingAndBitSize(), DWARFASTParserClang::ParseEnum(), and DWARFASTParserClang::ParseTypeModifier().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 745 of file TypeSystemClang.cpp.
References lldb::eEncodingIEEE754, lldb::eEncodingInvalid, lldb::eEncodingSint, lldb::eEncodingUint, lldb::eEncodingVector, getASTContext(), GetType(), and QualTypeMatchesBitSize().
Referenced by lldb_private::ClangExpressionDeclMap::AddOneRegister(), GetBuiltinTypeForPDBEncodingAndBitSize(), and DWARFASTParserClang::ParseSingleMember().
|
inline |
Definition at line 831 of file TypeSystemClang.h.
References GetBitSize().
Referenced by GetPointerByteSize().
|
inlinestatic |
Definition at line 1125 of file TypeSystemClang.h.
Referenced by AddEnumerationValueToEnumerationType(), AddMethodToCXXRecordType(), DumpFromSymbolFile(), ForEachEnumerator(), GetArrayType(), GetAsCXXRecordDecl(), GetAsTemplateSpecialization(), GetBitSize(), GetCanonicalType(), GetChildCompilerTypeAtIndex(), GetDirectBaseClassAtIndex(), GetDirectNestedTypeWithName(), GetEncoding(), GetEnumerationIntegerType(), GetFieldAtIndex(), GetFormat(), GetFunctionArgumentCount(), GetIndexOfChildMemberWithName(), GetIndexOfChildWithName(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNumberOfFunctionArguments(), GetNumDirectBaseClasses(), GetNumFields(), GetNumMemberFunctions(), GetNumTemplateArguments(), GetNumVirtualBaseClasses(), GetPtrAuthAddressDiversity(), GetPtrAuthDiscriminator(), GetPtrAuthKey(), GetStaticFieldWithName(), GetVirtualBaseClassAtIndex(), IsAggregateType(), IsAnonymousType(), IsArrayType(), IsBeingDefined(), IsClassType(), IsCStringType(), IsEnumerationType(), IsEnumType(), IsFloatingPointType(), IsHomogeneousAggregate(), IsIntegerType(), IsPointerOrReferenceType(), IsPointerType(), IsPolymorphicClass(), IsPossibleDynamicType(), IsReferenceType(), IsScopedEnumerationType(), IsTypeImpl(), IsVectorType(), IsVoidType(), and SetHasExternalStorage().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4284 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6192 of file TypeSystemClang.cpp.
References lldb_private::ConstString::AsCString(), FieldIsBitfield(), lldb_private::ObjCLanguageRuntime::Get(), getASTContext(), lldb_private::ExecutionContext::GetBestExecutionContextScope(), lldb_private::CompilerType::GetBitSize(), lldb_private::ObjCLanguageRuntime::GetByteOffsetForIvar(), lldb_private::CompilerType::GetByteSize(), GetCanonicalQualType(), lldb_private::CompilerType::GetChildCompilerTypeAtIndex(), lldb_private::CompilerType::GetCompleteType(), GetCompleteType(), lldb_private::ConstString::GetCString(), lldb_private::ValueObject::GetName(), lldb_private::CompilerType::GetNumChildren(), GetNumChildren(), GetPointeeType(), lldb_private::ExecutionContext::GetProcessPtr(), GetQualType(), GetType(), lldb_private::CompilerType::GetTypeName(), GetVBaseBitOffset(), INT32_MAX, lldb_private::CompilerType::IsAggregateType(), lldb_private::CompilerType::IsVoidType(), LLDB_INVALID_IVAR_OFFSET, RecordHasFields(), and RemoveWrappingTypes().
|
inline |
Creates a CompilerDecl from the given Decl with the current TypeSystemClang instance as its typesystem.
The Decl has to come from the ASTContext of this TypeSystemClang.
Definition at line 544 of file TypeSystemClang.h.
References getASTContext().
Referenced by DeclContextFindDeclByName(), SymbolFilePDB::GetDeclForUID(), DWARFASTParserClang::GetDeclForUIDFromDWARF(), GetMemberFunctionAtIndex(), and lldb_private::npdb::PdbAstBuilder::ToCompilerDecl().
|
overridevirtual |
Returns the direct parent context of specified type.
Reimplemented from lldb_private::TypeSystem.
Definition at line 2512 of file TypeSystemClang.cpp.
References CreateDeclContext(), and GetDeclContextForType().
|
static |
Definition at line 2416 of file TypeSystemClang.cpp.
|
inline |
Definition at line 181 of file TypeSystemClang.h.
References getASTContext(), and GetCompleteDecl().
Referenced by lldb_private::ClangASTImporter::CompleteObjCInterfaceDecl(), lldb_private::ClangASTImporter::CompleteTagDecl(), lldb_private::ClangASTImporter::CompleteTagDeclWithOrigin(), lldb_private::ClangASTSource::FindCompleteType(), lldb_private::ClangASTSource::FindObjCMethodDeclsWithOrigin(), GetCompleteDecl(), PDBASTParser::GetDeclForSymbol(), and lldb_private::ClangASTImporter::importRecordLayoutFromOrigin().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3762 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteQualType(), and GetQualType().
Referenced by DumpTypeDescription(), DumpTypeValue(), GetAsTemplateSpecialization(), GetBitSize(), GetChildCompilerTypeAtIndex(), GetDirectBaseClassAtIndex(), GetDirectNestedTypeWithName(), GetFieldAtIndex(), GetIndexOfChildMemberWithName(), GetIndexOfChildWithName(), GetMemberFunctionAtIndex(), GetNumDirectBaseClasses(), GetNumFields(), GetNumMemberFunctions(), GetNumTemplateArguments(), GetNumVirtualBaseClasses(), GetStaticFieldWithName(), GetTypeBitAlign(), GetVirtualBaseClassAtIndex(), IsHomogeneousAggregate(), and IsPolymorphicClass().
CompilerType TypeSystemClang::GetCStringType | ( | bool | is_const | ) |
Definition at line 1104 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
|
static |
Definition at line 3699 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
clang::AccessSpecifier TypeSystemClang::GetCXXRecordDeclAccess | ( | const clang::CXXRecordDecl * | object | ) |
Definition at line 2499 of file TypeSystemClang.cpp.
References m_cxx_record_decl_access.
Referenced by AddMethodToCXXRecordType().
clang::DeclarationName TypeSystemClang::GetDeclarationName | ( | llvm::StringRef | name, |
const CompilerType & | function_clang_type | ||
) |
Definition at line 2075 of file TypeSystemClang.cpp.
References CheckOverloadedOperatorKindParameterCount(), getASTContext(), lldb_private::ClangUtil::GetQualType(), and IsOperator().
Referenced by CreateFunctionDeclaration().
|
static |
Definition at line 2552 of file TypeSystemClang.cpp.
References GetDeclContextForType(), and RemoveWrappingTypes().
Referenced by GetCompilerDeclContextForType(), PDBASTParser::GetDeclContextForSymbol(), GetDeclContextForType(), IsRuntimeGeneratedType(), DWARFASTParserClang::ParseCXXMethod(), DWARFASTParserClang::ParseEnum(), DWARFASTParserClang::ParseRustVariantPart(), and DWARFASTParserClang::ParseStructureLikeDIE().
|
static |
Definition at line 2507 of file TypeSystemClang.cpp.
References GetDeclContextForType(), and lldb_private::ClangUtil::GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5886 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), lldb_private::CompilerType::GetDirectBaseClassAtIndex(), GetPointeeType(), GetType(), and RemoveWrappingTypes().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7151 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetType(), and RemoveWrappingTypes().
|
inline |
Returns the display name of this TypeSystemClang that indicates what purpose it serves in LLDB.
Used for example in logs.
Definition at line 162 of file TypeSystemClang.h.
References m_display_name.
Referenced by lldb_private::ClangASTSource::CompleteNamespaceMap(), lldb_private::ClangASTSource::CompleteType(), lldb_private::ClangASTSource::FindExternalLexicalDecls(), lldb_private::ClangASTSource::FindExternalVisibleDecls(), lldb_private::ClangASTSource::FindObjCMethodDecls(), lldb_private::ClangASTSource::FindObjCPropertyAndIvarDecls(), and LogCreation().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3803 of file TypeSystemClang.cpp.
References getASTContext(), and GetQualType().
Referenced by GetNumChildren().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9069 of file TypeSystemClang.cpp.
References m_dwarf_ast_parser_up.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4800 of file TypeSystemClang.cpp.
References lldb::eEncodingIEEE754, lldb::eEncodingInvalid, lldb::eEncodingSint, lldb::eEncodingUint, GetCanonicalQualType(), lldb_private::CompilerType::GetEncoding(), GetType(), and RemoveWrappingTypes().
CompilerType TypeSystemClang::GetEnumerationIntegerType | ( | CompilerType | type | ) |
Returns the underlying integer type for an enum type.
If the given type is invalid or not an enum-type, the function returns an invalid CompilerType.
Definition at line 8549 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4318 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetEnumerationIntegerType(), and GetType().
Referenced by AddEnumerationValueToEnumerationType(), PDBASTParser::AddEnumValue(), and GetEnumerationIntegerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5709 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetObjCFieldAtIndex(), GetType(), and RemoveWrappingTypes().
|
static |
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4712 of file TypeSystemClang.cpp.
References getASTContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5145 of file TypeSystemClang.cpp.
References lldb::eFormatBoolean, lldb::eFormatBytes, lldb::eFormatChar, lldb::eFormatComplex, lldb::eFormatComplexInteger, lldb::eFormatDecimal, lldb::eFormatDefault, lldb::eFormatEnum, lldb::eFormatFloat, lldb::eFormatHex, lldb::eFormatUnicode16, lldb::eFormatUnicode32, lldb::eFormatUnicode8, lldb::eFormatUnsigned, lldb::eFormatVoid, GetCanonicalQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4310 of file TypeSystemClang.cpp.
References getASTContext(), GetFullyUnqualifiedType_Impl(), GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3120 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4324 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4335 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4350 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
uint32_t TypeSystemClang::GetIndexForRecordBase | ( | const clang::RecordDecl * | record_decl, |
const clang::CXXBaseSpecifier * | base_spec, | ||
bool | omit_empty_base_classes | ||
) |
Definition at line 6642 of file TypeSystemClang.cpp.
References BaseSpecifierIsEmpty(), and UINT32_MAX.
Referenced by GetIndexOfChildMemberWithName().
uint32_t TypeSystemClang::GetIndexForRecordChild | ( | const clang::RecordDecl * | record_decl, |
clang::NamedDecl * | canonical_decl, | ||
bool | omit_empty_base_classes | ||
) |
Definition at line 6670 of file TypeSystemClang.cpp.
References GetNumBaseClasses(), and UINT32_MAX.
Referenced by GetIndexOfChildMemberWithName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6720 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetIndexForRecordBase(), GetIndexForRecordChild(), lldb_private::CompilerType::GetIndexOfChildMemberWithName(), GetNumBaseClasses(), GetPointeeType(), GetType(), lldb_private::CompilerType::IsAggregateType(), ObjCDeclHasIVars(), RemoveWrappingTypes(), and UINT32_MAX.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6958 of file TypeSystemClang.cpp.
References lldb_private::ConstString::AsCString(), GetCanonicalQualType(), GetCompleteType(), lldb_private::CompilerType::GetIndexOfChildWithName(), GetType(), lldb_private::CompilerType::GetTypeName(), lldb_private::CompilerType::IsAggregateType(), ObjCDeclHasIVars(), RecordHasFields(), RemoveWrappingTypes(), and UINT32_MAX.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7351 of file TypeSystemClang.cpp.
References GetAsTemplateSpecialization(), GetNthTemplateArgument(), and GetType().
CompilerType TypeSystemClang::GetIntTypeFromBitSize | ( | size_t | bit_size, |
bool | is_signed | ||
) |
Definition at line 2331 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
Referenced by GetPointerSizedIntType().
|
inline |
Definition at line 1135 of file TypeSystemClang.h.
References m_language_options_up.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4572 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
clang::MangleContext * TypeSystemClang::getMangleContext | ( | ) |
Definition at line 713 of file TypeSystemClang.cpp.
References getASTContext(), and m_mangle_ctx_up.
Referenced by DeclGetMangledName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4422 of file TypeSystemClang.cpp.
References lldb::eMemberFunctionKindConstructor, lldb::eMemberFunctionKindDestructor, lldb::eMemberFunctionKindInstanceMethod, lldb::eMemberFunctionKindStaticMethod, lldb::eMemberFunctionKindUnknown, getASTContext(), GetCanonicalQualType(), GetCompilerDecl(), GetCompleteQualType(), GetCompleteType(), GetType(), and RemoveWrappingTypes().
ClangASTMetadata * TypeSystemClang::GetMetadata | ( | const clang::Decl * | object | ) |
Definition at line 2476 of file TypeSystemClang.cpp.
References m_decl_metadata.
Referenced by DeclContextGetLanguage(), DeclContextGetMetaData(), DeclContextIsClassMethod(), DumpTypeDescription(), lldb_private::ClangASTImporter::GetDeclMetadata(), GetDynamicArrayInfo(), IsForcefullyCompleted(), IsPossibleDynamicType(), IsRuntimeGeneratedType(), RecordHasFields(), and SetDeclIsForcefullyCompleted().
ClangASTMetadata * TypeSystemClang::GetMetadata | ( | const clang::Type * | object | ) |
Definition at line 2483 of file TypeSystemClang.cpp.
References m_type_metadata.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4020 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC, lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeObjC, getASTContext(), GetCanonicalQualType(), lldb_private::CompilerType::GetMinimumLanguage(), and GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9081 of file TypeSystemClang.cpp.
References m_native_pdb_ast_parser_up.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4539 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
uint32_t TypeSystemClang::GetNumBaseClasses | ( | const clang::CXXRecordDecl * | cxx_record_decl, |
bool | omit_empty_base_classes | ||
) |
Definition at line 1827 of file TypeSystemClang.cpp.
References BaseSpecifierIsEmpty().
Referenced by GetIndexForRecordChild(), and GetIndexOfChildMemberWithName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3107 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5332 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteQualType(), GetDisplayTypeName(), GetDynamicArrayInfo(), lldb_private::CompilerType::GetNumChildren(), GetNumPointeeChildren(), GetPointeeType(), GetQualType(), lldb_private::TypeSystem::GetSymbolFile(), GetType(), lldb_private::CompilerType::IsAggregateType(), ObjCDeclHasIVars(), RecordHasFields(), and RemoveWrappingTypes().
Referenced by GetChildCompilerTypeAtIndex().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5814 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), lldb_private::CompilerType::GetNumDirectBaseClasses(), GetPointeeType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5597 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4362 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
static |
Definition at line 6059 of file TypeSystemClang.cpp.
References RemoveWrappingTypes().
Referenced by GetNumChildren().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7194 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5866 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
static |
Definition at line 2000 of file TypeSystemClang.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeChar, lldb::eBasicTypeChar16, lldb::eBasicTypeChar32, lldb::eBasicTypeChar8, lldb::eBasicTypeDouble, lldb::eBasicTypeDoubleComplex, lldb::eBasicTypeFloat, lldb::eBasicTypeFloatComplex, lldb::eBasicTypeHalf, lldb::eBasicTypeInt, lldb::eBasicTypeInt128, lldb::eBasicTypeLong, lldb::eBasicTypeLongDouble, lldb::eBasicTypeLongDoubleComplex, lldb::eBasicTypeLongLong, lldb::eBasicTypeNullPtr, lldb::eBasicTypeObjCClass, lldb::eBasicTypeObjCID, lldb::eBasicTypeObjCSel, lldb::eBasicTypeShort, lldb::eBasicTypeSignedChar, lldb::eBasicTypeSignedWChar, lldb::eBasicTypeUnsignedChar, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedInt128, lldb::eBasicTypeUnsignedLong, lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeUnsignedShort, lldb::eBasicTypeUnsignedWChar, lldb::eBasicTypeVoid, and lldb::eBasicTypeWChar.
Referenced by GetBasicType().
OptionalClangModuleID TypeSystemClang::GetOrCreateClangModule | ( | llvm::StringRef | name, |
OptionalClangModuleID | parent, | ||
bool | is_framework = false , |
||
bool | is_explicit = false |
||
) |
Synthesize a clang::Module and return its ID or a default-constructed ID.
Definition at line 1186 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::OptionalClangModuleID::GetValue(), m_diagnostics_engine_up, m_header_search_up, m_language_options_up, m_module_map_up, m_source_manager_up, and m_target_info_up.
Referenced by DWARFASTParserClang::GetOwningClangModule(), and RemapModule().
CompilerType TypeSystemClang::GetOrCreateStructForIdentifier | ( | llvm::StringRef | type_name, |
const std::initializer_list< std::pair< const char *, CompilerType > > & | type_fields, | ||
bool | packed = false |
||
) |
Definition at line 2288 of file TypeSystemClang.cpp.
References CreateStructForIdentifier().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9075 of file TypeSystemClang.cpp.
References m_pdb_ast_parser_up.
Referenced by SymbolFilePDB::CompleteType(), SymbolFilePDB::GetDeclContextContainingUID(), SymbolFilePDB::GetDeclContextForUID(), SymbolFilePDB::GetDeclForUID(), SymbolFilePDB::ParseCompileUnitFunctionForPDBFunc(), SymbolFilePDB::ParseDeclsForContext(), and SymbolFilePDB::ResolveTypeUID().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 144 of file TypeSystemClang.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 146 of file TypeSystemClang.h.
Referenced by GetPluginName(), and Initialize().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4546 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
Referenced by GetChildCompilerTypeAtIndex(), GetDirectBaseClassAtIndex(), GetIndexOfChildMemberWithName(), GetNumChildren(), and GetNumDirectBaseClasses().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 866 of file TypeSystemClang.cpp.
References lldb::eBasicTypeVoid, GetBasicType(), GetByteSize(), GetPointerType(), and m_pointer_byte_size.
CompilerType TypeSystemClang::GetPointerSizedIntType | ( | bool | is_signed | ) |
Definition at line 2375 of file TypeSystemClang.cpp.
References getASTContext(), and GetIntTypeFromBitSize().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4555 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
Referenced by GetPointerByteSize().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3005 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2996 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2986 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
inlinestatic |
Definition at line 1118 of file TypeSystemClang.h.
Referenced by AddConstModifier(), AddPtrAuthModifier(), AddRestrictModifier(), AddVolatileModifier(), CreateBaseClassSpecifier(), CreateTypedef(), dump(), DumpTypeDescription(), DumpTypeValue(), GetArrayElementType(), GetAtomicType(), GetBasicTypeEnumeration(), GetChildCompilerTypeAtIndex(), GetCompleteType(), GetDisplayTypeName(), GetFullyUnqualifiedType(), GetFunctionArgumentAtIndex(), GetFunctionArgumentTypeAtIndex(), GetFunctionReturnType(), GetLValueReferenceType(), GetNonReferenceType(), GetNumChildren(), GetPointeeType(), GetPointerType(), GetRValueReferenceType(), GetTypeBitAlign(), GetTypeClass(), GetTypedefedType(), GetTypeInfo(), GetTypeName(), GetTypeQualifiers(), IsCharType(), IsCompleteType(), IsConst(), IsDefined(), IsForcefullyCompleted(), IsRuntimeGeneratedType(), IsTypedefType(), and Verify().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4580 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
|
inline |
Definition at line 174 of file TypeSystemClang.h.
References m_sema.
Referenced by lldb_private::ClangASTSource::getSema().
|
inline |
Definition at line 1138 of file TypeSystemClang.h.
References m_source_manager_up.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 6025 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
static |
Definition at line 578 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeC_plus_plus_03, lldb::eLanguageTypeC_plus_plus_11, lldb::eLanguageTypeC_plus_plus_14, lldb::eLanguageTypeC_plus_plus_17, lldb::eLanguageTypeC_plus_plus_20, lldb::eLanguageTypeObjC_plus_plus, and lldb_private::LanguageSet::Insert().
Referenced by Initialize().
|
static |
Definition at line 560 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC, lldb::eLanguageTypeC11, lldb::eLanguageTypeC89, lldb::eLanguageTypeC99, lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeC_plus_plus_03, lldb::eLanguageTypeC_plus_plus_11, lldb::eLanguageTypeC_plus_plus_14, lldb::eLanguageTypeC_plus_plus_17, lldb::eLanguageTypeC_plus_plus_20, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, and lldb_private::LanguageSet::Insert().
Referenced by Initialize().
TargetInfo * TypeSystemClang::getTargetInfo | ( | ) |
Definition at line 728 of file TypeSystemClang.cpp.
References getASTContext(), getTargetOptions(), m_target_info_up, and m_target_triple.
Referenced by CreateASTContext(), and GetBuiltinTypeForDWARFEncodingAndBitSize().
std::shared_ptr< clang::TargetOptions > & TypeSystemClang::getTargetOptions | ( | ) |
Definition at line 719 of file TypeSystemClang.cpp.
References m_target_options_rp, and m_target_triple.
Referenced by getTargetInfo().
const char * TypeSystemClang::GetTargetTriple | ( | ) |
Definition at line 622 of file TypeSystemClang.cpp.
References m_target_triple.
Referenced by CreateASTContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7290 of file TypeSystemClang.cpp.
References lldb::eTemplateArgumentKindDeclaration, lldb::eTemplateArgumentKindExpression, lldb::eTemplateArgumentKindIntegral, lldb::eTemplateArgumentKindNull, lldb::eTemplateArgumentKindNullPtr, lldb::eTemplateArgumentKindPack, lldb::eTemplateArgumentKindStructuralValue, lldb::eTemplateArgumentKindTemplate, lldb::eTemplateArgumentKindTemplateExpansion, lldb::eTemplateArgumentKindType, GetAsTemplateSpecialization(), and GetNthTemplateArgument().
|
inline |
Definition at line 228 of file TypeSystemClang.h.
References getASTContext().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateDeclInfoForType(), lldb_private::SymbolFileCTF::CreateEnum(), lldb_private::SymbolFileCTF::CreateTypedef(), Dump(), DWARFASTParserClang::GetClangDeclContextContainingDIE(), DWARFASTParserClang::GetClangDeclContextForDIE(), PDBASTParser::GetDeclContextContainingSymbol(), lldb_private::npdb::PdbAstBuilder::GetTranslationUnitDecl(), and DWARFASTParserClang::ParseSubroutine().
|
inline |
Creates a CompilerType from the given QualType with the current TypeSystemClang instance as the CompilerType's typesystem.
qt | The QualType for a type that belongs to the ASTContext of this TypeSystemClang. |
Definition at line 242 of file TypeSystemClang.h.
References getASTContext().
Referenced by AddConstModifier(), lldb_private::NameSearchContext::AddGenericFunDecl(), AddPtrAuthModifier(), AddRestrictModifier(), AddVolatileModifier(), lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), DWARFASTParserClang::CompleteRecordType(), CreateArrayType(), CreateBlockPointerType(), CreateClassTemplateSpecializationType(), CreateEnumerationType(), lldb_private::npdb::PdbAstBuilder::CreateFunctionParameters(), CreateFunctionType(), CreateGenericFunctionPrototype(), CreateObjCClass(), CreateRecordType(), IRForTarget::CreateResultVariable(), CreateTypedef(), DeclGetFunctionArgumentType(), DeclGetFunctionReturnType(), DumpTypeValue(), ForEachEnumerator(), GetArrayElementType(), GetArrayType(), GetAtomicType(), GetBitSize(), GetBuiltinTypeForDWARFEncodingAndBitSize(), GetBuiltinTypeForEncodingAndBitSize(), GetCanonicalType(), GetChildCompilerTypeAtIndex(), GetCStringType(), GetDirectBaseClassAtIndex(), GetDirectNestedTypeWithName(), GetEncoding(), GetEnumerationIntegerType(), GetFieldAtIndex(), GetFullyUnqualifiedType(), GetFunctionArgumentTypeAtIndex(), GetFunctionReturnType(), GetIndexOfChildMemberWithName(), GetIndexOfChildWithName(), GetIntegralTemplateArgument(), GetIntTypeFromBitSize(), GetLValueReferenceType(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNonReferenceType(), GetNumChildren(), GetPointeeType(), GetPointerType(), GetRValueReferenceType(), GetTypedefedType(), GetTypeForDecl(), GetTypeInfo(), GetTypeTemplateArgument(), GetVirtualBaseClassAtIndex(), lldb_private::ClangASTSource::GuardedCopyType(), IsPossibleDynamicType(), IsVectorType(), IRForTarget::MaybeHandleVariable(), lldb_private::AppleObjCTypeEncodingParser::RealizeType(), and IRForTarget::RewritePersistentAlloc().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4793 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteType(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4104 of file TypeSystemClang.cpp.
References GetQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4679 of file TypeSystemClang.cpp.
References GetQualType(), GetType(), and RemoveWrappingTypes().
CompilerType TypeSystemClang::GetTypeForDecl | ( | clang::NamedDecl * | decl | ) |
Definition at line 1150 of file TypeSystemClang.cpp.
References GetTypeForDecl().
Referenced by CompleteObjCInterfaceDecl(), CompleteTagDecl(), CountDeclLevels(), GetTypeForDecl(), and PrepareContextToReceiveMembers().
CompilerType lldb_private::TypeSystemClang::GetTypeForDecl | ( | clang::ObjCInterfaceDecl * | objc_decl | ) |
CompilerType lldb_private::TypeSystemClang::GetTypeForDecl | ( | clang::TagDecl * | decl | ) |
CompilerType TypeSystemClang::GetTypeForDecl | ( | clang::ValueDecl * | value_decl | ) |
Definition at line 1169 of file TypeSystemClang.cpp.
References GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 1134 of file TypeSystemClang.cpp.
References GetTypeForDecl().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7365 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::RemoveFastQualifiers().
|
inline |
Definition at line 261 of file TypeSystemClang.h.
References getASTContext().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3817 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), getASTContext(), GetQualType(), GetType(), lldb_private::CompilerType::GetTypeInfo(), GetTypeInfo(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
Referenced by GetTypeInfo(), IsCStringType(), and IsScalarType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3770 of file TypeSystemClang.cpp.
References GetQualType(), GetTypeNameForDecl(), GetTypePrintingPolicy(), and RemoveWrappingTypes().
|
private |
Returns the internal type name for the given NamedDecl using the type printing policy.
Definition at line 2123 of file TypeSystemClang.cpp.
References GetTypePrintingPolicy().
Referenced by DeclContextGetScopeQualifiedName(), DumpTypeDescription(), and GetTypeName().
|
private |
Returns the PrintingPolicy used when generating the internal type names.
These type names are mostly used for the formatter selection.
Definition at line 2101 of file TypeSystemClang.cpp.
References getASTContext().
Referenced by DeclContextGetName(), GetTypeName(), GetTypeNameForDecl(), and PrintTemplateParams().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4241 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7336 of file TypeSystemClang.cpp.
References GetAsTemplateSpecialization(), GetNthTemplateArgument(), and GetType().
NamespaceDecl * TypeSystemClang::GetUniqueNamespaceDeclaration | ( | const char * | name, |
clang::DeclContext * | decl_ctx, | ||
OptionalClangModuleID | owning_module, | ||
bool | is_inline = false |
||
) |
Definition at line 1849 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
Referenced by PDBASTParser::GetDeclContextContainingSymbol(), lldb_private::npdb::PdbAstBuilder::GetOrCreateNamespaceDecl(), lldb_private::ClangExpressionDeclMap::LookupLocalVarNamespace(), and DWARFASTParserClang::ResolveNamespaceDIE().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5981 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetType(), and RemoveWrappingTypes().
|
static |
Definition at line 590 of file TypeSystemClang.cpp.
References CreateInstance(), GetPluginNameStatic(), GetSupportedLanguagesForExpressions(), GetSupportedLanguagesForTypes(), and lldb_private::PluginManager::RegisterPlugin().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Reimplemented in lldb_private::ScratchTypeSystemClang.
Definition at line 119 of file TypeSystemClang.h.
References ID.
Referenced by lldb_private::ScratchTypeSystemClang::isA().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2775 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
Referenced by DumpTypeValue().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 2796 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2818 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3722 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3177 of file TypeSystemClang.cpp.
References IsTypeImpl(), and m_ast_up.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2942 of file TypeSystemClang.cpp.
References GetQualType().
|
static |
Definition at line 3487 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2946 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteQualType(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2957 of file TypeSystemClang.cpp.
References GetQualType().
bool TypeSystemClang::IsCStringType | ( | lldb::opaque_compiler_type_t | type, |
uint32_t & | length | ||
) |
Definition at line 2961 of file TypeSystemClang.cpp.
References lldb_private::Flags::AnySet(), GetCanonicalQualType(), GetTypeInfo(), lldb_private::CompilerType::IsCharType(), lldb_private::CompilerType::IsValid(), and lldb_private::Flags::Test().
|
static |
Definition at line 3714 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::ItaniumABILanguageRuntime::GetTypeInfo(), DWARFASTParserClang::ParseCXXMethod(), and RequireCompleteType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3442 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 3218 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and IsIntegerType().
|
static |
Definition at line 3495 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3404 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and IsFloatingPointType().
Referenced by IsFloatingPointType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9817 of file TypeSystemClang.cpp.
References GetMetadata(), GetQualType(), and lldb_private::ClangASTMetadata::IsForcefullyCompleted().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3169 of file TypeSystemClang.cpp.
References IsTypeImpl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3015 of file TypeSystemClang.cpp.
References IsTypeImpl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3025 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3199 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
Referenced by IsEnumerationType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3160 of file TypeSystemClang.cpp.
References IsTypeImpl().
|
static |
Definition at line 3468 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType(), and lldb_private::ClangUtil::IsClangType().
Referenced by lldb_private::ClangExpressionDeclMap::LookUpLldbObjCClass(), and lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 8183 of file TypeSystemClang.cpp.
References GetAsObjCInterfaceDecl(), and ObjCDeclHasIVars().
|
static |
Definition at line 3481 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType(), and lldb_private::ClangUtil::IsClangType().
Referenced by DWARFASTParserClang::CompleteRecordType(), lldb_private::ObjCLanguageRuntime::GetRuntimeType(), lldb_private::ObjCLanguageRuntime::LookupInCompleteClassCache(), DWARFASTParserClang::ParseInheritance(), DWARFASTParserClang::ParseObjCMethod(), and DWARFASTParserClang::ParseSingleMember().
|
static |
Definition at line 3732 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), lldb_private::ClangUtil::GetCanonicalQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::ClangUtil::IsClangType(), and lldb_private::CompilerType::SetCompilerType().
Referenced by lldb_private::AppleObjCRuntime::GetObjectDescription(), lldb_private::ObjCLanguageRuntime::GetRuntimeType(), lldb_private::ClangExpressionDeclMap::LookUpLldbObjCClass(), and lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 365 of file TypeSystemClang.cpp.
Referenced by lldb_private::NameSearchContext::AddFunDecl(), AddMethodToCXXRecordType(), and GetDeclarationName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3301 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3248 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3503 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetCompleteType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3536 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), lldb_private::CompilerType::GetCompleteType(), lldb_private::ClangASTMetadata::GetIsDynamicCXXType(), GetMetadata(), GetType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3368 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
This is used by swift.
Implements lldb_private::TypeSystem.
Definition at line 2924 of file TypeSystemClang.cpp.
References GetDeclContextForType(), lldb_private::ClangASTMetadata::GetISAPtr(), GetMetadata(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3666 of file TypeSystemClang.cpp.
References GetTypeInfo().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3234 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7182 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3673 of file TypeSystemClang.cpp.
References GetQualType(), and RemoveWrappingTypes().
|
private |
Definition at line 3134 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), IsTypeImpl(), and RemoveWrappingTypes().
Referenced by IsBlockPointerType(), IsFunctionPointerType(), IsFunctionType(), IsMemberFunctionPointerType(), and IsTypeImpl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2888 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3680 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
bool TypeSystemClang::LayoutRecordType | ( | const clang::RecordDecl * | record_decl, |
uint64_t & | size, | ||
uint64_t & | alignment, | ||
llvm::DenseMap< const clang::FieldDecl *, uint64_t > & | field_offsets, | ||
llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > & | base_offsets, | ||
llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > & | vbase_offsets | ||
) |
Definition at line 9087 of file TypeSystemClang.cpp.
References lldb_private::ClangASTImporter::LayoutRecordType(), m_dwarf_ast_parser_up, m_native_pdb_ast_parser_up, and m_pdb_ast_parser_up.
Referenced by lldb_private::ClangExternalASTSourceCallbacks::layoutRecordType().
|
private |
Emits information about this TypeSystem into the expression log.
Helper method that is used in TypeSystemClang::TypeSystemClang on creation of a new instance.
Definition at line 9844 of file TypeSystemClang.cpp.
References lldb_private::Expressions, getASTContext(), getDisplayName(), lldb_private::GetLog(), and LLDB_LOG.
Referenced by TypeSystemClang().
|
private |
clang::ClassTemplateDecl * TypeSystemClang::ParseClassTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
lldb::AccessType | access_type, | ||
const char * | parent_name, | ||
int | tag_decl_kind, | ||
const TypeSystemClang::TemplateParameterInfos & | template_param_infos | ||
) |
Definition at line 9033 of file TypeSystemClang.cpp.
References CreateClassTemplateDecl(), and lldb_private::TypeSystemClang::TemplateParameterInfos::IsValid().
Referenced by DWARFASTParserClang::ParseStructureLikeDIE().
std::string TypeSystemClang::PrintTemplateParams | ( | const TemplateParameterInfos & | template_param_infos | ) |
Return the template parameters (including surrounding <>) in string form.
Definition at line 1385 of file TypeSystemClang.cpp.
References CreateTemplateParameterList(), lldb_private::TypeSystemClang::TemplateParameterInfos::GetArgs(), getASTContext(), lldb_private::TypeSystemClang::TemplateParameterInfos::GetParameterPackArgs(), GetTypePrintingPolicy(), and lldb_private::TypeSystemClang::TemplateParameterInfos::hasParameterPack().
Referenced by DWARFASTParserClang::GetDIEClassTemplateParams().
bool TypeSystemClang::RecordHasFields | ( | const clang::RecordDecl * | record_decl | ) |
Definition at line 1763 of file TypeSystemClang.cpp.
References GetMetadata(), lldb_private::ClangASTMetadata::IsForcefullyCompleted(), and RecordHasFields().
Referenced by BaseSpecifierIsEmpty(), GetChildCompilerTypeAtIndex(), GetIndexOfChildWithName(), GetNumChildren(), and RecordHasFields().
|
static |
Complete a type from debug info, or mark it as forcefully completed if there is no definition of the type in the current Module.
Call this function in contexts where the usual C++ rules require a type to be complete (base class, member, etc.).
Definition at line 9607 of file TypeSystemClang.cpp.
References CompleteTagDeclarationDefinition(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb_private::ClangUtil::GetAsTagDecl(), lldb_private::CompilerType::GetCompleteType(), lldb_private::CompilerType::GetTypeSystem(), IsCXXClassType(), lldbassert, SetDeclIsForcefullyCompleted(), and StartTagDeclarationDefinition().
Referenced by lldb_private::npdb::UdtRecordCompleter::AddMethod(), lldb_private::npdb::UdtRecordCompleter::complete(), DWARFASTParserClang::CompleteRecordType(), DWARFASTParserClang::ParseArrayType(), and DWARFASTParserClang::ParseSingleMember().
void TypeSystemClang::SetCXXRecordDeclAccess | ( | const clang::CXXRecordDecl * | object, |
clang::AccessSpecifier | access | ||
) |
Definition at line 2490 of file TypeSystemClang.cpp.
References m_cxx_record_decl_access.
Referenced by AddMethodToCXXRecordType(), and CompleteTagDeclarationDefinition().
bool TypeSystemClang::SetDeclIsForcefullyCompleted | ( | const clang::TagDecl * | td | ) |
Definition at line 9833 of file TypeSystemClang.cpp.
References GetMetadata(), lldb_private::TypeSystem::m_has_forcefully_completed_types, and lldb_private::ClangASTMetadata::SetIsForcefullyCompleted().
Referenced by DWARFASTParserClang::CompleteTypeFromDWARF(), and RequireCompleteType().
void TypeSystemClang::SetExternalSource | ( | llvm::IntrusiveRefCntPtr< clang::ExternalASTSource > & | ast_source_up | ) |
Definition at line 630 of file TypeSystemClang.cpp.
References getASTContext().
Referenced by CreateASTContext(), and lldb_private::ScratchTypeSystemClang::ScratchTypeSystemClang().
|
static |
Initializes a variable with a floating point value.
var | The variable to initialize. Must not already have an initializer and must have a floating point type. |
init_value | The float value that the variable should be initialized to. |
Definition at line 7701 of file TypeSystemClang.cpp.
Referenced by PDBASTParser::AddRecordMembers().
void TypeSystemClang::SetFunctionParameters | ( | clang::FunctionDecl * | function_decl, |
llvm::ArrayRef< clang::ParmVarDecl * > | params | ||
) |
Definition at line 2220 of file TypeSystemClang.cpp.
Referenced by lldb_private::npdb::PdbAstBuilder::CreateFunctionParameters(), PDBASTParser::GetDeclForSymbol(), and DWARFASTParserClang::ParseSubroutine().
|
static |
Definition at line 8326 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
Referenced by lldb_private::npdb::PdbAstBuilder::CompleteTagDecl(), lldb_private::ClangASTImporter::CompleteType(), DWARFASTParserClang::CompleteTypeFromDWARF(), PDBASTParser::CompleteTypeFromPDB(), lldb_private::npdb::PdbAstBuilder::CreateEnumType(), PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::npdb::PdbAstBuilder::CreateRecordType(), and DWARFASTParserClang::ParseStructureLikeDIE().
|
static |
Initializes a variable with an integer value.
var | The variable to initialize. Must not already have an initializer and must have an integer or enum type. |
init_value | The integer value that the variable should be initialized to. Has to match the bit width of the variable type. |
Definition at line 7676 of file TypeSystemClang.cpp.
Referenced by PDBASTParser::AddRecordMembers(), and DWARFASTParserClang::CreateStaticMemberVariable().
|
static |
Definition at line 7621 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), GetAsRecordDecl(), and lldb_private::CompilerType::GetTypeSystem().
Referenced by CreateStructForIdentifier(), and DWARFASTParserClang::ParseRustVariantPart().
void TypeSystemClang::SetMetadata | ( | const clang::Decl * | object, |
ClangASTMetadata & | meta_data | ||
) |
Definition at line 2466 of file TypeSystemClang.cpp.
References m_decl_metadata.
Referenced by CreateObjCClass(), CreateRecordType(), DWARFASTParserClang::ParseCXXMethod(), DWARFASTParserClang::ParseStructureLikeDIE(), DWARFASTParserClang::ParseSubroutine(), and SetMetadataAsUserID().
void TypeSystemClang::SetMetadata | ( | const clang::Type * | object, |
ClangASTMetadata & | meta_data | ||
) |
Definition at line 2471 of file TypeSystemClang.cpp.
References m_type_metadata.
void TypeSystemClang::SetMetadataAsUserID | ( | const clang::Decl * | decl, |
lldb::user_id_t | user_id | ||
) |
Definition at line 2452 of file TypeSystemClang.cpp.
References SetMetadata(), and lldb_private::ClangASTMetadata::SetUserID().
Referenced by DWARFASTParserClang::ParseArrayType(), DWARFASTParserClang::ParseChildParameters(), DWARFASTParserClang::ParseObjCMethod(), and DWARFASTParserClang::ParseSingleMember().
void TypeSystemClang::SetMetadataAsUserID | ( | const clang::Type * | type, |
lldb::user_id_t | user_id | ||
) |
Definition at line 2459 of file TypeSystemClang.cpp.
References SetMetadata(), and lldb_private::ClangASTMetadata::SetUserID().
|
static |
Definition at line 7951 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), GetAsObjCInterfaceDecl(), getASTContext(), lldb_private::CompilerType::GetTypeSystem(), and lldb_private::CompilerType::IsValid().
|
static |
Set the owning module for decl
.
Definition at line 1175 of file TypeSystemClang.cpp.
References lldb_private::OptionalClangModuleID::GetValue(), and lldb_private::OptionalClangModuleID::HasValue().
Referenced by CreateBlockDeclaration(), CreateClassTemplateDecl(), CreateClassTemplateSpecializationDecl(), CreateEnumerationType(), CreateFunctionDeclaration(), CreateFunctionTemplateDecl(), CreateObjCClass(), CreateParameterDeclaration(), CreateRecordType(), CreateTypedef(), CreateUsingDeclaration(), CreateUsingDirectiveDeclaration(), CreateVariableDeclaration(), GetUniqueNamespaceDeclaration(), and lldb_private::ClangASTImporter::ASTImporterDelegate::Imported().
void TypeSystemClang::setSema | ( | clang::Sema * | s | ) |
Definition at line 616 of file TypeSystemClang.cpp.
|
private |
Definition at line 626 of file TypeSystemClang.cpp.
References m_target_triple.
Referenced by TypeSystemClang().
|
static |
Definition at line 8379 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType().
Referenced by lldb_private::npdb::UdtRecordCompleter::AddMember(), PDBASTParser::AddRecordBases(), PDBASTParser::AddRecordMembers(), PDBASTParser::AddRecordMethod(), lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), DWARFASTParserClang::CompleteEnumType(), DWARFASTParserClang::CompleteRecordType(), lldb_private::SymbolFileCTF::CompleteType(), lldb_private::npdb::PdbAstBuilder::CreateEnumType(), PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::npdb::PdbAstBuilder::CreateRecordType(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), DWARFASTParserClang::ParseEnum(), DWARFASTParserClang::ParseRustVariantPart(), SystemRuntimeMacOSX::ReadLibdispatchTSDIndexes(), and RequireCompleteType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3694 of file TypeSystemClang.cpp.
|
static |
Definition at line 596 of file TypeSystemClang.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
bool TypeSystemClang::TransferBaseClasses | ( | lldb::opaque_compiler_type_t | type, |
std::vector< std::unique_ptr< clang::CXXBaseSpecifier > > | bases | ||
) |
Definition at line 7932 of file TypeSystemClang.cpp.
References GetAsCXXRecordDecl().
Referenced by PDBASTParser::AddRecordBases(), and DWARFASTParserClang::CompleteRecordType().
|
static |
Definition at line 1731 of file TypeSystemClang.cpp.
Referenced by BuildIndirectFields().
|
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 2770 of file TypeSystemClang.cpp.
References GetQualType().
|
staticprivate |
Definition at line 111 of file TypeSystemClang.h.
|
private |
Definition at line 1195 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Definition at line 1177 of file TypeSystemClang.h.
Referenced by CreateASTContext(), CreateBlockPointerType(), Finalize(), getASTContext(), IsBlockPointerType(), and setSema().
|
private |
Definition at line 1187 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Maps CXXRecordDecl to their most recent added method/field's AccessSpecifier.
Definition at line 1213 of file TypeSystemClang.h.
Referenced by GetCXXRecordDeclAccess(), and SetCXXRecordDeclAccess().
|
private |
Maps Decls to their associated ClangASTMetadata.
Definition at line 1203 of file TypeSystemClang.h.
Referenced by GetMetadata(), and SetMetadata().
|
private |
Definition at line 1182 of file TypeSystemClang.h.
Referenced by CreateASTContext().
|
private |
Definition at line 1181 of file TypeSystemClang.h.
Referenced by CreateASTContext(), Finalize(), and GetOrCreateClangModule().
|
private |
A string describing what this TypeSystemClang represents (e.g., AST for debug information, an expression, some other utility ClangAST).
Useful for logging and debugging.
Definition at line 1199 of file TypeSystemClang.h.
Referenced by getDisplayName(), and TypeSystemClang().
|
private |
Definition at line 1190 of file TypeSystemClang.h.
Referenced by GetDWARFParser(), and LayoutRecordType().
|
private |
Definition at line 1179 of file TypeSystemClang.h.
Referenced by CreateASTContext().
|
private |
Definition at line 1188 of file TypeSystemClang.h.
Referenced by GetOrCreateClangModule().
|
private |
Definition at line 1185 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Definition at line 1178 of file TypeSystemClang.h.
Referenced by CreateASTContext(), Finalize(), GetLangOpts(), and GetOrCreateClangModule().
|
private |
Definition at line 1193 of file TypeSystemClang.h.
Referenced by getMangleContext().
|
private |
Definition at line 1189 of file TypeSystemClang.h.
Referenced by GetOrCreateClangModule().
|
private |
Definition at line 1192 of file TypeSystemClang.h.
Referenced by GetNativePDBParser(), and LayoutRecordType().
|
private |
Definition at line 1191 of file TypeSystemClang.h.
Referenced by GetPDBParser(), and LayoutRecordType().
|
private |
Definition at line 1194 of file TypeSystemClang.h.
Referenced by GetPointerByteSize().
|
private |
Definition at line 1186 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
The sema associated that is currently used to build this ASTContext.
May be null if we are already done parsing this ASTContext or the ASTContext wasn't created by parsing source code.
Definition at line 1218 of file TypeSystemClang.h.
|
private |
Definition at line 1180 of file TypeSystemClang.h.
Referenced by CreateASTContext(), Finalize(), GetOrCreateClangModule(), and GetSourceMgr().
|
private |
Definition at line 1184 of file TypeSystemClang.h.
Referenced by Finalize(), GetOrCreateClangModule(), and getTargetInfo().
|
private |
Definition at line 1183 of file TypeSystemClang.h.
Referenced by Finalize(), and getTargetOptions().
|
private |
Definition at line 1176 of file TypeSystemClang.h.
Referenced by getTargetInfo(), getTargetOptions(), GetTargetTriple(), and SetTargetTriple().
|
private |
Maps Types to their associated ClangASTMetadata.
Definition at line 1207 of file TypeSystemClang.h.
Referenced by GetMetadata(), and SetMetadata().