|
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_sp) |
| 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) |
| std::optional< ClangASTMetadata > | GetMetadata (const clang::Decl *object) |
| std::optional< ClangASTMetadata > | GetMetadata (const clang::Type *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 (const clang::ASTContext &Ctx, 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, llvm::StringRef name, int kind, lldb::LanguageType language, std::optional< ClangASTMetadata > metadata=std::nullopt, 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, 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 isInternal, std::optional< ClangASTMetadata > metadata=std::nullopt) |
| 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, llvm::StringRef asm_label) |
| CompilerType | CreateFunctionType (const CompilerType &result_type, llvm::ArrayRef< CompilerType > 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) |
| CompilerType | CreateBlockPointerType (const CompilerType &function_type) |
| CompilerType | CreateArrayType (const CompilerType &element_type, std::optional< 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, std::optional< clang::EnumExtensibilityAttr::Kind > enum_kind=std::nullopt) |
| CompilerType | GetIntTypeFromBitSize (size_t bit_size, bool is_signed) |
| CompilerType | GetPointerSizedIntType (bool is_signed) |
| CompilerType | GetPointerDiffType (bool is_signed) override |
| CompilerType | GetSizeType () override |
| 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) 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 | IsMemberDataPointerType (lldb::opaque_compiler_type_t type) override |
| bool | IsBlockPointerType (lldb::opaque_compiler_type_t type, CompilerType *function_pointer_type_ptr) override |
| bool | IsIntegerType (lldb::opaque_compiler_type_t type, bool &is_signed) override |
| bool | 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 | HasPointerAuthQualifier (lldb::opaque_compiler_type_t type) override |
| std::optional< uint32_t > | GetTargetAddressSpace (lldb::opaque_compiler_type_t type) const override |
Returns the target address space of type, or std::nullopt if it lives in the default address space. | |
| 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 | AddAddressSpaceModifier (lldb::opaque_compiler_type_t type, uint32_t address_space) 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, lldb::Format format) override |
| llvm::Expected< uint64_t > | GetByteSize (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) |
| llvm::Expected< uint64_t > | GetBitSize (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override |
| lldb::Encoding | GetEncoding (lldb::opaque_compiler_type_t type) override |
| lldb::Format | GetFormat (lldb::opaque_compiler_type_t type) override |
| 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 > | GetDereferencedType (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, std::string &deref_name, uint32_t &deref_byte_size, int32_t &deref_byte_offset, ValueObject *valobj, uint64_t &language_flags) override |
| llvm::Expected< CompilerType > | GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, size_t idx, bool transparent_pointers, bool omit_empty_base_classes, bool ignore_array_bounds, std::string &child_name, uint32_t &child_byte_size, int32_t &child_byte_offset, uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset, bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj, uint64_t &language_flags) override |
| llvm::Expected< uint32_t > | GetIndexOfChildWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name, bool omit_empty_base_classes) override |
| size_t | GetIndexOfChildMemberWithName (lldb::opaque_compiler_type_t type, llvm::StringRef name, bool omit_empty_base_classes, std::vector< uint32_t > &child_indexes) override |
| 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 |
| bool | IsPromotableIntegerType (lldb::opaque_compiler_type_t type) override |
| CompilerType | GetPromotedIntegerType (lldb::opaque_compiler_type_t type) override |
| uint32_t | CountDeclLevels (clang::DeclContext *frame_decl_ctx, clang::DeclContext *child_decl_ctx, ConstString *child_name=nullptr, CompilerType *child_type=nullptr) |
| llvm::SmallVector< clang::ParmVarDecl * > | CreateParameterDeclarations (clang::FunctionDecl *context, const clang::FunctionProtoType &prototype, const llvm::SmallVector< llvm::StringRef > ¶m_names) |
For each parameter type of prototype, creates a clang::ParmVarDecl whose clang::DeclContext is context. | |
| clang::CXXMethodDecl * | AddMethodToCXXRecordType (lldb::opaque_compiler_type_t type, llvm::StringRef name, llvm::StringRef asm_label, const CompilerType &method_type, 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, uint64_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, llvm::StringRef filter, bool show_color) 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, 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) |
| Public Member Functions inherited from lldb_private::TypeSystem | |
| TypeSystem () | |
| ~TypeSystem () override | |
| virtual void | ModulesDidLoad (ModuleList &module_list) |
Called on a target's scratch type systems when the target loads the modules in module_list. | |
| virtual ConstString | GetMangledTypeName (lldb::opaque_compiler_type_t type) |
| Defaults to GetTypeName(type). | |
| 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 LazyBool | ShouldPrintAsOneLiner (void *type, ValueObject *valobj) |
| virtual bool | IsMeaninglessWithoutDynamicResolution (void *type) |
| virtual std::optional< llvm::json::Value > | ReportStatistics () |
| SymbolFile * | GetSymbolFile () const |
| void | SetSymbolFile (SymbolFile *sym_file) |
| Bind this TypeSystem to its owning SymbolFile. | |
| bool | GetHasForcefullyCompletedTypes () const |
| Public Member Functions inherited from lldb_private::PluginInterface | |
| PluginInterface ()=default | |
| virtual | ~PluginInterface ()=default |
| PluginInterface (const PluginInterface &)=delete | |
| PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
| static 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 void | DebuggerInitialize (Debugger &debugger) |
| 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::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 std::optional< 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 | 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, 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) |
| 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 Public Member Functions inherited from lldb_private::TypeSystem | |
| static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Module *module) |
| static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Target *target) |
| static bool | SupportsLanguageStatic (lldb::LanguageType language) |
Private Types | |
| typedef llvm::DenseMap< const clang::Decl *, ClangASTMetadata > | DeclMetadataMap |
| typedef llvm::DenseMap< const clang::Type *, ClangASTMetadata > | TypeMetadataMap |
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. | |
| llvm::Expected< uint64_t > | GetObjCBitSize (clang::QualType qual_type, ExecutionContextScope *exe_scope) |
| 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::DiagnosticOptions > | m_diagnostic_options_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::HeaderSearchOptions > | m_header_search_opts_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::PdbAstBuilderClang > | 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. | |
| 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 | |
| Protected Attributes inherited from lldb_private::TypeSystem | |
| 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 120 of file TypeSystemClang.h.
| typedef void(* lldb_private::TypeSystemClang::CompleteObjCInterfaceDeclCallback) (void *baton, clang::ObjCInterfaceDecl *) |
Definition at line 126 of file TypeSystemClang.h.
| typedef void(* lldb_private::TypeSystemClang::CompleteTagDeclCallback) (void *baton, clang::TagDecl *) |
Definition at line 125 of file TypeSystemClang.h.
|
private |
Definition at line 1246 of file TypeSystemClang.h.
|
private |
Definition at line 1250 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 504 of file TypeSystemClang.cpp.
References CreateASTContext(), LogCreation(), m_display_name, and SetTargetTriple().
Referenced by AddFieldToRecordType(), AddMethodToObjCObjectType(), AddObjCClassProperty(), AddVariableToRecordType(), AreTypesSame(), BuildIndirectFields(), CompleteTagDeclarationDefinition(), CreateMemberPointerType(), DeclContextGetMetaData(), DeclContextGetTypeSystemClang(), GetASTContext(), lldb_private::ScratchTypeSystemClang::GetIsolatedAST(), operator=(), RequireCompleteType(), lldb_private::ScratchTypeSystemClang::ScratchTypeSystemClang(), SetIsPacked(), SetObjCSuperClass(), and TypeSystemClang().
|
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 528 of file TypeSystemClang.cpp.
References Finalize().
|
private |
References TypeSystemClang().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4700 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4677 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 8515 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::TypeSystemSPWrapper::GetSharedPointer(), lldb_private::CompilerType::GetTypeSystem(), lldbassert, SetMemberOwningModule(), and lldb_private::TypeSystem::TypeSystem().
| clang::EnumConstantDecl * TypeSystemClang::AddEnumerationValueToEnumerationType | ( | const CompilerType & | enum_type, |
| const Declaration & | decl, | ||
| const char * | name, | ||
| uint64_t | enum_value, | ||
| uint32_t | enum_value_bit_size ) |
Definition at line 8565 of file TypeSystemClang.cpp.
References AddEnumerationValueToEnumerationType(), lldb_private::CompilerType::IsEnumerationIntegerTypeSigned(), and lldb_private::CompilerType::IsEnumerationType().
Referenced by AddEnumerationValueToEnumerationType().
|
static |
Definition at line 7466 of file TypeSystemClang.cpp.
References lldb_private::Expressions, lldb_private::CompilerType::GetCompleteType(), lldb_private::GetLog(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), LLDB_LOG, SetMemberOwningModule(), and TypeSystemClang().
Referenced by lldb_private::npdb::UdtRecordCompleter::AddMember(), PDBASTParser::AddRecordMembers(), DWARFASTParserClang::AddUnnamedBitfieldToRecordTypeIfNeeded(), 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::ParseSingleMember(), and SystemRuntimeMacOSX::ReadLibdispatchTSDIndexes().
| void TypeSystemClang::AddMethodOverridesForCXXRecordType | ( | lldb::opaque_compiler_type_t | type | ) |
Definition at line 7960 of file TypeSystemClang.cpp.
References GetAsCXXRecordDecl().
| clang::CXXMethodDecl * TypeSystemClang::AddMethodToCXXRecordType | ( | lldb::opaque_compiler_type_t | type, |
| llvm::StringRef | name, | ||
| llvm::StringRef | asm_label, | ||
| const CompilerType & | method_type, | ||
| bool | is_virtual, | ||
| bool | is_static, | ||
| bool | is_inline, | ||
| bool | is_explicit, | ||
| bool | is_attr_used, | ||
| bool | is_artificial ) |
Definition at line 7782 of file TypeSystemClang.cpp.
References CheckOverloadedOperatorKindParameterCount(), CreateParameterDeclarations(), getASTContext(), GetCanonicalQualType(), lldb_private::ClangUtil::GetQualType(), IsOperator(), lldb_private::CompilerType::IsValid(), and SetMemberOwningModule().
|
static |
Force this to true because we don't have source locations.
Definition at line 8229 of file TypeSystemClang.cpp.
References GetAsObjCInterfaceDecl(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), SetMemberOwningModule(), and TypeSystemClang().
|
static |
Definition at line 8024 of file TypeSystemClang.cpp.
References GetAsObjCInterfaceDecl(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), SetMemberOwningModule(), and TypeSystemClang().
Referenced by DWARFASTParserClang::DelayedAddObjCClassProperty::Finalize().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4687 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4722 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
static |
Definition at line 7683 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), SetMemberOwningModule(), and TypeSystemClang().
Referenced by PDBASTParser::AddRecordMembers(), and DWARFASTParserClang::CreateStaticMemberVariable().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4712 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
static |
Definition at line 1251 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), and TypeSystemClang().
Referenced by CountDeclLevels(), lldb_private::ItaniumABIRuntime::GetDynamicTypeAndAddress(), and lldb_private::MicrosoftABIRuntime::GetOffsetToTop().
| bool TypeSystemClang::BaseSpecifierIsEmpty | ( | const clang::CXXBaseSpecifier * | b | ) |
Definition at line 1917 of file TypeSystemClang.cpp.
References RecordHasFields().
Referenced by GetIndexForRecordBase(), and GetNumBaseClasses().
|
static |
Definition at line 7560 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::GetTypeSystem(), SetMemberOwningModule(), and TypeSystemClang().
Referenced by lldb_private::npdb::UdtRecordCompleter::complete(), DWARFASTParserClang::CompleteRecordType(), and PDBASTParser::CompleteTypeFromUDT().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3763 of file TypeSystemClang.cpp.
References GetAsRecordDecl().
|
static |
Definition at line 1815 of file TypeSystemClang.cpp.
Referenced by lldb_private::NameSearchContext::AddFunDecl(), AddMethodToCXXRecordType(), and GetDeclarationName().
|
inlinestatic |
Definition at line 131 of file TypeSystemClang.h.
References ID, lldb_private::TypeSystem::isA(), and lldb_private::TypeSystem::TypeSystem().
| void TypeSystemClang::CompleteObjCInterfaceDecl | ( | clang::ObjCInterfaceDecl * | decl | ) |
Definition at line 9112 of file TypeSystemClang.cpp.
References lldb_private::SymbolFile::CompleteType(), lldb_private::TypeSystem::GetSymbolFile(), and GetTypeForDecl().
| void TypeSystemClang::CompleteTagDecl | ( | clang::TagDecl * | decl | ) |
Definition at line 9103 of file TypeSystemClang.cpp.
References lldb_private::SymbolFile::CompleteType(), lldb_private::TypeSystem::GetSymbolFile(), and GetTypeForDecl().
|
static |
Definition at line 8441 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), and TypeSystemClang().
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::ClangASTImporter::CompleteType(), DWARFASTParserClang::CompleteTypeFromDWARF(), PDBASTParser::CompleteTypeFromUDT(), lldb_private::SymbolFileCTF::CreateEnum(), PDBASTParser::CreateLLDBTypeFromPDBType(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::npdb::PdbAstBuilderClang::GetOrCreateClangType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), PrepareContextToReceiveMembers(), SystemRuntimeMacOSX::ReadLibdispatchTSDIndexes(), and RequireCompleteType().
|
static |
Definition at line 469 of file TypeSystemClang.cpp.
References lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessProtected, and lldb::eAccessPublic.
Referenced by CreateBaseClassSpecifier().
| 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 9447 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, |
| std::optional< size_t > | element_count, | ||
| bool | is_vector ) |
Definition at line 2340 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), and lldb_private::CompilerType::IsValid().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildArray().
|
private |
Creates the internal ASTContext.
Definition at line 743 of file TypeSystemClang.cpp.
References lldb_private::Expressions, GetASTMap(), lldb_private::GetLog(), getTargetInfo(), GetTargetTriple(), lldb_private::ThreadSafeDenseMap< _KeyType, _ValueType >::Insert(), lldb_private::FileSystem::Instance(), LLDB_LOG, m_ast_owned, m_ast_up, m_builtins_up, m_diagnostic_consumer_up, m_diagnostic_options_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, m_target_triple, ParseLangArgs(), lldb_private::Debugger::ReportWarning(), 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 7970 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), getASTContext(), and GetQualType().
| clang::BlockDecl * TypeSystemClang::CreateBlockDeclaration | ( | clang::DeclContext * | ctx, |
| OptionalClangModuleID | owning_module ) |
Definition at line 2008 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
| CompilerType TypeSystemClang::CreateBlockPointerType | ( | const CompilerType & | function_type | ) |
Definition at line 2330 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::GetOpaqueQualType(), GetType(), and m_ast_up.
| ClassTemplateDecl * TypeSystemClang::CreateClassTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
| OptionalClangModuleID | owning_module, | ||
| llvm::StringRef | class_name, | ||
| int | kind, | ||
| const TemplateParameterInfos & | infos ) |
Definition at line 1641 of file TypeSystemClang.cpp.
References ClassTemplateAllowsToInstantiationArgs(), CreateTemplateParameterList(), 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 1742 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().
| CompilerType TypeSystemClang::CreateClassTemplateSpecializationType | ( | clang::ClassTemplateSpecializationDecl * | class_template_specialization_decl | ) |
Definition at line 1787 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
| 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 1281 of file TypeSystemClang.cpp.
References getASTContext().
Referenced by CountDeclLevels(), DeclContextFindDeclByName(), DeclGetDeclContext(), GetCompilerDeclContextForType(), SymbolFilePDB::GetDeclContextContainingUID(), and SymbolFilePDB::GetDeclContextForUID().
| CompilerType TypeSystemClang::CreateEnumerationType | ( | llvm::StringRef | name, |
| clang::DeclContext * | decl_ctx, | ||
| OptionalClangModuleID | owning_module, | ||
| const Declaration & | decl, | ||
| const CompilerType & | integer_qual_type, | ||
| bool | is_scoped, | ||
| std::optional< clang::EnumExtensibilityAttr::Kind > | enum_kind = std::nullopt ) |
Definition at line 2407 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), and SetOwningModule().
| FunctionDecl * TypeSystemClang::CreateFunctionDeclaration | ( | clang::DeclContext * | decl_ctx, |
| OptionalClangModuleID | owning_module, | ||
| llvm::StringRef | name, | ||
| const CompilerType & | function_Type, | ||
| clang::StorageClass | storage, | ||
| bool | is_inline, | ||
| llvm::StringRef | asm_label ) |
Definition at line 2230 of file TypeSystemClang.cpp.
References getASTContext(), GetDeclarationName(), lldb_private::ClangUtil::GetQualType(), and SetOwningModule().
| clang::FunctionTemplateDecl * TypeSystemClang::CreateFunctionTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
| OptionalClangModuleID | owning_module, | ||
| clang::FunctionDecl * | func_decl, | ||
| const TemplateParameterInfos & | infos ) |
Definition at line 1506 of file TypeSystemClang.cpp.
References CreateTemplateParameterList(), getASTContext(), and SetOwningModule().
| void TypeSystemClang::CreateFunctionTemplateSpecializationInfo | ( | clang::FunctionDecl * | func_decl, |
| clang::FunctionTemplateDecl * | Template, | ||
| const TemplateParameterInfos & | infos ) |
Definition at line 1535 of file TypeSystemClang.cpp.
References lldb_private::TypeSystemClang::TemplateParameterInfos::GetArgs().
| CompilerType TypeSystemClang::CreateFunctionType | ( | const CompilerType & | result_type, |
| llvm::ArrayRef< CompilerType > | args, | ||
| bool | is_variadic, | ||
| unsigned | type_quals, | ||
| clang::CallingConv | cc = clang::CC_C, | ||
| clang::RefQualifierKind | ref_qual = clang::RQ_None ) |
Definition at line 2276 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), lldb_private::ClangUtil::IsClangType(), and lldbassert.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4793 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
|
static |
Definition at line 530 of file TypeSystemClang.cpp.
References lldb_private::Target::GetArchitecture(), lldb_private::ArchSpec::GetTriple(), lldb_private::ArchSpec::IsValid(), and lldb_private::Target::IsValid().
Referenced by Initialize(), and Terminate().
|
static |
Definition at line 8587 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), and TypeSystemClang().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType(), and DWARFASTParserClang::ParsePointerToMemberType().
| CompilerType TypeSystemClang::CreateObjCClass | ( | llvm::StringRef | name, |
| clang::DeclContext * | decl_ctx, | ||
| OptionalClangModuleID | owning_module, | ||
| bool | isInternal, | ||
| std::optional< ClangASTMetadata > | metadata = std::nullopt ) |
Definition at line 1895 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 2311 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), and SetOwningModule().
Referenced by CreateParameterDeclarations().
| llvm::SmallVector< clang::ParmVarDecl * > TypeSystemClang::CreateParameterDeclarations | ( | clang::FunctionDecl * | context, |
| const clang::FunctionProtoType & | prototype, | ||
| const llvm::SmallVector< llvm::StringRef > & | param_names ) |
For each parameter type of prototype, creates a clang::ParmVarDecl whose clang::DeclContext is context.
| [in] | context | Non-null clang::FunctionDecl which will be the clang::DeclContext of each parameter created/returned by this function. |
| [in] | prototype | The clang::FunctionProtoType of context. |
| [in] | param_names | The ith element of this vector contains the name of the ith parameter. This parameter may be unnamed, in which case the ith entry in param_names is an empty string. This vector is either empty, or will have an entry for each parameter of the prototype regardless of whether a parameter is unnamed or not. |
clang::ParmVarDecl (one for each parameter of prototype). Definition at line 7757 of file TypeSystemClang.cpp.
References CreateParameterDeclaration(), and GetType().
Referenced by AddMethodToCXXRecordType().
| CompilerType TypeSystemClang::CreateRecordType | ( | clang::DeclContext * | decl_ctx, |
| OptionalClangModuleID | owning_module, | ||
| llvm::StringRef | name, | ||
| int | kind, | ||
| lldb::LanguageType | language, | ||
| std::optional< ClangASTMetadata > | metadata = std::nullopt, | ||
| bool | exports_symbols = false ) |
Definition at line 1358 of file TypeSystemClang.cpp.
References CreateObjCClass(), lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, getASTContext(), GetType(), SetMetadata(), and SetOwningModule().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), CreateStructForIdentifier(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), and lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType().
| CompilerType TypeSystemClang::CreateStructForIdentifier | ( | llvm::StringRef | type_name, |
| const std::initializer_list< std::pair< const char *, CompilerType > > & | type_fields, | ||
| bool | packed = false ) |
Definition at line 2366 of file TypeSystemClang.cpp.
References AddFieldToRecordType(), CompleteTagDeclarationDefinition(), CreateRecordType(), lldb::eLanguageTypeC, getASTContext(), GetTypeForIdentifier(), 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 1715 of file TypeSystemClang.cpp.
References CreateTemplateParameterList(), getASTContext(), and lldb_private::TypeSystemClang::TemplateParameterInfos::SetParameterPack().
|
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 4731 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 2057 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
| clang::UsingDirectiveDecl * TypeSystemClang::CreateUsingDirectiveDeclaration | ( | clang::DeclContext * | decl_ctx, |
| OptionalClangModuleID | owning_module, | ||
| clang::NamespaceDecl * | ns_decl ) |
Definition at line 2038 of file TypeSystemClang.cpp.
References FindLCABetweenDecls(), getASTContext(), and SetOwningModule().
| clang::VarDecl * TypeSystemClang::CreateVariableDeclaration | ( | clang::DeclContext * | decl_context, |
| OptionalClangModuleID | owning_module, | ||
| const char * | name, | ||
| clang::QualType | type ) |
Definition at line 2076 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
|
static |
Definition at line 669 of file TypeSystemClang.cpp.
References dump(), lldb_private::Debugger::GetCommandInterpreter(), and lldb_private::CommandInterpreter::GetCommandObjectForCommand().
Referenced by Initialize().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9351 of file TypeSystemClang.cpp.
References lldb_private::ConstString::AsCString(), CreateDeclContext(), GetCompilerDecl(), lldb_private::TypeSystem::GetSymbolFile(), and lldb_private::SymbolFile::ParseDeclsForContext().
|
static |
Definition at line 9647 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 9632 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by CreateTypedef(), and DWARFASTParserClang::GetClangDeclForDIE().
|
static |
Definition at line 9655 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 9663 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangASTSource::AddNamespace(), and DWARFASTParserClang::GetClangDeclForDIE().
|
static |
Definition at line 9639 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 9575 of file TypeSystemClang.cpp.
References InsertCompilerContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9610 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeObjC, lldb::eLanguageTypeUnknown, and GetMetadata().
|
static |
Definition at line 9671 of file TypeSystemClang.cpp.
References GetMetadata(), lldb_private::CompilerDeclContext::GetTypeSystem(), and TypeSystemClang().
Referenced by lldb_private::ClangUserExpression::ScanContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9529 of file TypeSystemClang.cpp.
References GetTypePrintingPolicy().
Referenced by InsertCompilerContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9546 of file TypeSystemClang.cpp.
References GetTypeNameForDecl().
|
static |
Definition at line 9678 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::CompilerDeclContext::GetTypeSystem(), and TypeSystemClang().
Referenced by lldb_private::ClangASTSource::AddNamespace().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9556 of file TypeSystemClang.cpp.
References GetMetadata().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9582 of file TypeSystemClang.cpp.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9300 of file TypeSystemClang.cpp.
References DeclGetName(), GetCompilerKind(), and InsertCompilerContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9334 of file TypeSystemClang.cpp.
References getASTContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9230 of file TypeSystemClang.cpp.
References CreateDeclContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9316 of file TypeSystemClang.cpp.
References GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9247 of file TypeSystemClang.cpp.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9236 of file TypeSystemClang.cpp.
References GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9190 of file TypeSystemClang.cpp.
References ExtractMangledNameFromFunctionCallLabel(), and getMangleContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9165 of file TypeSystemClang.cpp.
References GetTypeNameForDecl().
Referenced by DeclGetCompilerContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 8634 of file TypeSystemClang.cpp.
References getASTContext(), and m_ast_up.
Referenced by lldb_private::ScratchTypeSystemClang::Dump(), and SymbolFilePDB::DumpClangAST().
|
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 8607 of file TypeSystemClang.cpp.
References GetQualType().
Referenced by DebuggerInitialize().
|
static |
Definition at line 2514 of file TypeSystemClang.cpp.
References DumpDeclContextHiearchy().
Referenced by DumpDeclContextHiearchy(), and DumpDeclHiearchy().
|
static |
Definition at line 2528 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 8650 of file TypeSystemClang.cpp.
References lldb_private::Stream::AsRawOstream(), 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 8908 of file TypeSystemClang.cpp.
References DumpTypeDescription().
Referenced by DumpTypeDescription(), and GetObjCBitSize().
|
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 8914 of file TypeSystemClang.cpp.
References lldb::eDescriptionLevelVerbose, getASTContext(), GetCompleteType(), lldb_private::Stream::GetIndentLevel(), GetMetadata(), GetQualType(), GetTypeNameForDecl(), lldb_private::Stream::PutCString(), RemoveWrappingTypes(), and lldb_private::Stream::Write().
|
static |
Definition at line 9021 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 8791 of file TypeSystemClang.cpp.
References lldb_private::DumpDataExtractor(), DumpEnumValue(), 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::eFormatFloat128, 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.
| bool TypeSystemClang::FieldIsBitfield | ( | clang::FieldDecl * | field, |
| uint32_t & | bitfield_bit_size ) |
Definition at line 1840 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.
Definition at line 679 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 5653 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4346 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4362 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), and GetType().
|
static |
Definition at line 7452 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
Referenced by AddMethodOverridesForCXXRecordType(), lldb_private::MicrosoftABIRuntime::GetOffsetToTopFromAST(), and TransferBaseClasses().
|
static |
|
static |
Definition at line 7422 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType().
|
static |
Definition at line 7457 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by AddMethodToObjCObjectType(), AddObjCClassProperty(), ApplyObjCRuntimeName(), and SetObjCSuperClass().
|
static |
Definition at line 7430 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by CanPassInRegisters(), and SetIsPacked().
|
static |
Definition at line 7438 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetAsTagDecl().
Referenced by DumpFromSymbolFile(), and DWARFASTParserClang::ParseTypeFromClangModule().
|
static |
Definition at line 801 of file TypeSystemClang.cpp.
References GetASTMap(), lldb_private::ThreadSafeDenseMap< _KeyType, _ValueType >::Lookup(), and TypeSystemClang().
Referenced by lldb_private::ClangASTImporter::GetDeclMetadata(), and lldb_private::ClangASTImporter::importRecordLayoutFromOrigin().
| ASTContext & TypeSystemClang::getASTContext | ( | ) | const |
Returns the clang::ASTContext instance managed by this TypeSystemClang.
Definition at line 716 of file TypeSystemClang.cpp.
References m_ast_up.
Referenced by AddAddressSpaceModifier(), AddEnumerationValueToEnumerationType(), AddMethodToCXXRecordType(), AddPtrAuthModifier(), lldb_private::AppleObjCTypeEncodingParser::BuildObjCObjectPointerType(), lldb_private::AppleObjCTypeEncodingParser::BuildType(), lldb_private::ClangASTImporter::CopyType(), CreateArrayType(), CreateBaseClassSpecifier(), CreateBlockDeclaration(), CreateClassTemplateDecl(), CreateClassTemplateSpecializationDecl(), CreateClassTemplateSpecializationType(), CreateDeclContext(), CreateEnumerationType(), CreateFunctionDeclaration(), CreateFunctionTemplateDecl(), CreateFunctionType(), CreateGenericFunctionPrototype(), CreateObjCClass(), CreateParameterDeclaration(), CreateRecordType(), CreateStructForIdentifier(), CreateTemplateTemplateParmDecl(), CreateTypedef(), CreateUsingDeclaration(), CreateUsingDirectiveDeclaration(), CreateVariableDeclaration(), DeclContextGetTypeSystemClang(), DeclGetConstantValue(), lldb_private::ClangASTImporter::DeportType(), lldb_private::ClangExpressionDeclMap::DeportType(), Dump(), DumpFromSymbolFile(), DumpTypeDescription(), DumpTypeValue(), DWARFASTParserClang::ExtractIntFromFormValue(), FieldIsBitfield(), lldb_private::ScratchTypeSystemClang::ForgetSource(), GetArrayType(), GetAtomicType(), GetBasicType(), GetBitSize(), GetBuiltinTypeByName(), GetBuiltinTypeForDWARFEncodingAndBitSize(), GetBuiltinTypeForEncodingAndBitSize(), GetBuiltinTypeForPDBEncodingAndBitSize(), GetChildCompilerTypeAtIndex(), GetCompilerDecl(), GetCompleteDecl(), GetCompleteType(), GetCStringType(), GetDeclarationName(), GetDirectBaseClassAtIndex(), GetDirectNestedTypeWithName(), GetDisplayTypeName(), GetFieldAtIndex(), GetFloatTypeSemantics(), GetFullyUnqualifiedType(), GetIndexOfChildMemberWithName(), GetIntTypeFromBitSize(), GetLValueReferenceType(), getMangleContext(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNumChildren(), GetNumMemberFunctions(), GetObjCBitSize(), GetOrCreateClangModule(), GetOrCreateStructForIdentifier(), GetPointerDiffType(), GetPointerSizedIntType(), GetPointerType(), GetPromotedIntegerType(), GetRValueReferenceType(), GetSizeType(), GetStaticFieldWithName(), getTargetInfo(), GetTranslationUnitDecl(), GetType(), GetTypeBitAlign(), GetTypeForIdentifier(), GetTypeInfo(), GetTypePrintingPolicy(), GetUniqueNamespaceDeclaration(), GetVirtualBaseClassAtIndex(), lldb_private::ClangASTSource::InstallASTContext(), IsCompleteType(), IsHomogeneousAggregate(), IsIntegerType(), IsPromotableIntegerType(), LogCreation(), and SetExternalSource().
|
private |
Definition at line 7253 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
Referenced by GetIntegralTemplateArgument(), GetTemplateArgumentKind(), and GetTypeTemplateArgument().
|
static |
Definition at line 7443 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType(), and DumpFromSymbolFile().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4670 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
| CompilerType TypeSystemClang::GetBasicType | ( | lldb::BasicType | type | ) |
Definition at line 990 of file TypeSystemClang.cpp.
References getASTContext(), and GetOpaqueCompilerType().
Referenced by GetBasicTypeFromAST(), GetBuiltinTypeByName(), GetBuiltinTypeForPDBEncodingAndBitSize(), GetPointerByteSize(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), and lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5577 of file TypeSystemClang.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeChar16, lldb::eBasicTypeChar32, lldb::eBasicTypeChar8, lldb::eBasicTypeDouble, lldb::eBasicTypeFloat, lldb::eBasicTypeFloat128, 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 GetCanonicalQualType().
|
static |
Definition at line 904 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 4789 of file TypeSystemClang.cpp.
References GetBasicType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4864 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetObjCBitSize(), and GetTypeName().
Referenced by GetByteSize().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 5557 of file TypeSystemClang.cpp.
References getASTContext(), GetBasicType(), GetBasicTypeEnumeration(), lldb_private::ConstString::GetStringRef(), and GetType().
| CompilerType TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize | ( | llvm::StringRef | type_name, |
| uint32_t | dw_ate, | ||
| uint32_t | bit_size ) |
Definition at line 1001 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().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 838 of file TypeSystemClang.cpp.
References lldb::eEncodingIEEE754, lldb::eEncodingInvalid, lldb::eEncodingSint, lldb::eEncodingUint, lldb::eEncodingVector, getASTContext(), GetType(), and QualTypeMatchesBitSize().
Referenced by GetBuiltinTypeForPDBEncodingAndBitSize().
|
inline |
Definition at line 844 of file TypeSystemClang.h.
References GetBitSize().
|
inlinestatic |
Definition at line 1169 of file TypeSystemClang.h.
Referenced by AddEnumerationValueToEnumerationType(), AddMethodToCXXRecordType(), DumpFromSymbolFile(), ForEachEnumerator(), GetArrayType(), GetAsCXXRecordDecl(), GetAsTemplateSpecialization(), GetBasicTypeEnumeration(), GetBitSize(), GetCanonicalType(), GetChildCompilerTypeAtIndex(), GetDirectBaseClassAtIndex(), GetDirectNestedTypeWithName(), GetEncoding(), GetEnumerationIntegerType(), GetFieldAtIndex(), GetFormat(), GetFunctionArgumentCount(), GetIndexOfChildMemberWithName(), GetIndexOfChildWithName(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNumberOfFunctionArguments(), GetNumDirectBaseClasses(), GetNumFields(), GetNumMemberFunctions(), GetNumTemplateArguments(), GetNumVirtualBaseClasses(), GetPromotedIntegerType(), GetPtrAuthAddressDiversity(), GetPtrAuthDiscriminator(), GetPtrAuthKey(), GetStaticFieldWithName(), GetTargetAddressSpace(), GetVirtualBaseClassAtIndex(), HasPointerAuthQualifier(), IsAggregateType(), IsAnonymousType(), IsArrayType(), IsBeingDefined(), IsClassType(), IsCStringType(), IsEnumerationType(), IsEnumType(), IsFloatingPointType(), IsHomogeneousAggregate(), IsIntegerType(), IsPointerOrReferenceType(), IsPointerType(), IsPolymorphicClass(), IsPossibleDynamicType(), IsPromotableIntegerType(), IsReferenceType(), IsScopedEnumerationType(), IsTypeImpl(), IsVectorType(), IsVoidType(), and SetHasExternalStorage().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4380 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6296 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().
Referenced by GetDereferencedType().
|
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 549 of file TypeSystemClang.h.
References getASTContext().
Referenced by DeclContextFindDeclByName(), SymbolFilePDB::GetDeclForUID(), and GetMemberFunctionAtIndex().
|
overridevirtual |
Returns the direct parent context of specified type.
Reimplemented from lldb_private::TypeSystem.
Definition at line 2637 of file TypeSystemClang.cpp.
References CreateDeclContext(), and GetDeclContextForType().
|
static |
Definition at line 2553 of file TypeSystemClang.cpp.
|
inline |
Definition at line 194 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(), and lldb_private::ClangASTImporter::importRecordLayoutFromOrigin().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3839 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(), IsPolymorphicClass(), and IsPossibleDynamicType().
| CompilerType TypeSystemClang::GetCStringType | ( | bool | is_const | ) |
Definition at line 1241 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
|
static |
Definition at line 3776 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
| clang::DeclarationName TypeSystemClang::GetDeclarationName | ( | llvm::StringRef | name, |
| const CompilerType & | function_clang_type ) |
Definition at line 2172 of file TypeSystemClang.cpp.
References CheckOverloadedOperatorKindParameterCount(), getASTContext(), lldb_private::ClangUtil::GetQualType(), and IsOperator().
Referenced by CreateFunctionDeclaration().
|
static |
Definition at line 2677 of file TypeSystemClang.cpp.
References GetDeclContextForType(), and RemoveWrappingTypes().
Referenced by GetCompilerDeclContextForType(), GetDeclContextForType(), GetDeclContextForType(), IsRuntimeGeneratedType(), DWARFASTParserClang::ParseCXXMethod(), DWARFASTParserClang::ParseEnum(), and DWARFASTParserClang::ParseStructureLikeDIE().
|
static |
Definition at line 2632 of file TypeSystemClang.cpp.
References GetDeclContextForType(), and lldb_private::ClangUtil::GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6278 of file TypeSystemClang.cpp.
References GetChildCompilerTypeAtIndex(), IsArrayType(), and IsPointerOrReferenceType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5971 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 7168 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 175 of file TypeSystemClang.h.
References m_display_name.
Referenced by LogCreation().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3878 of file TypeSystemClang.cpp.
References getASTContext(), and GetQualType().
Referenced by GetNumChildren().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9122 of file TypeSystemClang.cpp.
References m_dwarf_ast_parser_up.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4909 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 8576 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4414 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetEnumerationIntegerType(), and GetType().
Referenced by GetEnumerationIntegerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5793 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetObjCFieldAtIndex(), GetType(), and RemoveWrappingTypes().
|
static |
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4810 of file TypeSystemClang.cpp.
References lldb::eFormatFloat128, and getASTContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5225 of file TypeSystemClang.cpp.
References lldb::eFormatBoolean, lldb::eFormatBytes, lldb::eFormatChar, lldb::eFormatComplex, lldb::eFormatComplexInteger, lldb::eFormatDecimal, lldb::eFormatDefault, lldb::eFormatEnum, lldb::eFormatFloat, lldb::eFormatFloat128, lldb::eFormatHex, lldb::eFormatUnicode16, lldb::eFormatUnicode32, lldb::eFormatUnicode8, lldb::eFormatUnsigned, lldb::eFormatVoid, GetCanonicalQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4406 of file TypeSystemClang.cpp.
References getASTContext(), GetFullyUnqualifiedType_Impl(), GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3223 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4420 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4431 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4446 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 6751 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 6779 of file TypeSystemClang.cpp.
References GetNumBaseClasses(), and UINT32_MAX.
Referenced by GetIndexOfChildMemberWithName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6829 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 7030 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(), and RemoveWrappingTypes().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7371 of file TypeSystemClang.cpp.
References GetAsTemplateSpecialization(), GetNthTemplateArgument(), and GetType().
| CompilerType TypeSystemClang::GetIntTypeFromBitSize | ( | size_t | bit_size, |
| bool | is_signed ) |
Definition at line 2441 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
Referenced by GetPointerSizedIntType().
|
inline |
Definition at line 1179 of file TypeSystemClang.h.
References m_language_options_up.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4655 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
| clang::MangleContext * TypeSystemClang::getMangleContext | ( | ) |
Definition at line 806 of file TypeSystemClang.cpp.
References getASTContext(), and m_mangle_ctx_up.
Referenced by DeclGetMangledName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4511 of file TypeSystemClang.cpp.
References lldb::eMemberFunctionKindConstructor, lldb::eMemberFunctionKindDestructor, lldb::eMemberFunctionKindInstanceMethod, lldb::eMemberFunctionKindStaticMethod, lldb::eMemberFunctionKindUnknown, getASTContext(), GetCanonicalQualType(), GetCompilerDecl(), GetCompleteQualType(), GetCompleteType(), GetType(), and RemoveWrappingTypes().
| std::optional< ClangASTMetadata > TypeSystemClang::GetMetadata | ( | const clang::Decl * | object | ) |
Definition at line 2614 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().
| std::optional< ClangASTMetadata > TypeSystemClang::GetMetadata | ( | const clang::Type * | object | ) |
Definition at line 2623 of file TypeSystemClang.cpp.
References m_type_metadata.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4107 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 9134 of file TypeSystemClang.cpp.
References m_native_pdb_ast_parser_up.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4622 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 1922 of file TypeSystemClang.cpp.
References BaseSpecifierIsEmpty().
Referenced by GetIndexForRecordChild(), GetIndexOfChildMemberWithName(), and GetNumChildren().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3210 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5421 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteQualType(), GetDisplayTypeName(), GetDynamicArrayInfo(), GetNumBaseClasses(), lldb_private::CompilerType::GetNumChildren(), GetNumPointeeChildren(), GetPointeeType(), GetQualType(), lldb_private::TypeSystem::GetSymbolFile(), GetType(), lldb_private::CompilerType::IsAggregateType(), ObjCDeclHasIVars(), and RemoveWrappingTypes().
Referenced by GetChildCompilerTypeAtIndex().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5899 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), lldb_private::CompilerType::GetNumDirectBaseClasses(), GetPointeeType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5680 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4458 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
static |
Definition at line 6145 of file TypeSystemClang.cpp.
References RemoveWrappingTypes().
Referenced by GetNumChildren().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7214 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5951 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
private |
Definition at line 4832 of file TypeSystemClang.cpp.
References DumpTypeDescription(), lldb_private::ObjCLanguageRuntime::Get(), getASTContext(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::StreamString::GetString(), GetType(), and lldb_private::Debugger::ReportInternalError().
Referenced by GetBitSize().
|
static |
Definition at line 2095 of file TypeSystemClang.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeChar, lldb::eBasicTypeChar16, lldb::eBasicTypeChar32, lldb::eBasicTypeChar8, lldb::eBasicTypeDouble, lldb::eBasicTypeDoubleComplex, lldb::eBasicTypeFloat, lldb::eBasicTypeFloat128, 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 1323 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::OptionalClangModuleID::GetValue(), m_diagnostics_engine_up, m_header_search_opts_up, m_header_search_up, m_language_options_up, m_module_map_up, m_source_manager_up, and m_target_info_up.
Referenced by 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 2391 of file TypeSystemClang.cpp.
References CreateStructForIdentifier(), getASTContext(), and GetTypeForIdentifier().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9128 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 155 of file TypeSystemClang.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 157 of file TypeSystemClang.h.
Referenced by GetPluginName(), and Initialize().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4629 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
Referenced by GetChildCompilerTypeAtIndex(), GetDirectBaseClassAtIndex(), GetIndexOfChildMemberWithName(), GetNumChildren(), and GetNumDirectBaseClasses().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 977 of file TypeSystemClang.cpp.
References lldb::eBasicTypeVoid, GetBasicType(), lldb_private::CompilerType::GetByteSize(), lldb_private::GetLog(), lldb_private::CompilerType::GetPointerType(), LLDB_LOG_ERROR, m_pointer_byte_size, and lldb_private::Types.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2496 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
| CompilerType TypeSystemClang::GetPointerSizedIntType | ( | bool | is_signed | ) |
Definition at line 2488 of file TypeSystemClang.cpp.
References getASTContext(), and GetIntTypeFromBitSize().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4638 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7415 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetType(), and IsPromotableIntegerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3108 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3099 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3089 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
inlinestatic |
Definition at line 1162 of file TypeSystemClang.h.
Referenced by AddAddressSpaceModifier(), AddConstModifier(), AddPtrAuthModifier(), AddRestrictModifier(), AddVolatileModifier(), CreateBaseClassSpecifier(), CreateTypedef(), dump(), DumpTypeDescription(), DumpTypeValue(), GetArrayElementType(), GetAtomicType(), 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 4663 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
|
inline |
Definition at line 187 of file TypeSystemClang.h.
References m_sema.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2506 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
|
inline |
Definition at line 1182 of file TypeSystemClang.h.
References m_source_manager_up.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 6110 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
static |
Definition at line 586 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 568 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().
|
overridevirtual |
Returns the target address space of type, or std::nullopt if it lives in the default address space.
Reimplemented from lldb_private::TypeSystem.
Definition at line 3753 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
| TargetInfo * TypeSystemClang::getTargetInfo | ( | ) |
Definition at line 821 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 812 of file TypeSystemClang.cpp.
References m_target_options_rp, and m_target_triple.
Referenced by getTargetInfo().
| const char * TypeSystemClang::GetTargetTriple | ( | ) |
Definition at line 701 of file TypeSystemClang.cpp.
References m_target_triple.
Referenced by CreateASTContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7310 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 236 of file TypeSystemClang.h.
References getASTContext().
|
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 250 of file TypeSystemClang.h.
References getASTContext().
Referenced by AddAddressSpaceModifier(), AddConstModifier(), AddPtrAuthModifier(), AddRestrictModifier(), AddVolatileModifier(), lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), CreateArrayType(), CreateBlockPointerType(), CreateClassTemplateSpecializationType(), CreateEnumerationType(), CreateFunctionType(), CreateGenericFunctionPrototype(), CreateObjCClass(), CreateParameterDeclarations(), CreateRecordType(), CreateTypedef(), DeclGetFunctionArgumentType(), DeclGetFunctionReturnType(), DumpTypeValue(), ForEachEnumerator(), GetArrayElementType(), GetArrayType(), GetAtomicType(), GetBuiltinTypeByName(), GetBuiltinTypeForDWARFEncodingAndBitSize(), GetBuiltinTypeForEncodingAndBitSize(), GetCanonicalType(), GetChildCompilerTypeAtIndex(), GetCStringType(), GetDirectBaseClassAtIndex(), GetDirectNestedTypeWithName(), GetEncoding(), GetEnumerationIntegerType(), GetEnumerationIntegerType(), GetFieldAtIndex(), GetFullyUnqualifiedType(), GetFunctionArgumentTypeAtIndex(), GetFunctionReturnType(), GetIndexOfChildMemberWithName(), GetIndexOfChildWithName(), GetIntegralTemplateArgument(), GetIntTypeFromBitSize(), GetLValueReferenceType(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNonReferenceType(), GetNumChildren(), GetObjCBitSize(), GetPointeeType(), GetPointerDiffType(), GetPointerType(), GetPromotedIntegerType(), GetRValueReferenceType(), GetSizeType(), GetTypedefedType(), GetTypeForDecl(), GetTypeInfo(), GetTypeTemplateArgument(), GetVirtualBaseClassAtIndex(), IsPossibleDynamicType(), IsVectorType(), and lldb_private::AppleObjCTypeEncodingParser::RealizeType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4902 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteType(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4191 of file TypeSystemClang.cpp.
References GetQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4777 of file TypeSystemClang.cpp.
References GetQualType(), GetType(), and RemoveWrappingTypes().
| CompilerType TypeSystemClang::GetTypeForDecl | ( | clang::NamedDecl * | decl | ) |
Definition at line 1287 of file TypeSystemClang.cpp.
References GetTypeForDecl().
Referenced by CompleteObjCInterfaceDecl(), CompleteTagDecl(), CountDeclLevels(), GetTypeForDecl(), 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 1306 of file TypeSystemClang.cpp.
References GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 1271 of file TypeSystemClang.cpp.
References GetTypeForDecl().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7402 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::RemoveFastQualifiers().
|
inline |
Definition at line 269 of file TypeSystemClang.h.
References getASTContext().
Referenced by CreateStructForIdentifier(), and GetOrCreateStructForIdentifier().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3893 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 3845 of file TypeSystemClang.cpp.
References GetQualType(), GetTypeNameForDecl(), GetTypePrintingPolicy(), and RemoveWrappingTypes().
Referenced by GetBitSize().
|
private |
Returns the internal type name for the given NamedDecl using the type printing policy.
Definition at line 2221 of file TypeSystemClang.cpp.
References GetTypePrintingPolicy().
Referenced by DeclContextGetScopeQualifiedName(), DeclGetName(), 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 2198 of file TypeSystemClang.cpp.
References getASTContext().
Referenced by DeclContextGetName(), GetTypeName(), and GetTypeNameForDecl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4337 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7356 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 1944 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6066 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetType(), and RemoveWrappingTypes().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 3746 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
static |
Definition at line 653 of file TypeSystemClang.cpp.
References CreateInstance(), DebuggerInitialize(), lldb_private::ModuleList::GetGlobalModuleListProperties(), GetPluginNameStatic(), GetSupportedLanguagesForExpressions(), GetSupportedLanguagesForTypes(), lldb_private::PluginManager::RegisterPlugin(), and lldb_private::ModuleListProperties::SetClangModulesCachePath().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 130 of file TypeSystemClang.h.
References ID.
Referenced by lldb_private::ScratchTypeSystemClang::isA().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2879 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
Referenced by DumpTypeValue().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 2900 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2922 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
Referenced by GetDereferencedType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3799 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3289 of file TypeSystemClang.cpp.
References IsTypeImpl(), and m_ast_up.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3047 of file TypeSystemClang.cpp.
References GetQualType().
|
static |
Definition at line 3571 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3051 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteQualType(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3060 of file TypeSystemClang.cpp.
References GetQualType().
| bool TypeSystemClang::IsCStringType | ( | lldb::opaque_compiler_type_t | type, |
| uint32_t & | length ) |
Definition at line 3064 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 3791 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::ItaniumABIRuntime::FindTypeInfoWithClangVTable(), lldb_private::CommonABIRuntime::LookupTypeByName(), DWARFASTParserClang::ParseCXXMethod(), and RequireCompleteType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3527 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 3331 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
static |
Definition at line 3579 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3516 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9898 of file TypeSystemClang.cpp.
References GetMetadata(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3281 of file TypeSystemClang.cpp.
References IsTypeImpl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3118 of file TypeSystemClang.cpp.
References IsTypeImpl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3128 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3311 of file TypeSystemClang.cpp.
References getASTContext(), and GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3272 of file TypeSystemClang.cpp.
References IsTypeImpl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3263 of file TypeSystemClang.cpp.
References IsTypeImpl().
|
static |
Definition at line 3552 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 3565 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(), DWARFASTParserClang::ParseSingleMember(), and RequireCompleteType().
|
static |
Definition at line 3809 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 387 of file TypeSystemClang.cpp.
Referenced by lldb_private::NameSearchContext::AddFunDecl(), AddMethodToCXXRecordType(), and GetDeclarationName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3413 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
Referenced by GetDereferencedType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3360 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3587 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetCompleteType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3613 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), GetCompleteType(), GetMetadata(), GetType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7408 of file TypeSystemClang.cpp.
References getASTContext(), and GetCanonicalQualType().
Referenced by GetPromotedIntegerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3480 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 3028 of file TypeSystemClang.cpp.
References GetDeclContextForType(), GetMetadata(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3726 of file TypeSystemClang.cpp.
References GetTypeInfo().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3346 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7202 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3733 of file TypeSystemClang.cpp.
References GetQualType(), and RemoveWrappingTypes().
|
private |
Definition at line 3237 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), IsTypeImpl(), and RemoveWrappingTypes().
Referenced by IsBlockPointerType(), IsFunctionPointerType(), IsFunctionType(), IsMemberDataPointerType(), IsMemberFunctionPointerType(), and IsTypeImpl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2992 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3740 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 9141 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.
|
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 9926 of file TypeSystemClang.cpp.
References lldb_private::Expressions, getASTContext(), getDisplayName(), lldb_private::GetLog(), and LLDB_LOG.
Referenced by TypeSystemClang().
|
private |
References TypeSystemClang().
| clang::ClassTemplateDecl * TypeSystemClang::ParseClassTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
| OptionalClangModuleID | owning_module, | ||
| const char * | parent_name, | ||
| int | tag_decl_kind, | ||
| const TypeSystemClang::TemplateParameterInfos & | template_param_infos ) |
Definition at line 9086 of file TypeSystemClang.cpp.
References CreateClassTemplateDecl(), and lldb_private::TypeSystemClang::TemplateParameterInfos::IsValid().
| bool TypeSystemClang::RecordHasFields | ( | const clang::RecordDecl * | record_decl | ) |
Definition at line 1859 of file TypeSystemClang.cpp.
References GetMetadata(), and RecordHasFields().
Referenced by BaseSpecifierIsEmpty(), GetChildCompilerTypeAtIndex(), GetIndexOfChildWithName(), 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 9686 of file TypeSystemClang.cpp.
References CompleteTagDeclarationDefinition(), lldb_private::ClangUtil::GetAsTagDecl(), lldb_private::CompilerType::GetCompleteType(), lldb_private::CompilerType::GetTypeSystem(), IsCXXClassType(), IsObjCObjectOrInterfaceType(), lldbassert, StartTagDeclarationDefinition(), and TypeSystemClang().
Referenced by lldb_private::npdb::UdtRecordCompleter::AddMethod(), lldb_private::npdb::UdtRecordCompleter::complete(), lldb_private::npdb::PdbAstBuilderClang::CreateArrayType(), DWARFASTParserClang::ParseArrayType(), DWARFASTParserClang::ParseInheritance(), and DWARFASTParserClang::ParseSingleMember().
| bool TypeSystemClang::SetDeclIsForcefullyCompleted | ( | const clang::TagDecl * | td | ) |
Definition at line 9913 of file TypeSystemClang.cpp.
References GetMetadata(), lldb_private::TypeSystem::m_has_forcefully_completed_types, and SetMetadata().
Referenced by PrepareContextToReceiveMembers().
| void TypeSystemClang::SetExternalSource | ( | llvm::IntrusiveRefCntPtr< clang::ExternalASTSource > | ast_source_sp | ) |
Definition at line 709 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 7745 of file TypeSystemClang.cpp.
Referenced by PDBASTParser::AddRecordMembers().
|
static |
Definition at line 8363 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
Referenced by lldb_private::npdb::PdbAstBuilderClang::CompleteTagDecl(), lldb_private::ClangASTImporter::CompleteType(), PDBASTParser::CompleteTypeFromPDB(), lldb_private::npdb::PdbAstBuilderClang::CreateEnumType(), PDBASTParser::CreateLLDBTypeFromPDBType(), and lldb_private::npdb::PdbAstBuilderClang::CreateRecordType().
|
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 7720 of file TypeSystemClang.cpp.
Referenced by PDBASTParser::AddRecordMembers(), and DWARFASTParserClang::CreateStaticMemberVariable().
|
static |
Definition at line 7667 of file TypeSystemClang.cpp.
References GetAsRecordDecl(), lldb_private::CompilerType::GetTypeSystem(), and TypeSystemClang().
Referenced by CreateStructForIdentifier().
| void TypeSystemClang::SetMetadata | ( | const clang::Decl * | object, |
| ClangASTMetadata | meta_data ) |
Definition at line 2603 of file TypeSystemClang.cpp.
References m_decl_metadata.
Referenced by CreateObjCClass(), CreateRecordType(), SetDeclIsForcefullyCompleted(), SetMetadataAsUserID(), and SetMetadataAsUserID().
| void TypeSystemClang::SetMetadata | ( | const clang::Type * | object, |
| ClangASTMetadata | meta_data ) |
Definition at line 2608 of file TypeSystemClang.cpp.
References m_type_metadata.
| void TypeSystemClang::SetMetadataAsUserID | ( | const clang::Decl * | decl, |
| lldb::user_id_t | user_id ) |
Definition at line 2589 of file TypeSystemClang.cpp.
References SetMetadata(), and lldb_private::ClangASTMetadata::SetUserID().
| void TypeSystemClang::SetMetadataAsUserID | ( | const clang::Type * | type, |
| lldb::user_id_t | user_id ) |
Definition at line 2596 of file TypeSystemClang.cpp.
References SetMetadata(), and lldb_private::ClangASTMetadata::SetUserID().
|
static |
Definition at line 8002 of file TypeSystemClang.cpp.
References GetAsObjCInterfaceDecl(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), and TypeSystemClang().
|
static |
Set the owning module for decl.
Definition at line 1312 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 695 of file TypeSystemClang.cpp.
|
private |
Definition at line 705 of file TypeSystemClang.cpp.
References m_target_triple.
Referenced by TypeSystemClang().
|
static |
Definition at line 8416 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::npdb::PdbAstBuilderClang::CreateEnumType(), PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::npdb::PdbAstBuilderClang::CreateRecordType(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), PrepareContextToReceiveMembers(), SystemRuntimeMacOSX::ReadLibdispatchTSDIndexes(), and RequireCompleteType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3771 of file TypeSystemClang.cpp.
|
static |
Definition at line 665 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 7983 of file TypeSystemClang.cpp.
References GetAsCXXRecordDecl().
|
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 2874 of file TypeSystemClang.cpp.
References GetQualType().
|
staticprivate |
Definition at line 122 of file TypeSystemClang.h.
|
private |
Definition at line 1240 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Definition at line 1220 of file TypeSystemClang.h.
Referenced by CreateASTContext(), CreateBlockPointerType(), Dump(), Finalize(), getASTContext(), IsBlockPointerType(), and setSema().
|
private |
Definition at line 1231 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Maps Decls to their associated ClangASTMetadata.
Definition at line 1248 of file TypeSystemClang.h.
Referenced by GetMetadata(), and SetMetadata().
|
private |
Definition at line 1226 of file TypeSystemClang.h.
Referenced by CreateASTContext().
|
private |
Definition at line 1224 of file TypeSystemClang.h.
Referenced by CreateASTContext().
|
private |
Definition at line 1225 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 1244 of file TypeSystemClang.h.
Referenced by getDisplayName(), and TypeSystemClang().
|
private |
Definition at line 1235 of file TypeSystemClang.h.
Referenced by GetDWARFParser(), and LayoutRecordType().
|
private |
Definition at line 1222 of file TypeSystemClang.h.
Referenced by CreateASTContext().
|
private |
Definition at line 1232 of file TypeSystemClang.h.
Referenced by GetOrCreateClangModule().
|
private |
Definition at line 1233 of file TypeSystemClang.h.
Referenced by GetOrCreateClangModule().
|
private |
Definition at line 1229 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Definition at line 1221 of file TypeSystemClang.h.
Referenced by CreateASTContext(), Finalize(), GetLangOpts(), and GetOrCreateClangModule().
|
private |
Definition at line 1238 of file TypeSystemClang.h.
Referenced by getMangleContext().
|
private |
Definition at line 1234 of file TypeSystemClang.h.
Referenced by GetOrCreateClangModule().
|
private |
Definition at line 1237 of file TypeSystemClang.h.
Referenced by GetNativePDBParser(), and LayoutRecordType().
|
private |
Definition at line 1236 of file TypeSystemClang.h.
Referenced by GetPDBParser(), and LayoutRecordType().
|
private |
Definition at line 1239 of file TypeSystemClang.h.
Referenced by GetPointerByteSize().
|
private |
Definition at line 1230 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 1257 of file TypeSystemClang.h.
|
private |
Definition at line 1223 of file TypeSystemClang.h.
Referenced by CreateASTContext(), Finalize(), GetOrCreateClangModule(), and GetSourceMgr().
|
private |
Definition at line 1228 of file TypeSystemClang.h.
Referenced by Finalize(), GetOrCreateClangModule(), and getTargetInfo().
|
private |
Definition at line 1227 of file TypeSystemClang.h.
Referenced by Finalize(), and getTargetOptions().
|
private |
Definition at line 1219 of file TypeSystemClang.h.
Referenced by CreateASTContext(), getTargetInfo(), getTargetOptions(), GetTargetTriple(), and SetTargetTriple().
|
private |
Maps Types to their associated ClangASTMetadata.
Definition at line 1252 of file TypeSystemClang.h.
Referenced by GetMetadata(), and SetMetadata().