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 44 of file DWARFASTParserClang.h.
|
protected |
Definition at line 127 of file DWARFASTParserClang.h.
|
protected |
Definition at line 119 of file DWARFASTParserClang.h.
|
protected |
Definition at line 124 of file DWARFASTParserClang.h.
|
protected |
Definition at line 134 of file DWARFASTParserClang.h.
|
protected |
Definition at line 131 of file DWARFASTParserClang.h.
DWARFASTParserClang::DWARFASTParserClang | ( | lldb_private::TypeSystemClang & | ast | ) |
Definition at line 68 of file DWARFASTParserClang.cpp.
|
overridedefault |
|
inlinestaticprotected |
Definition at line 255 of file DWARFASTParserClang.h.
References lldb_private::plugin::dwarf::DWARFASTParser::DWARFASTParserClang.
|
private |
Definition at line 2153 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 2058 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::AddMethodOverridesForCXXRecordType(), lldb_private::ClangASTImporter::LayoutInfo::alignment, lldb_private::ClangASTImporter::LayoutInfo::bit_size, lldb_private::TypeSystemClang::BuildIndirectFields(), lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessPublic, 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::CompilerType::IsBeingDefined(), 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(), and lldb_private::TypeSystemClang::TransferBaseClasses().
Referenced by CompleteTypeFromDWARF().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2168 of file DWARFASTParserClang.cpp.
References CompleteEnumType(), CompleteRecordType(), lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb_private::ClangUtil::GetAsTagDecl(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::IsBeingDefined(), m_ast, lldb_private::TypeSystemClang::SetDeclIsForcefullyCompleted(), lldb_private::TypeSystemClang::SetHasExternalStorage(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2313 of file DWARFASTParserClang.cpp.
References GetClangDeclContextContainingDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetDWARFDeclContext(), lldb_private::plugin::dwarf::DWARFDeclContext::GetQualifiedName(), lldb_private::StreamString::GetString(), and ParseChildParameters().
Referenced by ParseFunctionFromDWARF().
|
protected |
Definition at line 3581 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 ParseCXXMethod().
|
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 2768 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 2211 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 2712 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 3564 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), and m_die_to_decl_ctx.
Referenced by GetClangDeclContextForDIE(), MapDeclDIEToDefDIE(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), and ParseTypeFromDWARF().
ClangASTImporter & DWARFASTParserClang::GetClangASTImporter | ( | ) |
Definition at line 86 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(), ParseCXXMethod(), ParseStructureLikeDIE(), ParseTypeFromClangModule(), and ParseTypeModifier().
|
protected |
Definition at line 3545 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 3324 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 ParseCXXMethod().
|
protected |
Definition at line 3219 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().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2238 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateDeclContext(), GetClangDeclContextContainingDIE(), and m_ast.
Referenced by GetDeclContextForBlock().
|
protected |
Definition at line 3446 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 2230 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CreateDeclContext(), GetClangDeclContextForDIE(), and m_ast.
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2222 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 822 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::GetName(), m_ast, ParseTemplateParameterInfos(), and lldb_private::TypeSystemClang::PrintTemplateParams().
Referenced by GetUniqueTypeNameAndDeclaration().
|
protected |
|
protected |
Definition at line 3372 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 1583 of file DWARFASTParserClang.cpp.
References lldb_private::Declaration::Clear(), lldb_private::plugin::dwarf::DWARFBaseDIE::Clear(), lldb_private::ConstString::GetCString(), GetDIEClassTemplateParams(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFDIE::GetParentDeclContextDIE(), lldb_private::ConstString::IsEmpty(), lldb_private::plugin::dwarf::DWARFBaseDIE::IsValid(), lldb_private::Language::LanguageIsCPlusPlus(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by MapDeclDIEToDefDIE(), and ParseStructureLikeDIE().
|
protected |
Definition at line 3573 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(), MapDeclDIEToDefDIE(), ParseCXXMethod(), ParseEnum(), ParseObjCMethod(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), ParseTypeFromDWARF(), ResolveBlockDIE(), ResolveImportedDeclarationDIE(), and ResolveNamespaceDIE().
|
protected |
void DWARFASTParserClang::MapDeclDIEToDefDIE | ( | const lldb_private::plugin::dwarf::DWARFDIE & | decl_die, |
const lldb_private::plugin::dwarf::DWARFDIE & | def_die | ||
) |
Definition at line 833 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::byte_size, ParsedDWARFTypeAttributes::decl, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), GetCachedClangDeclContextForDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetLanguage(), lldb_private::GetLog(), GetUniqueTypeNameAndDeclaration(), ParsedDWARFTypeAttributes::is_forward_declaration, LinkDeclContextToDIE(), LLDB_LOG, ParsedDWARFTypeAttributes::name, and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::CompleteType().
|
private |
Definition at line 1377 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 2246 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 3034 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 3097 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 |
Helper function called by ParseSubroutine when parsing C++ methods.
[in] | die | The DIE that represents the C++ method being parsed. |
[in] | clang_type | The CompilerType representing the function prototype of the C++ method being parsed. |
[in] | attrs | DWARF attributes for die. |
[in] | decl_ctx_die | The DIE representing the DeclContext of the C++ method being parsed. |
[in] | is_static | Is true iff we're parsing a static method. |
[out] | ignore_containing_context | Will get set to true if the caller should treat this C++ method as-if it was not a C++ method. Currently used as a hack to work around templated C++ methods causing class definitions to mismatch between CUs. |
Definition at line 1041 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::abstract_origin, ParsedDWARFTypeAttributes::accessibility, lldb_private::TypeSystemClang::AddMethodToCXXRecordType(), CopyUniqueClassMethodTypes(), DIE_IS_BEING_PARSED, lldb::eAccessNone, lldb::eAccessPublic, GetClangASTImporter(), GetClangDeclContextForDIE(), lldb_private::ConstString::GetCString(), lldb_private::TypeSystemClang::GetDeclContextForType(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), lldb_private::UserID::GetID(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::GetLog(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::plugin::dwarf::DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_artificial, ParsedDWARFTypeAttributes::is_explicit, ParsedDWARFTypeAttributes::is_inline, ParsedDWARFTypeAttributes::is_virtual, IsClangModuleFwdDecl(), lldb_private::TypeSystemClang::IsCXXClassType(), lldb_private::plugin::dwarf::DWARFFormValue::IsValid(), LinkDeclContextToDIE(), LLDB_LOGF, m_ast, ParsedDWARFTypeAttributes::mangled_name, ParsedDWARFTypeAttributes::name, ParsedDWARFTypeAttributes::object_pointer, PrepareContextToReceiveMembers(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::TypeSystemClang::SetMetadata(), lldb_private::ClangASTMetadata::SetObjectPtrName(), lldb_private::ClangASTMetadata::SetUserID(), and ParsedDWARFTypeAttributes::specification.
Referenced by ParseSubroutine().
|
private |
Definition at line 861 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::byte_size, lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb_private::TypeSystemClang::CreateEnumerationType(), ParsedDWARFTypeAttributes::decl, DIE_IS_BEING_PARSED, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eBasicTypeInt, lldb_private::Type::eEncodingIsUID, lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::FindDefinitionDIE(), lldb_private::TypeSystemClang::GetBasicType(), lldb_private::TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize(), lldb_private::CompilerType::GetByteSize(), 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 2346 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 1458 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 |
Helper function called by ParseSubroutine when parsing ObjC-methods.
[in] | objc_method | Name of the ObjC method being parsed. |
[in] | die | The DIE that represents the ObjC method being parsed. |
[in] | clang_type | The CompilerType representing the function prototype of the ObjC method being parsed. |
[in] | attrs | DWARF attributes for die. |
[in] | is_variadic | Is true iff we're parsing a variadic method. |
Definition at line 994 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::AddMethodToObjCObjectType(), lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb_private::ObjCLanguage::MethodName::GetClassName(), lldb_private::ConstString::GetCString(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetOffset(), ParsedDWARFTypeAttributes::is_artificial, ParsedDWARFTypeAttributes::is_objc_direct_call, lldb_private::TypeSystemClang::IsObjCObjectOrInterfaceType(), LinkDeclContextToDIE(), m_ast, ParsedDWARFTypeAttributes::name, lldb_private::TypeSystemClang::SetMetadataAsUserID(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ParseSubroutine().
|
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 2676 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 1431 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 3765 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 2807 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 1643 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::accessibility, ParsedDWARFTypeAttributes::byte_size, ParsedDWARFTypeAttributes::calling_convention, ParsedDWARFTypeAttributes::class_language, 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::TypeSystemClang::GetAsCXXRecordDecl(), GetCachedClangDeclContextForDIE(), GetClangASTImporter(), GetClangDeclContextContainingDIE(), 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::CompilerType::GetOpaqueQualType(), GetOwningClangModule(), GetUniqueTypeNameAndDeclaration(), lldb_private::plugin::dwarf::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::ClangUtil::RemoveFastQualifiers(), lldb_private::TypeSystemClang::SetHasExternalStorage(), lldb_private::ClangASTMetadata::SetIsDynamicCXXType(), lldb_private::TypeSystemClang::SetMetadata(), lldb_private::ClangASTMetadata::SetUserID(), 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 1173 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::abstract_origin, ConvertDWARFCallingConventionToClang(), 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(), lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eBasicTypeVoid, lldb_private::Type::eEncodingIsUID, lldb_private::TypeSystemClang::getASTContext(), lldb_private::TypeSystemClang::GetBasicType(), GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::GetLog(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), GetOwningClangModule(), lldb_private::ConstString::GetStringRef(), lldb_private::TypeSystemClang::GetTranslationUnitDecl(), lldb_private::plugin::dwarf::DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_inline, lldb_private::plugin::dwarf::DWARFFormValue::IsValid(), LinkDeclContextToDIE(), LLDB_INVALID_UID, LLDB_LOGF, lldbassert, m_ast, ParsedDWARFTypeAttributes::mangled_name, ParsedDWARFTypeAttributes::name, ParsedDWARFTypeAttributes::object_pointer, ParseChildParameters(), ParseCXXMethod(), ParseObjCMethod(), ParseTemplateParameterInfos(), ParsedDWARFTypeAttributes::ref_qual, lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::TypeSystemClang::SetFunctionParameters(), lldb_private::TypeSystemClang::SetMetadata(), lldb_private::ClangASTMetadata::SetObjectPtrName(), lldb_private::ClangASTMetadata::SetUserID(), ParsedDWARFTypeAttributes::storage, lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 1917 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 2031 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 159 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::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 430 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(), 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 595 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::eEncodingIsLLVMPtrAuthUID, 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::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(), GetPtrAuthMofidierPayload(), lldb_private::plugin::dwarf::DWARFDIE::GetReferencedDIE(), lldb_private::ConstString::GetStringRef(), 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 3460 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 3510 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 3482 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 3733 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 1557 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::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 136 of file DWARFASTParserClang.h.
Referenced by CompleteRecordType(), CompleteTypeFromDWARF(), GetClangDeclContextContainingDIE(), GetClangDeclContextForDIE(), GetClangDeclForDIE(), GetDeclContextContainingUIDFromDWARF(), GetDeclContextForUIDFromDWARF(), GetDeclForUIDFromDWARF(), GetDIEClassTemplateParams(), GetOwningClangModule(), ParseArrayType(), ParseChildEnumerators(), ParseChildParameters(), ParseCXXMethod(), ParseEnum(), ParseObjCMethod(), ParseRustVariantPart(), ParseSingleMember(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTemplateDIE(), ParseTypeFromClangModule(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 141 of file DWARFASTParserClang.h.
Referenced by GetClangASTImporter().
|
protected |
Definition at line 139 of file DWARFASTParserClang.h.
Referenced by EnsureAllDIEsInDeclContextHaveBeenParsed(), and LinkDeclContextToDIE().
|
protected |
Definition at line 137 of file DWARFASTParserClang.h.
Referenced by GetClangDeclForDIE().
|
protected |
Definition at line 138 of file DWARFASTParserClang.h.
Referenced by CopyUniqueClassMethodTypes(), GetCachedClangDeclContextForDIE(), LinkDeclContextToDIE(), ResolveBlockDIE(), ResolveImportedDeclarationDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 140 of file DWARFASTParserClang.h.
Referenced by GetOwningClangModule().