diff options
Diffstat (limited to 'lldb/source/Symbol/Type.cpp')
-rw-r--r-- | lldb/source/Symbol/Type.cpp | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/lldb/source/Symbol/Type.cpp b/lldb/source/Symbol/Type.cpp index f194356a0a07..307e99ac84b6 100644 --- a/lldb/source/Symbol/Type.cpp +++ b/lldb/source/Symbol/Type.cpp @@ -1,4 +1,4 @@ -//===-- Type.cpp ------------------------------------------------*- C++ -*-===// +//===-- Type.cpp ----------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -143,15 +143,14 @@ Type::Type(lldb::user_id_t uid, SymbolFile *symbol_file, ConstString name, llvm::Optional<uint64_t> byte_size, SymbolContextScope *context, user_id_t encoding_uid, EncodingDataType encoding_uid_type, const Declaration &decl, const CompilerType &compiler_type, - ResolveState compiler_type_resolve_state) + ResolveState compiler_type_resolve_state, uint32_t opaque_payload) : std::enable_shared_from_this<Type>(), UserID(uid), m_name(name), m_symbol_file(symbol_file), m_context(context), m_encoding_type(nullptr), m_encoding_uid(encoding_uid), m_encoding_uid_type(encoding_uid_type), m_decl(decl), m_compiler_type(compiler_type), - m_compiler_type_resolve_state( - compiler_type ? compiler_type_resolve_state - : ResolveState::Unresolved), - m_is_complete_objc_class(false) { + m_compiler_type_resolve_state(compiler_type ? compiler_type_resolve_state + : ResolveState::Unresolved), + m_payload(opaque_payload) { if (byte_size) { m_byte_size = *byte_size; m_byte_size_has_value = true; @@ -235,7 +234,7 @@ void Type::GetDescription(Stream *s, lldb::DescriptionLevel level, } } -void Type::Dump(Stream *s, bool show_context) { +void Type::Dump(Stream *s, bool show_context, lldb::DescriptionLevel level) { s->Printf("%p: ", static_cast<void *>(this)); s->Indent(); *s << "Type" << static_cast<const UserID &>(*this) << ' '; @@ -256,7 +255,7 @@ void Type::Dump(Stream *s, bool show_context) { if (m_compiler_type.IsValid()) { *s << ", compiler_type = " << m_compiler_type.GetOpaqueQualType() << ' '; - GetForwardCompilerType().DumpTypeDescription(s); + GetForwardCompilerType().DumpTypeDescription(s, level); } else if (m_encoding_uid != LLDB_INVALID_UID) { s->Format(", type_data = {0:x-16}", m_encoding_uid); switch (m_encoding_uid_type) { @@ -303,7 +302,7 @@ void Type::Dump(Stream *s, bool show_context) { ConstString Type::GetName() { if (!m_name) - m_name = GetForwardCompilerType().GetConstTypeName(); + m_name = GetForwardCompilerType().GetTypeName(); return m_name; } @@ -313,7 +312,7 @@ void Type::DumpValue(ExecutionContext *exe_ctx, Stream *s, const DataExtractor &data, uint32_t data_byte_offset, bool show_types, bool show_summary, bool verbose, lldb::Format format) { - if (ResolveClangType(ResolveState::Forward)) { + if (ResolveCompilerType(ResolveState::Forward)) { if (show_types) { s->PutChar('('); if (verbose) @@ -466,7 +465,7 @@ bool Type::WriteToMemory(ExecutionContext *exe_ctx, lldb::addr_t addr, const Declaration &Type::GetDeclaration() const { return m_decl; } -bool Type::ResolveClangType(ResolveState compiler_type_resolve_state) { +bool Type::ResolveCompilerType(ResolveState compiler_type_resolve_state) { // TODO: This needs to consider the correct type system to use. Type *encoding_type = nullptr; if (!m_compiler_type.IsValid()) { @@ -506,7 +505,7 @@ bool Type::ResolveClangType(ResolveState compiler_type_resolve_state) { case eEncodingIsTypedefUID: m_compiler_type = encoding_type->GetForwardCompilerType().CreateTypedef( m_name.AsCString("__lldb_invalid_typedef_name"), - GetSymbolFile()->GetDeclContextContainingUID(GetID())); + GetSymbolFile()->GetDeclContextContainingUID(GetID()), m_payload); m_name.Clear(); break; @@ -536,7 +535,7 @@ bool Type::ResolveClangType(ResolveState compiler_type_resolve_state) { LLDB_LOG_ERROR( lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_SYMBOLS), std::move(err), - "Unable to construct void type from ClangASTContext"); + "Unable to construct void type from TypeSystemClang"); } else { CompilerType void_compiler_type = type_system_or_err->GetBasicTypeFromAST(eBasicTypeVoid); @@ -564,7 +563,7 @@ bool Type::ResolveClangType(ResolveState compiler_type_resolve_state) { case eEncodingIsTypedefUID: m_compiler_type = void_compiler_type.CreateTypedef( m_name.AsCString("__lldb_invalid_typedef_name"), - GetSymbolFile()->GetDeclContextContainingUID(GetID())); + GetSymbolFile()->GetDeclContextContainingUID(GetID()), m_payload); break; case eEncodingIsPointerUID: @@ -627,7 +626,7 @@ bool Type::ResolveClangType(ResolveState compiler_type_resolve_state) { break; } } - encoding_type->ResolveClangType(encoding_compiler_type_resolve_state); + encoding_type->ResolveCompilerType(encoding_compiler_type_resolve_state); } } return m_compiler_type.IsValid(); @@ -642,22 +641,22 @@ uint32_t Type::GetEncodingMask() { } CompilerType Type::GetFullCompilerType() { - ResolveClangType(ResolveState::Full); + ResolveCompilerType(ResolveState::Full); return m_compiler_type; } CompilerType Type::GetLayoutCompilerType() { - ResolveClangType(ResolveState::Layout); + ResolveCompilerType(ResolveState::Layout); return m_compiler_type; } CompilerType Type::GetForwardCompilerType() { - ResolveClangType(ResolveState::Forward); + ResolveCompilerType(ResolveState::Forward); return m_compiler_type; } ConstString Type::GetQualifiedName() { - return GetForwardCompilerType().GetConstTypeName(); + return GetForwardCompilerType().GetTypeName(); } bool Type::GetTypeScopeAndBasename(const llvm::StringRef& name, |