LLDB
mainline
|
#include <DWARFASTParserClang.h>
Classes | |
class | DelayedAddObjCClassProperty |
struct | FieldInfo |
Protected Member Functions | |
clang::DeclContext * | GetDeclContextForBlock (const DWARFDIE &die) |
clang::BlockDecl * | ResolveBlockDIE (const DWARFDIE &die) |
clang::NamespaceDecl * | ResolveNamespaceDIE (const DWARFDIE &die) |
bool | ParseTemplateDIE (const DWARFDIE &die, lldb_private::TypeSystemClang::TemplateParameterInfos &template_param_infos) |
bool | ParseTemplateParameterInfos (const DWARFDIE &parent_die, lldb_private::TypeSystemClang::TemplateParameterInfos &template_param_infos) |
bool | ParseChildMembers (const DWARFDIE &die, lldb_private::CompilerType &class_compiler_type, std::vector< std::unique_ptr< clang::CXXBaseSpecifier >> &base_classes, std::vector< DWARFDIE > &member_function_dies, DelayedPropertyList &delayed_properties, const lldb::AccessType default_accessibility, lldb_private::ClangASTImporter::LayoutInfo &layout_info) |
size_t | ParseChildParameters (clang::DeclContext *containing_decl_ctx, const DWARFDIE &parent_die, bool skip_artificial, bool &is_static, bool &is_variadic, bool &has_template_params, std::vector< lldb_private::CompilerType > &function_args, std::vector< clang::ParmVarDecl * > &function_param_decls, unsigned &type_quals) |
size_t | ParseChildEnumerators (lldb_private::CompilerType &compiler_type, bool is_signed, uint32_t enumerator_byte_size, const DWARFDIE &parent_die) |
lldb::TypeSP | ParseStructureLikeDIE (const lldb_private::SymbolContext &sc, const DWARFDIE &die, ParsedDWARFTypeAttributes &attrs) |
Parse a structure, class, or union type DIE. More... | |
lldb_private::Type * | GetTypeForDIE (const DWARFDIE &die) |
clang::Decl * | GetClangDeclForDIE (const DWARFDIE &die) |
clang::DeclContext * | GetClangDeclContextForDIE (const DWARFDIE &die) |
clang::DeclContext * | GetClangDeclContextContainingDIE (const DWARFDIE &die, DWARFDIE *decl_ctx_die) |
lldb_private::OptionalClangModuleID | GetOwningClangModule (const DWARFDIE &die) |
bool | CopyUniqueClassMethodTypes (const DWARFDIE &src_class_die, const DWARFDIE &dst_class_die, lldb_private::Type *class_type, std::vector< DWARFDIE > &failures) |
clang::DeclContext * | GetCachedClangDeclContextForDIE (const DWARFDIE &die) |
void | LinkDeclContextToDIE (clang::DeclContext *decl_ctx, const DWARFDIE &die) |
void | LinkDeclToDIE (clang::Decl *decl, const DWARFDIE &die) |
lldb::TypeSP | UpdateSymbolContextScopeForType (const lldb_private::SymbolContext &sc, const DWARFDIE &die, lldb::TypeSP type_sp) |
If type_sp is valid, calculate and set its symbol context scope, and update the type list for its backing symbol file. More... | |
lldb::TypeSP | ParseTypeFromClangModule (const lldb_private::SymbolContext &sc, const DWARFDIE &die, lldb_private::Log *log) |
Follow Clang Module Skeleton CU references to find a type definition. More... | |
lldb::ModuleSP | GetModuleForType (const DWARFDIE &die) |
Additional Inherited Members | |
![]() | |
static llvm::Optional< lldb_private::SymbolFile::ArrayInfo > | ParseChildArrayInfo (const DWARFDIE &parent_die, const lldb_private::ExecutionContext *exe_ctx=nullptr) |
Definition at line 37 of file DWARFASTParserClang.h.
|
protected |
Definition at line 80 of file DWARFASTParserClang.h.
|
protected |
Definition at line 74 of file DWARFASTParserClang.h.
|
protected |
Definition at line 78 of file DWARFASTParserClang.h.
|
protected |
Definition at line 85 of file DWARFASTParserClang.h.
|
protected |
Definition at line 83 of file DWARFASTParserClang.h.
DWARFASTParserClang::DWARFASTParserClang | ( | lldb_private::TypeSystemClang & | ast | ) |
Definition at line 61 of file DWARFASTParserClang.cpp.
|
overridedefault |
|
private |
Definition at line 2144 of file DWARFASTParserClang.cpp.
References lldb_private::Type::GetByteSize(), DWARFBaseDIE::HasChildren(), lldb_private::CompilerType::IsIntegerType(), and ParseChildEnumerators().
Referenced by CompleteTypeFromDWARF().
|
private |
Definition at line 2056 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::AddMethodOverridesForCXXRecordType(), lldb_private::ClangASTImporter::LayoutInfo::base_offsets, lldb_private::ClangASTImporter::LayoutInfo::bit_size, lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessPublic, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, lldb_private::TypeSystemClang::GetAsCXXRecordDecl(), DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::Type::GetByteSize(), GetClangASTImporter(), DWARFBaseDIE::GetDWARF(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::TypeSystemClang::GetType(), lldb_private::CompilerType::GetTypeName(), DWARFBaseDIE::HasChildren(), m_ast, ParseChildMembers(), RequireCompleteType(), DWARFDIE::ResolveType(), lldb_private::ClangASTImporter::SetRecordLayout(), DWARFBaseDIE::Tag(), lldb_private::TypeSystemClang::TransferBaseClasses(), and lldb_private::ClangASTImporter::LayoutInfo::vbase_offsets.
Referenced by CompleteTypeFromDWARF().
|
overridevirtual |
Implements DWARFASTParser.
Definition at line 2159 of file DWARFASTParserClang.cpp.
References CompleteEnumType(), CompleteRecordType(), DWARFBaseDIE::GetDWARF(), lldb_private::CompilerType::GetOpaqueQualType(), m_ast, lldb_private::TypeSystemClang::SetHasExternalStorage(), and DWARFBaseDIE::Tag().
|
protected |
Definition at line 3450 of file DWARFASTParserClang.cpp.
References lldb_private::UniqueCStringMap< T >::Find(), DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::UniqueCStringMap< T >::GetCStringAtIndex(), DWARFBaseDIE::GetCU(), DWARFDIE::GetDIE(), SymbolFileDWARF::GetDIEToType(), DWARFBaseDIE::GetDWARF(), SymbolFileDWARF::GetDWARFParser(), DWARFDIE::GetFirstChild(), lldb_private::Type::GetFullCompilerType(), DWARFDIE::GetMangledName(), lldb_private::UniqueCStringMap< T >::GetSize(), lldb_private::UniqueCStringMap< T >::GetValueAtIndexUnchecked(), lldb_private::UniqueCStringMap< T >::IsEmpty(), DWARFBaseDIE::IsValid(), LinkDeclContextToDIE(), m_die_to_decl_ctx, lldb_private::UniqueCStringMap< T >::Sort(), and DWARFBaseDIE::Tag().
Referenced by ParseSubroutine().
|
overridevirtual |
Implements DWARFASTParser.
Definition at line 2193 of file DWARFASTParserClang.cpp.
References DWARFDIE::children(), GetClangDeclForDIE(), lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and m_decl_ctx_to_die.
|
protected |
Definition at line 3433 of file DWARFASTParserClang.cpp.
References DWARFDIE::GetDIE(), and m_die_to_decl_ctx.
Referenced by GetClangDeclContextForDIE(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), and ParseTypeFromDWARF().
ClangASTImporter & DWARFASTParserClang::GetClangASTImporter | ( | ) |
Definition at line 92 of file DWARFASTParserClang.cpp.
References m_clang_ast_importer_up.
Referenced by CompleteRecordType(), SymbolFileDWARF::CompleteType(), SymbolFileDWARF::HasForwardDeclForClangType(), ParseStructureLikeDIE(), ParseTypeFromClangModule(), and ParseTypeModifier().
|
protected |
Definition at line 3414 of file DWARFASTParserClang.cpp.
References GetClangDeclContextForDIE(), DWARFBaseDIE::GetDWARF(), lldb_private::TypeSystemClang::GetTranslationUnitDecl(), and m_ast.
Referenced by GetDeclContextContainingUIDFromDWARF(), ParseEnum(), ParseFunctionFromDWARF(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromDWARF(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 3234 of file DWARFASTParserClang.cpp.
References GetCachedClangDeclContextForDIE(), GetDeclContextForBlock(), DWARFBaseDIE::GetDWARF(), lldb_private::TypeSystemClang::GetTranslationUnitDecl(), LinkDeclContextToDIE(), m_ast, ResolveNamespaceDIE(), SymbolFileDWARF::ResolveType(), and DWARFBaseDIE::Tag().
Referenced by GetClangDeclContextContainingDIE(), GetDeclContextForUIDFromDWARF(), and ParseSubroutine().
|
protected |
Definition at line 3136 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateUsingDeclaration(), lldb_private::TypeSystemClang::CreateUsingDirectiveDeclaration(), lldb_private::TypeSystemClang::CreateVariableDeclaration(), DWARFDIE::GetAttributeValueAsReferenceDIE(), SymbolFileDWARF::GetDecl(), SymbolFileDWARF::GetDeclContext(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), DWARFBaseDIE::GetID(), DWARFDIE::GetName(), lldb_private::CompilerDecl::GetOpaqueDecl(), GetOwningClangModule(), DWARFDIE::GetReferencedDIE(), GetTypeForDIE(), m_ast, m_die_to_decl, and DWARFBaseDIE::Tag().
Referenced by EnsureAllDIEsInDeclContextHaveBeenParsed(), and GetDeclForUIDFromDWARF().
|
overridevirtual |
Implements DWARFASTParser.
Definition at line 2220 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateDeclContext(), GetClangDeclContextContainingDIE(), and m_ast.
Referenced by GetDeclContextForBlock().
|
protected |
Definition at line 3351 of file DWARFASTParserClang.cpp.
References FindFirstChildWithAbstractOrigin(), GetContainingFunctionWithAbstractOrigin(), GetDeclContextContainingUIDFromDWARF(), lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), ResolveBlockDIE(), and DWARFBaseDIE::Tag().
Referenced by GetClangDeclContextForDIE().
|
overridevirtual |
Implements DWARFASTParser.
Definition at line 2212 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateDeclContext(), GetClangDeclContextForDIE(), and m_ast.
|
overridevirtual |
Implements DWARFASTParser.
Definition at line 2204 of file DWARFASTParserClang.cpp.
References GetClangDeclForDIE(), lldb_private::TypeSystemClang::GetCompilerDecl(), and m_ast.
|
protected |
|
protected |
Definition at line 3277 of file DWARFASTParserClang.cpp.
References DWARFBaseDIE::GetAttributeValueAsString(), DWARFDIE::GetDIE(), lldb_private::TypeSystemClang::GetOrCreateClangModule(), DWARFDIE::GetParent(), DWARFBaseDIE::IsValid(), m_ast, and m_die_to_module.
Referenced by GetClangDeclForDIE(), ParseChildParameters(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
Definition at line 3115 of file DWARFASTParserClang.cpp.
References DWARFAttributes::AttributeAtIndex(), DWARFAttributes::ExtractFormValueAtIndex(), DWARFBaseDIE::GetAttributes(), DWARFBaseDIE::GetDWARF(), and DWARFFormValue::Reference().
Referenced by GetClangDeclForDIE().
|
protected |
Definition at line 3442 of file DWARFASTParserClang.cpp.
References DWARFDIE::GetDIE(), m_decl_ctx_to_die, and m_die_to_decl_ctx.
Referenced by CopyUniqueClassMethodTypes(), GetClangDeclContextForDIE(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), ParseTypeFromDWARF(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
|
private |
Definition at line 1294 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::bit_stride, ParsedDWARFTypeAttributes::byte_stride, lldb_private::TypeSystemClang::CreateArrayType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, lldb_private::DW_TAG_value_to_name(), lldb_private::Type::GetByteSize(), DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), DWARFBaseDIE::GetID(), ParsedDWARFTypeAttributes::is_vector, m_ast, DWARFASTParser::ParseChildArrayInfo(), DWARFFormValue::Reference(), RequireCompleteType(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 2228 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::AddEnumerationValueToEnumerationType(), DWARFFormValue::AsCString(), DWARFAttributes::AttributeAtIndex(), DWARFDIE::children(), DWARFAttributes::CompileUnitAtIndex(), DWARFAttributes::ExtractFormValueAtIndex(), DWARFUnit::GetFile(), m_ast, lldb_private::Declaration::SetColumn(), lldb_private::Declaration::SetFile(), lldb_private::Declaration::SetLine(), DWARFFormValue::Signed(), and DWARFFormValue::Unsigned().
Referenced by CompleteEnumType(), and ParseEnum().
|
protected |
Definition at line 2851 of file DWARFASTParserClang.cpp.
References DWARFDIE::children(), DWARFBaseDIE::GetDWARF(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::CompilerType::GetTypeSystem(), ParseInheritance(), ParseObjCProperty(), ParseSingleMember(), and DWARFBaseDIE::Tag().
Referenced by CompleteRecordType().
|
protected |
Definition at line 2900 of file DWARFASTParserClang.cpp.
References DWARFFormValue::AsCString(), DWARFAttributes::AttributeAtIndex(), DWARFFormValue::Boolean(), DWARFDIE::children(), lldb_private::TypeSystemClang::CreateParameterDeclaration(), DeclKindIsCXXClass(), DWARFAttributes::ExtractFormValueAtIndex(), DWARFBaseDIE::GetAttributes(), lldb_private::Type::GetEncodingMask(), lldb_private::Type::GetForwardCompilerType(), DWARFBaseDIE::GetID(), GetOwningClangModule(), m_ast, DWARFFormValue::Reference(), DWARFDIE::ResolveTypeUID(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), and DWARFBaseDIE::Tag().
Referenced by ParseFunctionFromDWARF(), and ParseSubroutine().
|
private |
Definition at line 770 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::byte_size, lldb_private::TypeSystemClang::CreateEnumerationType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, lldb_private::DW_TAG_value_to_name(), lldb::eBasicTypeInt, SymbolFileDWARFDebugMap::FindDefinitionTypeForDWARFDeclContext(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize(), lldb_private::CompilerType::GetByteSize(), GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), lldb_private::ConstString::GetCString(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), SymbolFileDWARF::GetDWARFDeclContext(), lldb_private::TypeSystemClang::GetEnumerationIntegerType(), lldb_private::Type::GetFullCompilerType(), DWARFBaseDIE::GetID(), lldb_private::GetLog(), DWARFBaseDIE::GetOffset(), GetOwningClangModule(), lldb_private::ConstString::GetStringRef(), DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_forward_declaration, ParsedDWARFTypeAttributes::is_scoped_enum, lldb_private::CompilerType::IsIntegerType(), DWARFFormValue::IsValid(), LinkDeclContextToDIE(), m_ast, ParsedDWARFTypeAttributes::name, ParseChildEnumerators(), ParseTypeFromClangModule(), DWARFFormValue::Reference(), lldb_private::CompilerType::SetCompilerType(), DWARFBaseDIE::Tag(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
overridevirtual |
Implements DWARFASTParser.
Definition at line 2295 of file DWARFASTParserClang.cpp.
References lldb_private::CompileUnit::AddFunction(), DIE_IS_BEING_PARSED, lldb_private::AddressRange::GetBaseAddress(), GetClangDeclContextContainingDIE(), DWARFBaseDIE::GetCU(), DWARFDIE::GetDIE(), DWARFDIE::GetDIENamesAndRanges(), DWARFBaseDIE::GetDWARF(), SymbolFileDWARF::GetDWARFDeclContext(), DWARFUnit::GetFile(), DWARFBaseDIE::GetID(), SymbolFileDWARF::GetLanguage(), DWARFDIE::GetParent(), DWARFDeclContext::GetQualifiedName(), lldb_private::StreamString::GetString(), lldb_private::DWARFExpression::IsValid(), lldb_private::Address::IsValid(), ParseChildParameters(), and DWARFBaseDIE::Tag().
|
private |
Parses a DW_TAG_inheritance DIE into a base/super class.
die | The DW_TAG_inheritance DIE to parse. |
parent_die | The parent DIE of the given DIE. |
class_clang_type | The C++/Objective-C class representing parent_die. For an Objective-C class this method sets the super class on success. For a C++ class this will not add the result as a base class. |
default_accessibility | The default accessibility that is given to base classes if they don't have an explicit accessibility set. |
module_sp | The current Module. |
base_classes | The list of C++ base classes that will be appended with the parsed base class on success. |
layout_info | The layout information that will be updated for C++ base classes with the base offset. |
Definition at line 1370 of file DWARFASTParserClang.cpp.
References DWARFAttributes::AttributeAtIndex(), lldb_private::ClangASTImporter::LayoutInfo::base_offsets, DWARFFormValue::BlockData(), DWARFFormValue::Boolean(), lldb_private::TypeSystemClang::CreateBaseClassSpecifier(), DW_ACCESS_to_AccessType(), lldb::eRegisterKindDWARF, DWARFAttributes::ExtractFormValueAtIndex(), lldb_private::TypeSystemClang::GetAsCXXRecordDecl(), DWARFBaseDIE::GetAttributes(), DWARFBaseDIE::GetCU(), DWARFBaseDIE::GetData(), lldb_private::DataExtractor::GetDataStart(), lldb_private::Type::GetFullCompilerType(), DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::GetTypeSystem(), DWARFFormValue::Reference(), DWARFDIE::ResolveTypeUID(), lldb_private::Value::ResolveValue(), lldb_private::TypeSystemClang::SetObjCSuperClass(), lldb_private::Scalar::UInt(), and DWARFFormValue::Unsigned().
Referenced by ParseChildMembers().
|
private |
Parses a DW_TAG_APPLE_property DIE and appends the parsed data to the list of delayed Objective-C properties.
Note: The delayed property needs to be finalized to actually create the property declarations in the module AST.
die | The DW_TAG_APPLE_property DIE that will be parsed. |
parent_die | The parent DIE. |
class_clang_type | The Objective-C class that will contain the created property. |
delayed_properties | The list of delayed properties that the result will be appended to. |
Definition at line 2567 of file DWARFASTParserClang.cpp.
References DWARFBaseDIE::GetDWARF(), DWARFBaseDIE::GetID(), lldb_private::Type::GetLayoutCompilerType(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFDIE::ResolveTypeUID(), lldb_private::ClangASTMetadata::SetUserID(), and DWARFBaseDIE::Tag().
Referenced by ParseChildMembers().
|
private |
Definition at line 1347 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::containing_type, lldb_private::CompilerType::GetByteSize(), DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), DWARFBaseDIE::GetID(), LLDB_INVALID_UID, ParsedDWARFTypeAttributes::name, DWARFFormValue::Reference(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
private |
Definition at line 2603 of file DWARFASTParserClang.cpp.
References lldb_private::ClangASTImporter::LayoutInfo::base_offsets, DWARFASTParserClang::FieldInfo::bit_offset, DWARFASTParserClang::FieldInfo::bit_size, lldb_private::TypeSystemClang::CreateArrayType(), lldb_private::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eAccessPublic, lldb::eByteOrderLittle, lldb::eEncodingSint, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::TypeSystemClang::GetBuiltinTypeForEncodingAndBitSize(), lldb_private::ObjectFile::GetByteOrder(), lldb_private::Type::GetByteSize(), lldb_private::CompilerType::GetCompleteType(), DWARFBaseDIE::GetCU(), DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), DWARFBaseDIE::GetID(), lldb_private::Type::GetLayoutCompilerType(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), GetUnitName(), lldb_private::CompilerType::IsArrayType(), DWARFASTParserClang::FieldInfo::IsBitfield(), lldb_private::CompilerType::IsCompleteType(), m_ast, DWARFASTParserClang::FieldInfo::NextBitfieldOffsetIsValid(), RequireCompleteType(), DWARFDIE::ResolveTypeUID(), DWARFASTParserClang::FieldInfo::SetIsBitfield(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), DWARFUnit::Supports_unnamed_objc_bitfields(), DWARFBaseDIE::Tag(), UINT32_MAX, and UINT64_MAX.
Referenced by ParseChildMembers().
|
protected |
Parse a structure, class, or union type DIE.
Definition at line 1517 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::accessibility, lldb_private::ClangASTImporter::LayoutInfo::bit_size, ParsedDWARFTypeAttributes::byte_size, ParsedDWARFTypeAttributes::calling_convention, ParsedDWARFTypeAttributes::class_language, lldb_private::Declaration::Clear(), lldb_private::TypeSystemClang::CreateClassTemplateSpecializationDecl(), lldb_private::TypeSystemClang::CreateClassTemplateSpecializationType(), lldb_private::TypeSystemClang::CreateRecordType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, DeclKindIsCXXClass(), lldb_private::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessPublic, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, ParsedDWARFTypeAttributes::exports_symbols, SymbolFileDWARFDebugMap::FindCompleteObjCDefinitionTypeForDIE(), SymbolFileDWARFDebugMap::FindDefinitionTypeForDWARFDeclContext(), lldb_private::TypeSystemClang::GetAsCXXRecordDecl(), GetCachedClangDeclContextForDIE(), GetClangASTImporter(), GetClangDeclContextContainingDIE(), lldb_private::ConstString::GetCString(), DWARFBaseDIE::GetCU(), lldb_private::TypeSystemClang::GetDeclContextForType(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDIERef(), DWARFBaseDIE::GetDWARF(), SymbolFileDWARF::GetDWARFDeclContext(), DWARFBaseDIE::GetID(), SymbolFileDWARF::GetLanguage(), lldb_private::GetLog(), DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), GetOwningClangModule(), DWARFDIE::GetQualifiedName(), lldb_private::ConstString::GetStringRef(), DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_complete_objc_class, ParsedDWARFTypeAttributes::is_forward_declaration, LinkDeclContextToDIE(), LLDB_INVALID_UID, m_ast, ParsedDWARFTypeAttributes::name, lldb_private::TypeSystemClang::ParseClassTemplateDecl(), ParseTemplateParameterInfos(), ParseTypeFromClangModule(), PrepareContextToReceiveMembers(), lldb_private::CompilerType::SetCompilerType(), lldb_private::TypeSystemClang::SetHasExternalStorage(), lldb_private::ClangASTMetadata::SetIsDynamicCXXType(), lldb_private::TypeSystemClang::SetMetadata(), lldb_private::ClangASTImporter::SetRecordLayout(), lldb_private::ClangASTMetadata::SetUserID(), string(), DWARFBaseDIE::Supports_DW_AT_APPLE_objc_complete_type(), and DWARFBaseDIE::Tag().
Referenced by ParseTypeFromDWARF().
|
private |
Definition at line 908 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::abstract_origin, ParsedDWARFTypeAttributes::accessibility, lldb_private::TypeSystemClang::AddMethodToCXXRecordType(), lldb_private::TypeSystemClang::AddMethodToObjCObjectType(), ConvertDWARFCallingConventionToClang(), CopyUniqueClassMethodTypes(), lldb_private::TypeSystemClang::CreateFunctionDeclaration(), lldb_private::TypeSystemClang::CreateFunctionTemplateDecl(), lldb_private::TypeSystemClang::CreateFunctionTemplateSpecializationInfo(), lldb_private::TypeSystemClang::CreateFunctionType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, DeclKindIsCXXClass(), DIE_IS_BEING_PARSED, lldb_private::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eAccessPublic, lldb::eBasicTypeVoid, lldb_private::TypeSystemClang::GetBasicType(), GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), GetClangDeclContextForDIE(), lldb_private::ObjCLanguage::MethodName::GetClassName(), lldb_private::ConstString::GetCString(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), lldb_private::Type::GetFullCompilerType(), lldb_private::UserID::GetID(), DWARFBaseDIE::GetID(), lldb_private::GetLog(), DWARFDIE::GetName(), lldb_private::Type::GetName(), DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), GetOwningClangModule(), lldb_private::ConstString::GetStringRef(), lldb_private::TypeSystemClang::GetTranslationUnitDecl(), DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_artificial, ParsedDWARFTypeAttributes::is_explicit, ParsedDWARFTypeAttributes::is_inline, ParsedDWARFTypeAttributes::is_objc_direct_call, ParsedDWARFTypeAttributes::is_virtual, lldb_private::CompilerType::IsBeingDefined(), IsClangModuleFwdDecl(), lldb_private::ObjCLanguage::MethodName::IsValid(), DWARFFormValue::IsValid(), LinkDeclContextToDIE(), LLDB_INVALID_UID, LLDB_LOGF, lldbassert, m_ast, ParsedDWARFTypeAttributes::mangled_name, ParsedDWARFTypeAttributes::name, ParsedDWARFTypeAttributes::object_pointer, ParseChildParameters(), ParseTemplateParameterInfos(), DWARFFormValue::Reference(), lldb_private::TypeSystemClang::SetFunctionParameters(), lldb_private::TypeSystemClang::SetMetadata(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), lldb_private::ClangASTMetadata::SetObjectPtrName(), lldb_private::ClangASTMetadata::SetUserID(), ParsedDWARFTypeAttributes::specification, ParsedDWARFTypeAttributes::storage, string(), DWARFBaseDIE::Tag(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 1923 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::TemplateParameterInfos::args, DWARFFormValue::AsCString(), DWARFAttributes::AttributeAtIndex(), DWARFDIE::children(), lldb_private::TypeSystemClang::CreateTemplateTemplateParmDecl(), lldb::eBasicTypeVoid, DWARFAttributes::ExtractFormValueAtIndex(), lldb_private::TypeSystemClang::getASTContext(), DWARFBaseDIE::GetAttributes(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::CompilerType::GetBitSize(), lldb_private::Type::GetForwardCompilerType(), DWARFDIE::GetName(), lldb_private::CompilerType::IsIntegerOrEnumerationType(), m_ast, lldb_private::TypeSystemClang::TemplateParameterInfos::names, lldb_private::TypeSystemClang::TemplateParameterInfos::pack_name, lldb_private::TypeSystemClang::TemplateParameterInfos::packed_args, DWARFFormValue::Reference(), DWARFDIE::ResolveTypeUID(), DWARFBaseDIE::Tag(), and DWARFFormValue::Unsigned().
Referenced by ParseTemplateParameterInfos().
|
protected |
Definition at line 2031 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::TemplateParameterInfos::args, DWARFDIE::children(), lldb_private::TypeSystemClang::TemplateParameterInfos::names, and ParseTemplateDIE().
Referenced by ParseStructureLikeDIE(), and ParseSubroutine().
|
protected |
Follow Clang Module Skeleton CU references to find a type definition.
Definition at line 145 of file DWARFASTParserClang.cpp.
References lldb_private::SymbolContext::comp_unit, lldb_private::ClangASTImporter::CopyType(), lldb::eEncodingInvalid, lldb_private::TypeMap::Empty(), SymbolFileDWARF::ForEachExternalModule(), GetCachedClangDeclContextForDIE(), GetClangASTImporter(), GetContainingClangModule(), DWARFBaseDIE::GetCU(), DWARFDIE::GetDeclContext(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), DWARFBaseDIE::GetID(), SymbolFileDWARF::GetLanguageFamily(), GetOwningClangModule(), lldb_private::TypeMap::GetSize(), DWARFUnit::GetSymbolFileDWARF(), lldb_private::TypeMap::GetTypeAtIndex(), lldb_private::LanguageSet::Insert(), lldb_private::CompilerType::IsDefined(), LinkDeclContextToDIE(), LLDB_INVALID_UID, m_ast, and lldb_private::ClangASTImporter::RequireCompleteType().
Referenced by ParseEnum(), ParseStructureLikeDIE(), and ParseTypeModifier().
|
overridevirtual |
Implements DWARFASTParser.
Definition at line 438 of file DWARFASTParserClang.cpp.
References DIE_IS_BEING_PARSED, lldb_private::DW_TAG_value_to_name(), GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), lldb_private::GetLog(), DWARFDIE::GetName(), DWARFBaseDIE::GetOffset(), DWARFBaseDIE::GetTagAsCString(), LinkDeclContextToDIE(), ParseArrayType(), ParseEnum(), ParsePointerToMemberType(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeModifier(), DWARFFormValue::Reference(), ParsedDWARFTypeAttributes::signature, DWARFBaseDIE::Tag(), and UpdateSymbolContextScopeForType().
Referenced by ParseTypeModifier().
|
private |
Definition at line 548 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::byte_size, DWARFDIE::children(), DWARFFormValue::Clear(), lldb_private::TypeSystemClang::CreateBlockPointerType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, lldb_private::DW_TAG_value_to_name(), lldb::eBasicTypeNullPtr, lldb::eBasicTypeObjCClass, lldb::eBasicTypeObjCID, lldb::eBasicTypeObjCSel, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, ParsedDWARFTypeAttributes::encoding, DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize(), GetClangASTImporter(), GetClangDeclContextContainingDIE(), lldb_private::ConstString::GetCString(), DWARFBaseDIE::GetCU(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), DWARFBaseDIE::GetID(), SymbolFileDWARF::GetLanguage(), lldb_private::GetLog(), DWARFDIE::GetName(), DWARFBaseDIE::GetOffset(), GetOwningClangModule(), DWARFDIE::GetReferencedDIE(), lldb_private::ConstString::GetStringRef(), DWARFBaseDIE::GetTagAsCString(), DWARFFormValue::IsValid(), m_ast, ParsedDWARFTypeAttributes::name, ParseTypeFromClangModule(), ParseTypeFromDWARF(), PrepareContextToReceiveMembers(), DWARFFormValue::Reference(), DWARFBaseDIE::Tag(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 3365 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateBlockDeclaration(), GetClangDeclContextContainingDIE(), DWARFDIE::GetDIE(), GetOwningClangModule(), LinkDeclContextToDIE(), m_ast, m_die_to_decl_ctx, and DWARFBaseDIE::Tag().
Referenced by GetDeclContextForBlock().
|
protected |
Definition at line 3387 of file DWARFASTParserClang.cpp.
References DWARFBaseDIE::GetAttributeValueAsUnsigned(), GetClangDeclContextContainingDIE(), DWARFDIE::GetDIE(), DWARFDIE::GetName(), GetOwningClangModule(), lldb_private::TypeSystemClang::GetUniqueNamespaceDeclaration(), LinkDeclContextToDIE(), m_ast, m_die_to_decl_ctx, and DWARFBaseDIE::Tag().
Referenced by GetClangDeclContextForDIE().
|
protected |
If type_sp
is valid, calculate and set its symbol context scope, and update the type list for its backing symbol file.
Returns type_sp
.
Definition at line 1487 of file DWARFASTParserClang.cpp.
References lldb_private::SymbolContext::comp_unit, lldb_private::Block::FindBlockByID(), lldb_private::SymbolContext::function, lldb_private::Function::GetBlock(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), DWARFBaseDIE::GetID(), SymbolFileDWARF::GetParentSymbolContextDIE(), lldb_private::SymbolContext::module_sp, and DWARFBaseDIE::Tag().
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 87 of file DWARFASTParserClang.h.
Referenced by CompleteRecordType(), CompleteTypeFromDWARF(), GetClangDeclContextContainingDIE(), GetClangDeclContextForDIE(), GetClangDeclForDIE(), GetDeclContextContainingUIDFromDWARF(), GetDeclContextForUIDFromDWARF(), GetDeclForUIDFromDWARF(), GetOwningClangModule(), ParseArrayType(), ParseChildEnumerators(), ParseChildParameters(), ParseEnum(), ParseSingleMember(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTemplateDIE(), ParseTypeFromClangModule(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 92 of file DWARFASTParserClang.h.
Referenced by GetClangASTImporter().
|
protected |
Definition at line 90 of file DWARFASTParserClang.h.
Referenced by EnsureAllDIEsInDeclContextHaveBeenParsed(), and LinkDeclContextToDIE().
|
protected |
Definition at line 88 of file DWARFASTParserClang.h.
Referenced by GetClangDeclForDIE().
|
protected |
Definition at line 89 of file DWARFASTParserClang.h.
Referenced by CopyUniqueClassMethodTypes(), GetCachedClangDeclContextForDIE(), LinkDeclContextToDIE(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 91 of file DWARFASTParserClang.h.
Referenced by GetOwningClangModule().