aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Symbol/Type.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Symbol/Type.cpp')
-rw-r--r--lldb/source/Symbol/Type.cpp37
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,