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 141 of file DWARFASTParserClang.h.
|
protected |
Definition at line 133 of file DWARFASTParserClang.h.
|
protected |
Definition at line 138 of file DWARFASTParserClang.h.
|
protected |
Definition at line 148 of file DWARFASTParserClang.h.
|
protected |
Definition at line 145 of file DWARFASTParserClang.h.
DWARFASTParserClang::DWARFASTParserClang | ( | lldb_private::TypeSystemClang & | ast | ) |
Definition at line 73 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFASTParser::DWARFASTParser(), DWARFASTParserClang(), m_ast, m_decl_ctx_to_die, and m_die_to_decl_ctx.
Referenced by CopyUniqueClassMethodTypes(), and DWARFASTParserClang().
|
overridedefault |
|
private |
Tries to detect whether class_clang_type contained an unnamed bit-field between previous_field and current_field, and if so, adds a clang::FieldDecl representing that bit-field to class_clang_type.
This is necessary because Clang (and GCC) doesn't emit a DW_TAG_member entry for unnamed bit-fields. So we derive it (with some exceptions), by checking whether there is a gap between where the storage of a DW_TAG_member ended and the subsequent DW_TAG_member began.
[in,out] | layout_info | Layout information of all decls parsed by the current parser. Will contain an entry for the unnamed bit-field if this function created one. |
[in] | class_clang_type | The RecordType to which the unnamed bit-field will be added (if any). |
[in] | previous_field | FieldInfo of the previous DW_TAG_member we parsed. |
[in] | current_field | FieldInfo of the current DW_TAG_member being parsed. |
Definition at line 3829 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::AddFieldToRecordType(), DWARFASTParserClang::FieldInfo::bit_offset, lldb::eAccessPublic, lldb::eEncodingSint, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, DWARFASTParserClang::FieldInfo::GetEffectiveFieldEnd(), DWARFASTParserClang::FieldInfo::IsBitfield(), m_ast, and ShouldCreateUnnamedBitfield().
Referenced by ParseSingleMember().
|
inlinestaticprotected |
Definition at line 267 of file DWARFASTParserClang.h.
References lldb_private::plugin::dwarf::DWARFASTParser::DWARFASTParser(), and lldb_private::plugin::dwarf::DWARFASTParser::DWARFASTParserClang.
|
private |
Definition at line 2297 of file DWARFASTParserClang.cpp.
References lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb_private::Type::GetByteSize(), lldb_private::plugin::dwarf::DWARFBaseDIE::HasChildren(), lldb_private::CompilerType::IsEnumerationIntegerTypeSigned(), lldb_private::CompilerType::IsEnumerationType(), ParseChildEnumerators(), and lldb_private::TypeSystemClang::StartTagDeclarationDefinition().
Referenced by CompleteTypeFromDWARF(), and ParseEnum().
|
private |
The forward declaration was C++ but the definition is Objective-C. We currently don't handle such situations. In such cases, keep the forward declaration without a definition to avoid violating Clang AST invariants.
Definition at line 2185 of file DWARFASTParserClang.cpp.
References lldb_private::ClangASTImporter::LayoutInfo::alignment, lldb_private::ClangASTImporter::LayoutInfo::bit_size, lldb_private::TypeSystemClang::BuildIndirectFields(), lldb_private::TypeSystemClang::CompleteTagDeclarationDefinition(), lldb_private::Continue, lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessPublic, lldb::eLanguageTypeUnknown, lldb_private::Expressions, lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), GetClangASTImporter(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::GetLog(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::GetTypeName(), lldb_private::CompilerType::IsBeingDefined(), lldb_private::TypeSystemClang::IsObjCObjectOrInterfaceType(), lldb_private::Language::LanguageIsObjC(), LLDB_LOG, m_ast, ParseChildMembers(), lldb_private::TypeSystemClang::RequireCompleteType(), lldb_private::plugin::dwarf::DWARFDIE::ResolveType(), lldb_private::ClangASTImporter::SetRecordLayout(), lldb_private::TypeSystemClang::StartTagDeclarationDefinition(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by CompleteTypeFromDWARF().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2314 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, and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2457 of file DWARFASTParserClang.cpp.
References GetClangDeclContextContainingDIE(), GetCXXMethodCVQuals(), lldb_private::plugin::dwarf::DWARFDIE::GetDWARFDeclContext(), GetObjectParameter(), lldb_private::plugin::dwarf::DWARFDeclContext::GetQualifiedName(), lldb_private::StreamString::GetString(), and ParseChildParameters().
Referenced by ParseFunctionFromDWARF().
|
protected |
Definition at line 3646 of file DWARFASTParserClang.cpp.
References DWARFASTParserClang(), 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 2932 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, lldb_private::Lookups, DWARFASTParserClang::MemberAttributes::name, lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), lldb_private::TypeSystemClang::SetIntegerInitializerForVariable(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and lldb_private::TypeCompletion.
Referenced by ParseChildMembers(), and ParseSingleMember().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2357 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 2876 of file DWARFASTParserClang.cpp.
References 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 3629 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 91 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 3610 of file DWARFASTParserClang.cpp.
References GetClangDeclContextForDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), and m_ast.
Referenced by ConstructDemangledNameFromDWARF(), GetDeclContextContainingUIDFromDWARF(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromDWARF(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 3389 of file DWARFASTParserClang.cpp.
References GetCachedClangDeclContextForDIE(), GetDeclContextForBlock(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), 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 3284 of file DWARFASTParserClang.cpp.
References 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 2384 of file DWARFASTParserClang.cpp.
References GetClangDeclContextContainingDIE(), and m_ast.
Referenced by GetDeclContextForBlock().
|
protected |
Definition at line 3511 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 2376 of file DWARFASTParserClang.cpp.
References GetClangDeclContextForDIE(), and m_ast.
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2368 of file DWARFASTParserClang.cpp.
References GetClangDeclForDIE(), 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 960 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::GetName(), and lldb_private::plugin::dwarf::DWARFDIE::GetReferencedDIE().
Referenced by GetUniqueTypeNameAndDeclaration().
|
protected |
DWARFDIE DWARFASTParserClang::GetObjectParameter | ( | const lldb_private::plugin::dwarf::DWARFDIE & | subprogram, |
const lldb_private::plugin::dwarf::DWARFDIE & | decl_ctx_die ) |
Get the object parameter DIE if one exists, otherwise returns a default DWARFDIE.
[in] | subprogram | DIE of function for which to get the object parameter. |
[in] | containing_decl_ctx | DIE representing declaration context of subprogram. If this DIE isn't a valid declaration context for class methods, assume no object parameter exists. |
Definition at line 165 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::children(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFDIE::IsStructUnionOrClass(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and lldb_private::plugin::dwarf::DWARFFormValue::Unsigned().
Referenced by ConstructDemangledNameFromDWARF(), and ParseSubroutine().
|
protected |
Definition at line 3437 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsString(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), GetOwningClangModule(), lldb_private::plugin::dwarf::DWARFDIE::GetParent(), lldb_private::plugin::dwarf::DWARFBaseDIE::IsValid(), m_ast, and m_die_to_module.
Referenced by GetClangDeclForDIE(), GetOwningClangModule(), ParseEnum(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromClangModule(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 1692 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 3638 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 974 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, lldb_private::Lookups, ParsedDWARFTypeAttributes::name, lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), and lldb_private::TypeCompletion.
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::CompleteType().
|
private |
Definition at line 1486 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::bit_stride, ParsedDWARFTypeAttributes::byte_stride, DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb_private::Type::eEncodingIsUID, lldb_private::Type::Full, 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(), and ParsedDWARFTypeAttributes::type.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 2392 of file DWARFASTParserClang.cpp.
References 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().
|
protected |
Definition at line 3174 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::children(), CreateStaticMemberVariable(), 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 3236 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::children(), lldb_private::plugin::dwarf::DWARFDIE::GetAttributeValueAsReferenceDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::Type::GetForwardCompilerType(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID(), 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] | object_parameter | The DIE of this subprogram's object parameter. May be an invalid DIE for C++ static methods. |
[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 1174 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::abstract_origin, ParsedDWARFTypeAttributes::accessibility, 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::plugin::dwarf::DWARFBaseDIE::GetID(), lldb_private::UserID::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::DWARFBaseDIE::IsValid(), lldb_private::plugin::dwarf::DWARFFormValue::IsValid(), LinkDeclContextToDIE(), LLDB_LOGF, lldb_private::Lookups, m_ast, MakeLLDBFuncAsmLabel(), ParsedDWARFTypeAttributes::name, PrepareContextToReceiveMembers(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::ClangASTMetadata::SetObjectPtrName(), lldb_private::ClangASTMetadata::SetUserID(), ParsedDWARFTypeAttributes::specification, and lldb_private::TypeCompletion.
Referenced by ParseSubroutine().
|
private |
Definition at line 1002 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::byte_size, CompleteEnumType(), ParsedDWARFTypeAttributes::decl, DIE_IS_BEING_PARSED, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eBasicTypeInt, lldb_private::Type::eEncodingIsUID, ParsedDWARFTypeAttributes::enum_kind, lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::FindDefinitionDIE(), lldb_private::Type::Forward, 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(), ParsedDWARFTypeAttributes::is_forward_declaration, ParsedDWARFTypeAttributes::is_scoped_enum, lldb_private::plugin::dwarf::DWARFFormValue::IsValid(), LinkDeclContextToDIE(), lldb_private::Lookups, m_ast, ParsedDWARFTypeAttributes::name, ParseTypeFromClangModule(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), ParsedDWARFTypeAttributes::type, and lldb_private::TypeCompletion.
Referenced by ParseTypeFromDWARF().
|
overridevirtual |
Implements lldb_private::plugin::dwarf::DWARFASTParser.
Definition at line 2492 of file DWARFASTParserClang.cpp.
References lldb_private::CompileUnit::AddFunction(), ConstructDemangledNameFromDWARF(), DIE_IS_BEING_PARSED, 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::DWARFExpressionList::IsValid(), lldb_private::Language::LanguageIsCPlusPlus(), lldb_private::Language::LanguageIsObjC(), lldb_private::Mangled::SetDemangledName(), lldb_private::Mangled::SetMangledName(), 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 1568 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DWARFAttributes::AttributeAtIndex(), lldb_private::ClangASTImporter::LayoutInfo::base_offsets, lldb_private::plugin::dwarf::DWARFFormValue::Boolean(), 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 1127 of file DWARFASTParserClang.cpp.
References lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb_private::ObjCLanguage::ObjCMethodName::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, 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 2840 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 1541 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::containing_type, lldb_private::TypeSystemClang::CreateMemberPointerType(), lldb_private::Type::eEncodingIsUID, lldb_private::Type::Forward, 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 3866 of file DWARFASTParserClang.cpp.
References lldb::eAccessPublic, lldb::eLanguageTypeRust, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), 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(), and lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().
Referenced by ParseChildMembers().
|
private |
Definition at line 2971 of file DWARFASTParserClang.cpp.
References DWARFASTParserClang::MemberAttributes::accessibility, lldb_private::TypeSystemClang::AddFieldToRecordType(), AddUnnamedBitfieldToRecordTypeIfNeeded(), DWARFASTParserClang::FieldInfo::bit_offset, DWARFASTParserClang::MemberAttributes::bit_offset, DWARFASTParserClang::FieldInfo::bit_size, DWARFASTParserClang::MemberAttributes::bit_size, DWARFASTParserClang::MemberAttributes::byte_size, CreateStaticMemberVariable(), DWARFASTParserClang::MemberAttributes::data_bit_offset, lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eByteOrderLittle, DWARFASTParserClang::MemberAttributes::encoding_form, lldb_private::ClangASTImporter::LayoutInfo::field_offsets, lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::ObjectFile::GetByteOrder(), lldb_private::Type::GetByteSize(), lldb_private::CompilerType::GetCompleteType(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), DWARFASTParserClang::FieldInfo::GetEffectiveFieldEnd(), DWARFASTParserClang::FieldInfo::GetFieldEnd(), 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::FieldInfo::is_bitfield, 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::SetEffectiveFieldEnd(), DWARFASTParserClang::FieldInfo::SetIsArtificial(), DWARFASTParserClang::FieldInfo::SetIsBitfield(), 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 1752 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::accessibility, lldb_private::ConstString::AsCString(), ParsedDWARFTypeAttributes::byte_size, ParsedDWARFTypeAttributes::calling_convention, ParsedDWARFTypeAttributes::class_language, 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::Type::Forward, 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(), ParsedDWARFTypeAttributes::is_complete_objc_class, ParsedDWARFTypeAttributes::is_forward_declaration, LinkDeclContextToDIE(), LLDB_INVALID_UID, lldb_private::Lookups, m_ast, ParsedDWARFTypeAttributes::name, ParseTemplateParameterInfos(), ParseTypeFromClangModule(), PrepareContextToReceiveMembers(), lldb_private::ClangUtil::RemoveFastQualifiers(), lldb_private::ClangASTMetadata::SetIsDynamicCXXType(), lldb_private::ClangASTMetadata::SetUserID(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), lldb_private::TypeCompletion, and UNUSED_IF_ASSERT_DISABLED.
Referenced by ParseTypeFromDWARF().
|
private |
Definition at line 1307 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::abstract_origin, ConvertDWARFCallingConventionToClang(), lldb_private::ObjCLanguage::ObjCMethodName::Create(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, DeclKindIsCXXClass(), lldb_private::plugin::dwarf::DW_TAG_value_to_name(), lldb::eBasicTypeVoid, lldb_private::Type::eEncodingIsUID, lldb_private::Type::Full, GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), GetCXXMethodCVQuals(), 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(), GetObjectParameter(), GetOwningClangModule(), lldb_private::ClangUtil::GetQualType(), lldb_private::ConstString::GetStringRef(), lldb_private::plugin::dwarf::DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_inline, lldb_private::plugin::dwarf::DWARFFormValue::IsValid(), LinkDeclContextToDIE(), LLDB_INVALID_UID, LLDB_LOGF, lldbassert, lldb_private::Lookups, m_ast, MakeLLDBFuncAsmLabel(), ParsedDWARFTypeAttributes::mangled_name, ParsedDWARFTypeAttributes::name, ParseChildParameters(), ParseCXXMethod(), ParseObjCMethod(), ParseTemplateParameterInfos(), ParsedDWARFTypeAttributes::ref_qual, lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::ClangASTMetadata::SetObjectPtrName(), lldb_private::ClangASTMetadata::SetUserID(), ParsedDWARFTypeAttributes::storage, lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), ParsedDWARFTypeAttributes::type, and lldb_private::TypeCompletion.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 2046 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::eBasicTypeVoid, lldb_private::plugin::dwarf::DWARFAttributes::ExtractFormValueAtIndex(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributes(), lldb_private::Type::GetForwardCompilerType(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::TypeSystemClang::TemplateParameterInfos::GetParameterPack(), lldb_private::ClangUtil::GetQualType(), lldb_private::TypeSystemClang::TemplateParameterInfos::InsertArg(), m_ast, MakeAPValue(), 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 2158 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 ParseStructureLikeDIE(), and ParseSubroutine().
|
protected |
Follow Clang Module Skeleton CU references to find a type definition.
Definition at line 297 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::Type::Forward, 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 569 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(), lldb_private::Lookups, ParseArrayType(), ParseEnum(), ParsePointerToMemberType(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTypeFromDWARF(), ParseTypeModifier(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), ParsedDWARFTypeAttributes::signature, lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), lldb_private::TypeCompletion, and UpdateSymbolContextScopeForType().
Referenced by ParseTypeFromDWARF(), and ParseTypeModifier().
|
private |
Definition at line 734 of file DWARFASTParserClang.cpp.
References ParsedDWARFTypeAttributes::byte_size, lldb_private::plugin::dwarf::DWARFDIE::children(), lldb_private::plugin::dwarf::DWARFFormValue::Clear(), 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::Type::Full, lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), 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(), lldb_private::Lookups, m_ast, ParsedDWARFTypeAttributes::name, ParseTypeFromClangModule(), ParseTypeFromDWARF(), PrepareContextToReceiveMembers(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), ParsedDWARFTypeAttributes::type, lldb_private::TypeCompletion, and lldb_private::Type::Unresolved.
Referenced by ParseTypeFromDWARF().
|
protected |
Definition at line 3525 of file DWARFASTParserClang.cpp.
References 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 3575 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 3547 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(), 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 3797 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 AddUnnamedBitfieldToRecordTypeIfNeeded().
|
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 1666 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 150 of file DWARFASTParserClang.h.
Referenced by AddUnnamedBitfieldToRecordTypeIfNeeded(), CompleteRecordType(), CompleteTypeFromDWARF(), DWARFASTParserClang(), GetClangDeclContextContainingDIE(), GetClangDeclContextForDIE(), GetClangDeclForDIE(), GetDeclContextContainingUIDFromDWARF(), GetDeclContextForUIDFromDWARF(), GetDeclForUIDFromDWARF(), GetOwningClangModule(), ParseArrayType(), ParseChildEnumerators(), ParseCXXMethod(), ParseEnum(), ParseObjCMethod(), ParseRustVariantPart(), ParseSingleMember(), ParseStructureLikeDIE(), ParseSubroutine(), ParseTemplateDIE(), ParseTypeFromClangModule(), ParseTypeModifier(), ResolveBlockDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 155 of file DWARFASTParserClang.h.
Referenced by GetClangASTImporter().
|
protected |
Definition at line 153 of file DWARFASTParserClang.h.
Referenced by DWARFASTParserClang(), EnsureAllDIEsInDeclContextHaveBeenParsed(), and LinkDeclContextToDIE().
|
protected |
Definition at line 151 of file DWARFASTParserClang.h.
Referenced by GetClangDeclForDIE().
|
protected |
Definition at line 152 of file DWARFASTParserClang.h.
Referenced by CopyUniqueClassMethodTypes(), DWARFASTParserClang(), GetCachedClangDeclContextForDIE(), LinkDeclContextToDIE(), ResolveBlockDIE(), ResolveImportedDeclarationDIE(), and ResolveNamespaceDIE().
|
protected |
Definition at line 154 of file DWARFASTParserClang.h.
Referenced by GetOwningClangModule().