LLDB mainline
|
#include <DWARFASTParserClang.h>
Classes | |
class | DelayedAddObjCClassProperty |
struct | FieldInfo |
struct | MemberAttributes |
Parsed form of all attributes that are relevant for parsing type members. More... | |
Static Protected Member Functions | |
static bool | classof (const DWARFASTParser *Parser) |
Additional Inherited Members | |
Public Types inherited from lldb_private::plugin::dwarf::DWARFASTParser | |
enum class | Kind { DWARFASTParserClang } |
Static Public Member Functions inherited from lldb_private::plugin::dwarf::DWARFASTParser | |
static std::optional< SymbolFile::ArrayInfo > | ParseChildArrayInfo (const DWARFDIE &parent_die, const ExecutionContext *exe_ctx=nullptr) |
static lldb::AccessType | GetAccessTypeFromDWARF (uint32_t dwarf_accessibility) |
Definition at line 43 of file DWARFASTParserClang.h.
|
protected |
Definition at line 123 of file DWARFASTParserClang.h.
|
protected |
Definition at line 115 of file DWARFASTParserClang.h.
|
protected |
Definition at line 120 of file DWARFASTParserClang.h.
|
protected |
Definition at line 130 of file DWARFASTParserClang.h.
|
protected |
Definition at line 127 of file DWARFASTParserClang.h.
DWARFASTParserClang::DWARFASTParserClang | ( | lldb_private::TypeSystemClang & | ast | ) |
Definition at line 66 of file DWARFASTParserClang.cpp.
|
overridedefault |
|
inlinestaticprotected |
Definition at line 249 of file DWARFASTParserClang.h.
References lldb_private::plugin::dwarf::DWARFASTParser::DWARFASTParserClang.
|
private |
Definition at line 2240 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb_private::Type::GetByteSize(), lldb_private::plugin::dwarf::DWARFBaseDIE::HasChildren(), lldb_private::CompilerType::IsIntegerType(), ParseChildEnumerators(), and lldb_private::TypeSystemClang::StartTagDeclarationDefinition().
Referenced by CompleteTypeFromDWARF().
|
private |
Definition at line 2140 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::AddMethodOverridesForCXXRecordType(), lldb_private::ClangASTImporter::LayoutInfo::alignment, lldb_private::ClangASTImporter::LayoutInfo::base_offsets, lldb_private::ClangASTImporter::LayoutInfo::bit_size, lldb_private::TypeSystemClang::BuildIndirectFields(), lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessPublic, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, lldb_private::TypeSystemClang::GetAsCXXRecordDecl(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::Type::GetByteSize(), GetClangASTImporter(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::TypeSystemClang::GetType(), lldb_private::CompilerType::GetTypeName(), lldb_private::plugin::dwarf::DWARFBaseDIE::HasChildren(), lldb_private::TypeSystemClang::IsObjCObjectOrInterfaceType(), m_ast, ParseChildMembers(), lldb_private::TypeSystemClang::RequireCompleteType(), lldb_private::plugin::dwarf::DWARFDIE::ResolveType(), lldb_private::ClangASTImporter::SetRecordLayout(), lldb_private::TypeSystemClang::StartTagDeclarationDefinition(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), lldb_private::TypeSystemClang::TransferBaseClasses(), and lldb_private::ClangASTImporter::LayoutInfo::vbase_offsets.
Referenced by CompleteTypeFromDWARF().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2255 of file DWARFASTParserClang.cpp.
References CompleteEnumType(), CompleteRecordType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::CompilerType::GetOpaqueQualType(), m_ast, lldb_private::TypeSystemClang::SetHasExternalStorage(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2390 of file DWARFASTParserClang.cpp.
References GetClangDeclContextContainingDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDWARFDeclContext(), lldb_private::plugin::dwarf::DWARFDeclContext::GetQualifiedName(), lldb_private::StreamString::GetString(), and ParseChildParameters().
Referenced by ParseFunctionFromDWARF().
|
protected |
Definition at line 3658 of file DWARFASTParserClang.cpp.
References lldb_private::UniqueCStringMap< T >::Find(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::UniqueCStringMap< T >::GetCStringAtIndex(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDIEToType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDWARFParser(), lldb_private::plugin::dwarf::DWARFDIE::GetFirstChild(), lldb_private::Type::GetFullCompilerType(), lldb_private::plugin::dwarf::DWARFDIE::GetMangledName(), lldb_private::UniqueCStringMap< T >::GetSize(), lldb_private::UniqueCStringMap< T >::GetValueAtIndexUnchecked(), lldb_private::UniqueCStringMap< T >::IsEmpty(), lldb_private::plugin::dwarf::DWARFBaseDIE::IsValid(), LinkDeclContextToDIE(), m_die_to_decl_ctx, lldb_private::UniqueCStringMap< T >::Sort(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ParseSubroutine().
|
private |
If the specified 'die' represents a static data member, creates a 'clang::VarDecl' for it and attaches it to specified parent 'class_clang_type'.
[in] | die | The member declaration we want to create a clang::VarDecl for. |
[in] | attrs | The parsed attributes for the specified 'die'. |
[in] | class_clang_type | The parent RecordType of the static member this function will create. |
Definition at line 2845 of file DWARFASTParserClang.cpp.
References DWARFASTParserClang::MemberAttributes::accessibility, lldb_private::TypeSystemClang::AddVariableToRecordType(), DWARFASTParserClang::MemberAttributes::const_value_form, lldb::eAccessNone, lldb::eAccessPublic, DWARFASTParserClang::MemberAttributes::encoding_form, ExtractIntFromFormValue(), lldb_private::Type::GetForwardCompilerType(), lldb_private::GetLog(), lldb_private::CompilerType::IsIntegerOrEnumerationType(), LLDB_LOG, LLDB_LOG_ERROR, DWARFASTParserClang::MemberAttributes::name, lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), lldb_private::TypeSystemClang::SetIntegerInitializerForVariable(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ParseChildMembers(), and ParseSingleMember().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2288 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::children(), GetClangDeclForDIE(), lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and m_decl_ctx_to_die.
llvm::Expected< llvm::APInt > DWARFASTParserClang::ExtractIntFromFormValue | ( | const lldb_private::CompilerType & | int_type, |
const lldb_private::plugin::dwarf::DWARFFormValue & | form_value | ||
) | const |
Extracts an value for a given Clang integer type from a DWARFFormValue.
int_type | The Clang type that defines the bit size and signedness of the integer that should be extracted. Has to be either an integer type or an enum type. For enum types the underlying integer type will be considered as the expected integer type that should be extracted. |
form_value | The DWARFFormValue that contains the integer value. |
Definition at line 2789 of file DWARFASTParserClang.cpp.
References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb_private::TypeSystemClang::getASTContext(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::plugin::dwarf::DWARFFormValue::Signed(), and lldb_private::plugin::dwarf::DWARFFormValue::Unsigned().
Referenced by CreateStaticMemberVariable().
|
protected |
Definition at line 3641 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), and m_die_to_decl_ctx.
Referenced by GetClangDeclContextForDIE(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), and ParseTypeFromDWARF().
ClangASTImporter & DWARFASTParserClang::GetClangASTImporter | ( | ) |
Definition at line 84 of file DWARFASTParserClang.cpp.
References m_clang_ast_importer_up.
Referenced by CompleteRecordType(), lldb_private::plugin::dwarf::SymbolFileDWARF::CompleteType(), lldb_private::plugin::dwarf::SymbolFileDWARF::HasForwardDeclForCompilerType(), ParseStructureLikeDIE(), ParseTypeFromClangModule(), and ParseTypeModifier().
|
protected |
Definition at line 3622 of file DWARFASTParserClang.cpp.
References GetClangDeclContextForDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::TypeSystemClang::GetTranslationUnitDecl(), and m_ast.
Referenced by ConstructDemangledNameFromDWARF(), GetDeclContextContainingUIDFromDWARF(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromDWARF(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 3401 of file DWARFASTParserClang.cpp.
References GetCachedClangDeclContextForDIE(), GetDeclContextForBlock(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::TypeSystemClang::GetTranslationUnitDecl(), LinkDeclContextToDIE(), m_ast, ResolveImportedDeclarationDIE(), ResolveNamespaceDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ResolveType(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by GetClangDeclContextContainingDIE(), GetDeclContextForUIDFromDWARF(), and ParseSubroutine().
|
protected |
Definition at line 3296 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateUsingDeclaration(), lldb_private::TypeSystemClang::CreateUsingDirectiveDeclaration(), lldb_private::TypeSystemClang::CreateVariableDeclaration(), lldb_private::TypeSystemClang::DeclContextGetAsDeclContext(), lldb_private::TypeSystemClang::DeclContextGetAsNamespaceDecl(), lldb_private::plugin::dwarf::DWARFDIE::GetAttributeValueAsReferenceDIE(), GetClangDeclForDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDecl(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDeclContext(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::CompilerDecl::GetOpaqueDecl(), GetOwningClangModule(), lldb_private::plugin::dwarf::DWARFDIE::GetParent(), lldb_private::ClangUtil::GetQualType(), lldb_private::plugin::dwarf::DWARFDIE::GetReferencedDIE(), lldb_private::plugin::dwarf::DWARFASTParser::GetTypeForDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::IsValid(), m_ast, m_die_to_decl, lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and TagIsRecordType().
Referenced by EnsureAllDIEsInDeclContextHaveBeenParsed(), GetClangDeclForDIE(), and GetDeclForUIDFromDWARF().
|
protected |
Definition at line 1543 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFBaseDIE::Clear(), GetDIEClassTemplateParams(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFDIE::GetParentDeclContextDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::IsValid(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ParseStructureLikeDIE().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2315 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateDeclContext(), GetClangDeclContextContainingDIE(), and m_ast.
Referenced by GetDeclContextForBlock().
|
protected |
Definition at line 3523 of file DWARFASTParserClang.cpp.
References FindFirstChildWithAbstractOrigin(), GetContainingFunctionWithAbstractOrigin(), GetDeclContextContainingUIDFromDWARF(), lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), ResolveBlockDIE(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by GetClangDeclContextForDIE().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2307 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateDeclContext(), GetClangDeclContextForDIE(), and m_ast.
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2299 of file DWARFASTParserClang.cpp.
References GetClangDeclForDIE(), lldb_private::TypeSystemClang::GetCompilerDecl(), and m_ast.
|
overridevirtual |
Returns the template parameters of a class DWARFDIE as a string.
This is mostly useful for -gsimple-template-names which omits template parameters from the DIE name and instead always adds template parameter children DIEs.
die | The struct/class DWARFDIE containing template parameters. |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 796 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::GetName(), m_ast, ParseTemplateParameterInfos(), and lldb_private::TypeSystemClang::PrintTemplateParams().
Referenced by GetCPlusPlusQualifiedName().
|
protected |
|
protected |
Definition at line 3449 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsString(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::TypeSystemClang::GetOrCreateClangModule(), GetOwningClangModule(), lldb_private::plugin::dwarf::DWARFDIE::GetParent(), lldb_private::plugin::dwarf::DWARFBaseDIE::IsValid(), m_ast, and m_die_to_module.
Referenced by GetClangDeclForDIE(), GetOwningClangModule(), ParseChildParameters(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 3650 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), m_decl_ctx_to_die, and m_die_to_decl_ctx.
Referenced by CopyUniqueClassMethodTypes(), GetClangDeclContextForDIE(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), ParseTypeFromDWARF(), ResolveBlockDIE(), ResolveImportedDeclarationDIE(), and ResolveNamespaceDIE().
|
protected |
|
private |
Definition at line 1333 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::bit_stride, ParsedDWARFTypeAttributes::byte_stride, lldb_private::TypeSystemClang::CreateArrayType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb_private::Type::eEncodingIsUID, lldb_private::Type::GetByteSize(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::ClangUtil::GetQualType(), ParsedDWARFTypeAttributes::is_vector, m_ast, lldb_private::plugin::dwarf::DWARFASTParser::ParseChildArrayInfo(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::TypeSystemClang::RequireCompleteType(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 2323 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::AddEnumerationValueToEnumerationType(), lldb_private::plugin::dwarf::DWARFFormValue::AsCString(), lldb_private::plugin::dwarf::DWARFAttributes::AttributeAtIndex(), lldb_private::plugin::dwarf::DWARFDIE::children(), lldb_private::plugin::dwarf::DWARFAttributes::CompileUnitAtIndex(), lldb_private::plugin::dwarf::DWARFAttributes::ExtractFormValueAtIndex(), lldb_private::plugin::dwarf::DWARFUnit::GetFile(), m_ast, lldb_private::Declaration::SetColumn(), lldb_private::Declaration::SetFile(), lldb_private::Declaration::SetLine(), lldb_private::plugin::dwarf::DWARFFormValue::Signed(), lldb_private::plugin::dwarf::DWARFAttributes::Size(), and lldb_private::plugin::dwarf::DWARFFormValue::Unsigned().
Referenced by CompleteEnumType(), and ParseEnum().
|
protected |
Definition at line 3111 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::children(), CreateStaticMemberVariable(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb::eLanguageTypeRust, lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFUnit::GetDWARFLanguageType(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::CompilerType::GetTypeSystem(), ParseInheritance(), ParseObjCProperty(), ParseRustVariantPart(), ParseSingleMember(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by CompleteRecordType().
|
protected |
Definition at line 3174 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFFormValue::AsCString(), lldb_private::plugin::dwarf::DWARFAttributes::AttributeAtIndex(), lldb_private::plugin::dwarf::DWARFFormValue::Boolean(), lldb_private::plugin::dwarf::DWARFDIE::children(), lldb_private::TypeSystemClang::CreateParameterDeclaration(), DeclKindIsCXXClass(), lldb_private::Type::eEncodingIsConstUID, lldb_private::Type::eEncodingIsPointerUID, lldb_private::Type::eEncodingIsVolatileUID, lldb_private::plugin::dwarf::DWARFAttributes::ExtractFormValueAtIndex(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributes(), lldb_private::Type::GetEncodingMask(), lldb_private::Type::GetForwardCompilerType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), GetOwningClangModule(), m_ast, lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), lldb_private::plugin::dwarf::DWARFAttributes::Size(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ConstructDemangledNameFromDWARF(), and ParseSubroutine().
|
private |
Definition at line 807 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::byte_size, lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb_private::TypeSystemClang::CreateEnumerationType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eBasicTypeInt, lldb_private::Type::eEncodingIsUID, lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::FindDefinitionTypeForDWARFDeclContext(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize(), lldb_private::CompilerType::GetByteSize(), GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), lldb_private::ConstString::GetCString(), lldb_private::TypeSystemClang::GetDeclContextForType(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetFullCompilerType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::GetLog(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), GetOwningClangModule(), lldb_private::ConstString::GetStringRef(), lldb_private::plugin::dwarf::DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_forward_declaration, ParsedDWARFTypeAttributes::is_scoped_enum, lldb_private::CompilerType::IsIntegerType(), lldb_private::plugin::dwarf::DWARFFormValue::IsValid(), LinkDeclContextToDIE(), m_ast, ParsedDWARFTypeAttributes::name, ParseChildEnumerators(), ParseTypeFromClangModule(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::TypeSystemClang::StartTagDeclarationDefinition(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2423 of file DWARFASTParserClang.cpp.
References lldb_private::CompileUnit::AddFunction(), ConstructDemangledNameFromDWARF(), DIE_IS_BEING_PARSED, lldb_private::AddressRange::GetBaseAddress(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetDIENamesAndRanges(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFUnit::GetFile(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetLanguage(), lldb_private::plugin::dwarf::DWARFDIE::GetParent(), lldb_private::Address::IsValid(), lldb_private::DWARFExpressionList::IsValid(), lldb_private::Language::LanguageIsCPlusPlus(), lldb_private::Language::LanguageIsObjC(), lldb_private::Mangled::SetValue(), and lldb_private::plugin::dwarf::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 1414 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFAttributes::AttributeAtIndex(), lldb_private::ClangASTImporter::LayoutInfo::base_offsets, lldb_private::plugin::dwarf::DWARFFormValue::Boolean(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), ExtractDataMemberLocation(), lldb_private::plugin::dwarf::DWARFAttributes::ExtractFormValueAtIndex(), lldb_private::plugin::dwarf::DWARFASTParser::GetAccessTypeFromDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributes(), lldb_private::Type::GetFullCompilerType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::TypeSystemClang::IsObjCObjectOrInterfaceType(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), lldb_private::plugin::dwarf::DWARFAttributes::Size(), and lldb_private::plugin::dwarf::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 2753 of file DWARFASTParserClang.cpp.
References DWARFASTParserClang::MemberAttributes::encoding_form, lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::Type::GetLayoutCompilerType(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), lldb_private::ClangASTMetadata::SetUserID(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ParseChildMembers().
|
private |
Definition at line 1387 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::containing_type, lldb_private::TypeSystemClang::CreateMemberPointerType(), lldb_private::Type::eEncodingIsUID, lldb_private::CompilerType::GetByteSize(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), LLDB_INVALID_UID, ParsedDWARFTypeAttributes::name, lldb_private::plugin::dwarf::DWARFFormValue::Reference(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
private |
Parses DW_TAG_variant_part DIE into a structure that encodes all variants Note that this is currently being emitted by rustc and not Clang.
die | DW_TAG_variant_part DIE to parse |
parent_die | The parent DW_TAG_structure_type to parse |
class_clang_type | The Rust struct representing parent_die. |
default_accesibility | The default accessibility that is given to base classes if they don't have an explicit accessibility set |
layout_info | The layout information that will be updated for |
Definition at line 3842 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::AddFieldToRecordType(), lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb_private::TypeSystemClang::CreateRecordType(), lldb::eAccessPublic, lldb::eLanguageTypeRust, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::TypeSystemClang::GetDeclContextForType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetLanguage(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::CompilerType::GetTypeName(), m_ast, lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), lldb_private::TypeSystemClang::SetIsPacked(), lldb_private::TypeSystemClang::StartTagDeclarationDefinition(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ParseChildMembers().
|
private |
Definition at line 2884 of file DWARFASTParserClang.cpp.
References DWARFASTParserClang::MemberAttributes::accessibility, lldb_private::TypeSystemClang::AddFieldToRecordType(), DWARFASTParserClang::FieldInfo::bit_offset, DWARFASTParserClang::MemberAttributes::bit_offset, DWARFASTParserClang::FieldInfo::bit_size, DWARFASTParserClang::MemberAttributes::bit_size, DWARFASTParserClang::MemberAttributes::byte_size, lldb_private::TypeSystemClang::CreateArrayType(), CreateStaticMemberVariable(), DWARFASTParserClang::MemberAttributes::data_bit_offset, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eByteOrderLittle, lldb::eEncodingSint, DWARFASTParserClang::MemberAttributes::encoding_form, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::TypeSystemClang::GetBuiltinTypeForEncodingAndBitSize(), lldb_private::ObjectFile::GetByteOrder(), lldb_private::Type::GetByteSize(), lldb_private::CompilerType::GetCompleteType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::Type::GetLayoutCompilerType(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), GetUnitName(), DWARFASTParserClang::MemberAttributes::is_artificial, DWARFASTParserClang::MemberAttributes::is_declaration, lldb_private::CompilerType::IsArrayType(), DWARFASTParserClang::FieldInfo::IsBitfield(), lldb_private::CompilerType::IsCompleteType(), lldb_private::TypeSystemClang::IsObjCObjectOrInterfaceType(), m_ast, DWARFASTParserClang::MemberAttributes::member_byte_offset, DWARFASTParserClang::MemberAttributes::name, DWARFASTParserClang::FieldInfo::NextBitfieldOffsetIsValid(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::TypeSystemClang::RequireCompleteType(), lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), DWARFASTParserClang::FieldInfo::SetIsArtificial(), DWARFASTParserClang::FieldInfo::SetIsBitfield(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), ShouldCreateUnnamedBitfield(), ShouldIgnoreArtificialField(), lldb_private::plugin::dwarf::DWARFUnit::Supports_unnamed_objc_bitfields(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), UINT32_MAX, and UINT64_MAX.
Referenced by ParseChildMembers().
|
protected |
Parse a structure, class, or union type DIE.
Definition at line 1598 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::accessibility, lldb_private::ClangASTImporter::LayoutInfo::alignment, ParsedDWARFTypeAttributes::alignment, lldb_private::ClangASTImporter::LayoutInfo::bit_size, ParsedDWARFTypeAttributes::byte_size, ParsedDWARFTypeAttributes::calling_convention, ParsedDWARFTypeAttributes::class_language, lldb_private::Declaration::Clear(), lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb_private::TypeSystemClang::CreateClassTemplateSpecializationDecl(), lldb_private::TypeSystemClang::CreateClassTemplateSpecializationType(), lldb_private::TypeSystemClang::CreateRecordType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, DeclKindIsCXXClass(), lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessPublic, lldb_private::Type::eEncodingIsUID, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, ParsedDWARFTypeAttributes::exports_symbols, lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::FindCompleteObjCDefinitionTypeForDIE(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::FindDefinitionTypeForDWARFDeclContext(), lldb_private::TypeSystemClang::GetAsCXXRecordDecl(), lldb_private::TypeSystemClang::GetAsRecordDecl(), GetCachedClangDeclContextForDIE(), GetClangASTImporter(), GetClangDeclContextContainingDIE(), GetCPlusPlusQualifiedName(), lldb_private::ConstString::GetCString(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::TypeSystemClang::GetDeclContextForType(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDIERef(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetLanguage(), lldb_private::GetLog(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), GetOwningClangModule(), lldb_private::plugin::dwarf::DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_complete_objc_class, ParsedDWARFTypeAttributes::is_forward_declaration, lldb_private::Language::LanguageIsCPlusPlus(), LinkDeclContextToDIE(), LLDB_INVALID_UID, m_ast, ParsedDWARFTypeAttributes::name, lldb_private::TypeSystemClang::ParseClassTemplateDecl(), ParseTemplateParameterInfos(), ParseTypeFromClangModule(), PrepareContextToReceiveMembers(), lldb_private::ClangUtil::RemoveFastQualifiers(), lldb_private::TypeSystemClang::SetHasExternalStorage(), lldb_private::ClangASTMetadata::SetIsDynamicCXXType(), lldb_private::TypeSystemClang::SetMetadata(), lldb_private::ClangASTImporter::SetRecordLayout(), lldb_private::ClangASTMetadata::SetUserID(), lldb_private::TypeSystemClang::StartTagDeclarationDefinition(), lldb_private::plugin::dwarf::DWARFBaseDIE::Supports_DW_AT_APPLE_objc_complete_type(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and UNUSED_IF_ASSERT_DISABLED.
Referenced by ParseTypeFromDWARF().
|
private |
Definition at line 934 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::abstract_origin, ParsedDWARFTypeAttributes::accessibility, lldb_private::TypeSystemClang::AddMethodToCXXRecordType(), lldb_private::TypeSystemClang::AddMethodToObjCObjectType(), ConvertDWARFCallingConventionToClang(), CopyUniqueClassMethodTypes(), lldb_private::ObjCLanguage::MethodName::Create(), 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::plugin::dwarf::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eAccessPublic, lldb::eBasicTypeVoid, lldb_private::Type::eEncodingIsUID, lldb_private::TypeSystemClang::getASTContext(), lldb_private::TypeSystemClang::GetBasicType(), GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), GetClangDeclContextForDIE(), lldb_private::ConstString::GetCString(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), lldb_private::Type::GetFullCompilerType(), lldb_private::UserID::GetID(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::GetLog(), lldb_private::Type::GetName(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), GetOwningClangModule(), lldb_private::ConstString::GetStringRef(), lldb_private::TypeSystemClang::GetTranslationUnitDecl(), lldb_private::plugin::dwarf::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::TypeSystemClang::IsCXXClassType(), lldb_private::TypeSystemClang::IsObjCObjectOrInterfaceType(), lldb_private::plugin::dwarf::DWARFFormValue::IsValid(), LinkDeclContextToDIE(), LLDB_INVALID_UID, LLDB_LOGF, lldbassert, m_ast, ParsedDWARFTypeAttributes::mangled_name, ParsedDWARFTypeAttributes::name, ParsedDWARFTypeAttributes::object_pointer, ParseChildParameters(), ParseTemplateParameterInfos(), ParsedDWARFTypeAttributes::ref_qual, lldb_private::plugin::dwarf::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, lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 1999 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFFormValue::AsCString(), lldb_private::plugin::dwarf::DWARFAttributes::AttributeAtIndex(), lldb_private::plugin::dwarf::DWARFFormValue::Boolean(), lldb_private::plugin::dwarf::DWARFDIE::children(), lldb_private::TypeSystemClang::CreateTemplateTemplateParmDecl(), lldb::eBasicTypeVoid, lldb_private::plugin::dwarf::DWARFAttributes::ExtractFormValueAtIndex(), lldb_private::TypeSystemClang::getASTContext(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributes(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::CompilerType::GetBitSize(), lldb_private::Type::GetForwardCompilerType(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::TypeSystemClang::TemplateParameterInfos::GetParameterPack(), lldb_private::ClangUtil::GetQualType(), lldb_private::TypeSystemClang::TemplateParameterInfos::InsertArg(), lldb_private::CompilerType::IsIntegerOrEnumerationType(), m_ast, ParseTemplateDIE(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), lldb_private::TypeSystemClang::TemplateParameterInfos::SetPackName(), lldb_private::TypeSystemClang::TemplateParameterInfos::SetParameterPack(), lldb_private::plugin::dwarf::DWARFAttributes::Size(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and lldb_private::plugin::dwarf::DWARFFormValue::Unsigned().
Referenced by ParseTemplateDIE(), and ParseTemplateParameterInfos().
|
protected |
Definition at line 2113 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::children(), lldb_private::TypeSystemClang::TemplateParameterInfos::hasParameterPack(), lldb_private::TypeSystemClang::TemplateParameterInfos::IsEmpty(), and ParseTemplateDIE().
Referenced by GetDIEClassTemplateParams(), ParseStructureLikeDIE(), and ParseSubroutine().
|
protected |
Follow Clang Module Skeleton CU references to find a type definition.
Definition at line 157 of file DWARFASTParserClang.cpp.
References lldb_private::TypeQuery::AddLanguage(), lldb_private::TypeResults::AlreadySearched(), lldb_private::SymbolContext::comp_unit, lldb_private::ClangASTImporter::CopyType(), lldb_private::Type::eEncodingInvalid, lldb_private::TypeMap::FirstType(), lldb_private::TypeSystemClang::GetAsTagDecl(), GetCachedClangDeclContextForDIE(), GetClangASTImporter(), GetContainingClangModule(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFDIE::GetDeclContext(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetLanguageFamily(), GetOwningClangModule(), lldb_private::ClangUtil::GetQualType(), lldb_private::TypeResults::GetSearchedSymbolFiles(), lldb_private::plugin::dwarf::DWARFUnit::GetSymbolFileDWARF(), lldb_private::TypeResults::GetTypeMap(), lldb_private::CompilerType::IsDefined(), LinkDeclContextToDIE(), LLDB_INVALID_UID, m_ast, and lldb_private::ClangASTImporter::RequireCompleteType().
Referenced by ParseEnum(), ParseStructureLikeDIE(), and ParseTypeModifier().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 434 of file DWARFASTParserClang.cpp.
References DIE_IS_BEING_PARSED, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::GetLog(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetTagAsCString(), LinkDeclContextToDIE(), ParseArrayType(), ParseEnum(), ParsePointerToMemberType(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromDWARF(), ParseTypeModifier(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), ParsedDWARFTypeAttributes::signature, lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and UpdateSymbolContextScopeForType().
Referenced by ParseTypeFromDWARF(), and ParseTypeModifier().
|
private |
Definition at line 573 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::byte_size, lldb_private::plugin::dwarf::DWARFDIE::children(), lldb_private::plugin::dwarf::DWARFFormValue::Clear(), lldb_private::TypeSystemClang::CreateBlockPointerType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eBasicTypeNullPtr, lldb::eBasicTypeObjCClass, lldb::eBasicTypeObjCID, lldb::eBasicTypeObjCSel, lldb_private::Type::eEncodingIsAtomicUID, lldb_private::Type::eEncodingIsConstUID, lldb_private::Type::eEncodingIsLValueReferenceUID, lldb_private::Type::eEncodingIsPointerUID, lldb_private::Type::eEncodingIsRestrictUID, lldb_private::Type::eEncodingIsRValueReferenceUID, lldb_private::Type::eEncodingIsTypedefUID, lldb_private::Type::eEncodingIsUID, lldb_private::Type::eEncodingIsVolatileUID, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, ParsedDWARFTypeAttributes::encoding, lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize(), GetClangASTImporter(), GetClangDeclContextContainingDIE(), lldb_private::ConstString::GetCString(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetLanguage(), lldb_private::GetLog(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), GetOwningClangModule(), lldb_private::plugin::dwarf::DWARFDIE::GetReferencedDIE(), lldb_private::ConstString::GetStringRef(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetTagAsCString(), lldb_private::plugin::dwarf::DWARFFormValue::IsValid(), m_ast, ParsedDWARFTypeAttributes::name, ParseTypeFromClangModule(), ParseTypeFromDWARF(), PrepareContextToReceiveMembers(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 3537 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateBlockDeclaration(), GetClangDeclContextContainingDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), GetOwningClangModule(), LinkDeclContextToDIE(), m_ast, m_die_to_decl_ctx, and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by GetDeclContextForBlock().
|
protected |
Returns the namespace decl that a DW_TAG_imported_declaration imports.
[in] | die | The import declaration to resolve. If the DIE is not a DW_TAG_imported_declaration the behaviour is undefined. |
Definition at line 3587 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::GetAttributeValueAsReferenceDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), LinkDeclContextToDIE(), m_die_to_decl_ctx, ResolveImportedDeclarationDIE(), ResolveNamespaceDIE(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by GetClangDeclContextForDIE(), and ResolveImportedDeclarationDIE().
|
protected |
Definition at line 3559 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), GetClangDeclContextContainingDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), GetOwningClangModule(), lldb_private::TypeSystemClang::GetUniqueNamespaceDeclaration(), LinkDeclContextToDIE(), m_ast, m_die_to_decl_ctx, and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by GetClangDeclContextForDIE(), and ResolveImportedDeclarationDIE().
|
private |
Returns 'true' if we should create an unnamed bitfield and add it to the parser's current AST.
[in] | last_field_info | FieldInfo of the previous DW_TAG_member we parsed. |
[in] | last_field_end | Offset (in bits) where the last parsed field ended. |
[in] | this_field_info | FieldInfo of the current DW_TAG_member being parsed. |
[in] | layout_info | Layout information of all decls parsed by the current parser. |
Definition at line 3810 of file DWARFASTParserClang.cpp.
References lldb_private::ClangASTImporter::LayoutInfo::base_offsets, DWARFASTParserClang::FieldInfo::bit_offset, DWARFASTParserClang::FieldInfo::bit_size, and DWARFASTParserClang::FieldInfo::IsArtificial().
Referenced by ParseSingleMember().
|
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 1513 of file DWARFASTParserClang.cpp.
References lldb_private::SymbolContext::comp_unit, lldb_private::Block::FindBlockByID(), lldb_private::SymbolContext::function, lldb_private::Function::GetBlock(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetParentSymbolContextDIE(), lldb_private::SymbolContext::module_sp, and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 132 of file DWARFASTParserClang.h.
Referenced by CompleteRecordType(), CompleteTypeFromDWARF(), GetClangDeclContextContainingDIE(), GetClangDeclContextForDIE(), GetClangDeclForDIE(), GetDeclContextContainingUIDFromDWARF(), GetDeclContextForUIDFromDWARF(), GetDeclForUIDFromDWARF(), GetDIEClassTemplateParams(), GetOwningClangModule(), ParseArrayType(), ParseChildEnumerators(), ParseChildParameters(), ParseEnum(), ParseRustVariantPart(), ParseSingleMember(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTemplateDIE(), ParseTypeFromClangModule(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 137 of file DWARFASTParserClang.h.
Referenced by GetClangASTImporter().
|
protected |
Definition at line 135 of file DWARFASTParserClang.h.
Referenced by EnsureAllDIEsInDeclContextHaveBeenParsed(), and LinkDeclContextToDIE().
|
protected |
Definition at line 133 of file DWARFASTParserClang.h.
Referenced by GetClangDeclForDIE().
|
protected |
Definition at line 134 of file DWARFASTParserClang.h.
Referenced by CopyUniqueClassMethodTypes(), GetCachedClangDeclContextForDIE(), LinkDeclContextToDIE(), ResolveBlockDIE(), ResolveImportedDeclarationDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 136 of file DWARFASTParserClang.h.
Referenced by GetOwningClangModule().