aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Language
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2021-02-16 20:13:02 +0000
committerDimitry Andric <dim@FreeBSD.org>2021-02-16 20:13:02 +0000
commitb60736ec1405bb0a8dd40989f67ef4c93da068ab (patch)
tree5c43fbb7c9fc45f0f87e0e6795a86267dbd12f9d /lldb/source/Plugins/Language
parentcfca06d7963fa0909f90483b42a6d7d194d01e08 (diff)
Diffstat (limited to 'lldb/source/Plugins/Language')
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp6
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp24
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h4
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp2
-rw-r--r--lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp4
-rw-r--r--lldb/source/Plugins/Language/ObjC/Cocoa.cpp15
-rw-r--r--lldb/source/Plugins/Language/ObjC/CoreMedia.cpp19
-rw-r--r--lldb/source/Plugins/Language/ObjC/NSArray.cpp44
-rw-r--r--lldb/source/Plugins/Language/ObjC/NSDictionary.cpp5
-rw-r--r--lldb/source/Plugins/Language/ObjC/NSError.cpp4
-rw-r--r--lldb/source/Plugins/Language/ObjC/NSException.cpp3
-rw-r--r--lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp2
-rw-r--r--lldb/source/Plugins/Language/ObjC/NSString.cpp2
-rw-r--r--lldb/source/Plugins/Language/ObjC/ObjCLanguage.h2
-rw-r--r--lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h2
15 files changed, 76 insertions, 62 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
index 42f6bd9ffb7b..35788a6445c2 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
@@ -50,11 +50,7 @@ public:
}
TypeSystemClang *clang_ast_context =
- llvm::dyn_cast<TypeSystemClang>(&type_system_or_err.get());
-
- if (!clang_ast_context) {
- return;
- }
+ llvm::cast<TypeSystemClang>(block_pointer_type.GetTypeSystem());
std::shared_ptr<ClangASTImporter> clang_ast_importer;
auto *state = target_sp->GetPersistentExpressionStateForLanguage(
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
index 08e43ae6b3e8..d844498fd8a3 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
@@ -601,8 +601,7 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
ConstString("^std::__[[:alnum:]]+::atomic<.+>$"), stl_synth_flags, true);
cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add(
- RegularExpression(
- llvm::StringRef("^(std::__[[:alnum:]]+::)deque<.+>(( )?&)?$")),
+ RegularExpression("^(std::__[[:alnum:]]+::)deque<.+>(( )?&)?$"),
SyntheticChildrenSP(new ScriptedSyntheticChildren(
stl_synth_flags,
"lldb.formatters.cpp.libcxx.stddeque_SynthProvider")));
@@ -823,32 +822,32 @@ static void LoadLibStdcppFormatters(lldb::TypeCategoryImplSP cpp_category_sp) {
false);
cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add(
- RegularExpression(llvm::StringRef("^std::vector<.+>(( )?&)?$")),
+ RegularExpression("^std::vector<.+>(( )?&)?$"),
SyntheticChildrenSP(new ScriptedSyntheticChildren(
stl_synth_flags,
"lldb.formatters.cpp.gnu_libstdcpp.StdVectorSynthProvider")));
cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add(
- RegularExpression(llvm::StringRef("^std::map<.+> >(( )?&)?$")),
+ RegularExpression("^std::map<.+> >(( )?&)?$"),
SyntheticChildrenSP(new ScriptedSyntheticChildren(
stl_synth_flags,
"lldb.formatters.cpp.gnu_libstdcpp.StdMapSynthProvider")));
cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add(
- RegularExpression(llvm::StringRef("^std::(__cxx11::)?list<.+>(( )?&)?$")),
+ RegularExpression("^std::(__cxx11::)?list<.+>(( )?&)?$"),
SyntheticChildrenSP(new ScriptedSyntheticChildren(
stl_synth_flags,
"lldb.formatters.cpp.gnu_libstdcpp.StdListSynthProvider")));
stl_summary_flags.SetDontShowChildren(false);
stl_summary_flags.SetSkipPointers(true);
cpp_category_sp->GetRegexTypeSummariesContainer()->Add(
- RegularExpression(llvm::StringRef("^std::vector<.+>(( )?&)?$")),
+ RegularExpression("^std::vector<.+>(( )?&)?$"),
TypeSummaryImplSP(
new StringSummaryFormat(stl_summary_flags, "size=${svar%#}")));
cpp_category_sp->GetRegexTypeSummariesContainer()->Add(
- RegularExpression(llvm::StringRef("^std::map<.+> >(( )?&)?$")),
+ RegularExpression("^std::map<.+> >(( )?&)?$"),
TypeSummaryImplSP(
new StringSummaryFormat(stl_summary_flags, "size=${svar%#}")));
cpp_category_sp->GetRegexTypeSummariesContainer()->Add(
- RegularExpression(llvm::StringRef("^std::(__cxx11::)?list<.+>(( )?&)?$")),
+ RegularExpression("^std::(__cxx11::)?list<.+>(( )?&)?$"),
TypeSummaryImplSP(
new StringSummaryFormat(stl_summary_flags, "size=${svar%#}")));
@@ -1135,6 +1134,15 @@ CPlusPlusLanguage::GetHardcodedSynthetics() {
return g_formatters;
}
+bool CPlusPlusLanguage::IsNilReference(ValueObject &valobj) {
+ if (!Language::LanguageIsCPlusPlus(valobj.GetObjectRuntimeLanguage()) ||
+ !valobj.IsPointerType())
+ return false;
+ bool canReadValue = true;
+ bool isZero = valobj.GetValueAsUnsigned(0, &canReadValue) == 0;
+ return canReadValue && isZero;
+}
+
bool CPlusPlusLanguage::IsSourceFile(llvm::StringRef file_path) const {
const auto suffixes = {".cpp", ".cxx", ".c++", ".cc", ".c",
".h", ".hh", ".hpp", ".hxx", ".h++"};
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
index 89dea08a2c53..e2b5d2918753 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
+++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
@@ -88,6 +88,10 @@ public:
HardcodedFormatters::HardcodedSyntheticFinder
GetHardcodedSynthetics() override;
+ bool IsNilReference(ValueObject &valobj) override;
+
+ llvm::StringRef GetNilReferenceSummaryString() override { return "nullptr"; }
+
bool IsSourceFile(llvm::StringRef file_path) const override;
const Highlighter *GetHighlighter() const override { return &m_highlighter; }
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
index 84dd09a47d8a..2b16ebe79daf 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
@@ -692,7 +692,7 @@ bool lldb_private::formatters::LibcxxWStringSummaryProvider(
// std::wstring::size() is measured in 'characters', not bytes
TypeSystemClang *ast_context =
- TypeSystemClang::GetScratch(*valobj.GetTargetSP());
+ ScratchTypeSystemClang::GetForTarget(*valobj.GetTargetSP());
if (!ast_context)
return false;
diff --git a/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp b/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp
index aaf578c6f728..fe6eeea54e4d 100644
--- a/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp
+++ b/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp
@@ -168,7 +168,7 @@ void ClangHighlighter::Highlight(const HighlightStyle &options,
clang::SourceManager SM(diags, file_mgr);
auto buf = llvm::MemoryBuffer::getMemBuffer(full_source);
- FileID FID = SM.createFileID(clang::SourceManager::Unowned, buf.get());
+ FileID FID = SM.createFileID(buf->getMemBufferRef());
// Let's just enable the latest ObjC and C++ which should get most tokens
// right.
@@ -178,7 +178,7 @@ void ClangHighlighter::Highlight(const HighlightStyle &options,
Opts.CPlusPlus17 = true;
Opts.LineComment = true;
- Lexer lex(FID, buf.get(), SM, Opts);
+ Lexer lex(FID, buf->getMemBufferRef(), SM, Opts);
// The lexer should keep whitespace around.
lex.SetKeepWhitespaceMode(true);
diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
index 648fc4adf24f..d871d3470e70 100644
--- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
+++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
@@ -72,6 +72,9 @@ bool lldb_private::formatters::NSBundleSummaryProvider(
valobj.GetCompilerType().GetBasicTypeFromAST(lldb::eBasicTypeObjCID),
true));
+ if (!text)
+ return false;
+
StreamString summary_stream;
bool was_nsstring_ok =
NSStringSummaryProvider(*text, summary_stream, options);
@@ -117,6 +120,10 @@ bool lldb_private::formatters::NSTimeZoneSummaryProvider(
uint64_t offset = ptr_size;
ValueObjectSP text(valobj.GetSyntheticChildAtOffset(
offset, valobj.GetCompilerType(), true));
+
+ if (!text)
+ return false;
+
StreamString summary_stream;
bool was_nsstring_ok =
NSStringSummaryProvider(*text, summary_stream, options);
@@ -162,6 +169,10 @@ bool lldb_private::formatters::NSNotificationSummaryProvider(
uint64_t offset = ptr_size;
ValueObjectSP text(valobj.GetSyntheticChildAtOffset(
offset, valobj.GetCompilerType(), true));
+
+ if (!text)
+ return false;
+
StreamString summary_stream;
bool was_nsstring_ok =
NSStringSummaryProvider(*text, summary_stream, options);
@@ -1024,7 +1035,7 @@ bool lldb_private::formatters::ObjCBOOLSummaryProvider(
if (!real_guy_sp)
return false;
}
- uint8_t value = (real_guy_sp->GetValueAsUnsigned(0) & 0xFF);
+ int8_t value = (real_guy_sp->GetValueAsSigned(0) & 0xFF);
switch (value) {
case 0:
stream.Printf("NO");
@@ -1033,7 +1044,7 @@ bool lldb_private::formatters::ObjCBOOLSummaryProvider(
stream.Printf("YES");
break;
default:
- stream.Printf("%u", value);
+ stream.Printf("%d", value);
break;
}
return true;
diff --git a/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp b/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp
index ac2f45b8354f..efc80cc75557 100644
--- a/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp
+++ b/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp
@@ -25,21 +25,12 @@ bool lldb_private::formatters::CMTimeSummaryProvider(
if (!type.IsValid())
return false;
- auto type_system_or_err =
- valobj.GetExecutionContextRef()
- .GetTargetSP()
- ->GetScratchTypeSystemForLanguage(lldb::eLanguageTypeC);
- if (auto err = type_system_or_err.takeError()) {
- LLDB_LOG_ERROR(
- lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DATAFORMATTERS),
- std::move(err), "Failed to get scratch type system");
- return false;
- }
+ TypeSystem *type_system = type.GetTypeSystem();
// fetch children by offset to compensate for potential lack of debug info
- auto int64_ty = type_system_or_err->GetBuiltinTypeForEncodingAndBitSize(
- eEncodingSint, 64);
- auto int32_ty = type_system_or_err->GetBuiltinTypeForEncodingAndBitSize(
- eEncodingSint, 32);
+ auto int64_ty =
+ type_system->GetBuiltinTypeForEncodingAndBitSize(eEncodingSint, 64);
+ auto int32_ty =
+ type_system->GetBuiltinTypeForEncodingAndBitSize(eEncodingSint, 32);
auto value_sp(valobj.GetSyntheticChildAtOffset(0, int64_ty, true));
auto timescale_sp(valobj.GetSyntheticChildAtOffset(8, int32_ty, true));
diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
index 8d648d8a0861..b0398dd19c02 100644
--- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
@@ -96,7 +96,7 @@ private:
D32 *m_data_32;
D64 *m_data_64;
};
-
+
namespace Foundation1010 {
namespace {
struct DataDescriptor_32 {
@@ -107,7 +107,7 @@ namespace Foundation1010 {
uint32_t _priv2;
uint32_t _data;
};
-
+
struct DataDescriptor_64 {
uint64_t _used;
uint64_t _offset;
@@ -117,11 +117,11 @@ namespace Foundation1010 {
uint64_t _data;
};
}
-
+
using NSArrayMSyntheticFrontEnd =
GenericNSArrayMSyntheticFrontEnd<DataDescriptor_32, DataDescriptor_64>;
}
-
+
namespace Foundation1428 {
namespace {
struct DataDescriptor_32 {
@@ -130,7 +130,7 @@ namespace Foundation1428 {
uint32_t _size;
uint32_t _data;
};
-
+
struct DataDescriptor_64 {
uint64_t _used;
uint64_t _offset;
@@ -138,11 +138,11 @@ namespace Foundation1428 {
uint64_t _data;
};
}
-
+
using NSArrayMSyntheticFrontEnd =
GenericNSArrayMSyntheticFrontEnd<DataDescriptor_32, DataDescriptor_64>;
}
-
+
namespace Foundation1437 {
template <typename PtrType>
struct DataDescriptor {
@@ -154,11 +154,11 @@ namespace Foundation1437 {
uint32_t _muts;
uint32_t _used;
};
-
+
using NSArrayMSyntheticFrontEnd =
GenericNSArrayMSyntheticFrontEnd<
DataDescriptor<uint32_t>, DataDescriptor<uint64_t>>;
-
+
template <typename DD>
uint64_t
__NSArrayMSize_Impl(lldb_private::Process &process,
@@ -173,7 +173,7 @@ namespace Foundation1437 {
}
return descriptor._used;
}
-
+
uint64_t
__NSArrayMSize(lldb_private::Process &process, lldb::addr_t valobj_addr,
Status &error) {
@@ -227,23 +227,23 @@ public:
private:
ExecutionContextRef m_exe_ctx_ref;
uint8_t m_ptr_size;
-
+
D32 *m_data_32;
D64 *m_data_64;
CompilerType m_id_type;
};
-
+
namespace Foundation1300 {
struct IDD32 {
uint32_t used;
uint32_t list;
};
-
+
struct IDD64 {
uint64_t used;
uint64_t list;
};
-
+
using NSArrayISyntheticFrontEnd =
GenericNSArrayISyntheticFrontEnd<IDD32, IDD64, true>;
}
@@ -258,18 +258,18 @@ namespace Foundation1436 {
uint32_t used;
uint32_t list; // in Inline cases, this is the first element
};
-
+
struct IDD64 {
uint64_t used;
uint64_t list; // in Inline cases, this is the first element
};
-
+
using NSArrayI_TransferSyntheticFrontEnd =
GenericNSArrayISyntheticFrontEnd<IDD32, IDD64, false>;
using NSArrayISyntheticFrontEnd =
GenericNSArrayISyntheticFrontEnd<IDD32, IDD64, true>;
-
+
using NSFrozenArrayMSyntheticFrontEnd =
Foundation1437::NSArrayMSyntheticFrontEnd;
@@ -441,7 +441,7 @@ lldb_private::formatters::NSArrayMSyntheticFrontEndBase::NSArrayMSyntheticFrontE
: SyntheticChildrenFrontEnd(*valobj_sp), m_exe_ctx_ref(), m_ptr_size(8),
m_id_type() {
if (valobj_sp) {
- auto *clang_ast_context = TypeSystemClang::GetScratch(
+ auto *clang_ast_context = ScratchTypeSystemClang::GetForTarget(
*valobj_sp->GetExecutionContextRef().GetTargetSP());
if (clang_ast_context)
m_id_type = CompilerType(
@@ -589,7 +589,7 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
if (valobj_sp) {
CompilerType type = valobj_sp->GetCompilerType();
if (type) {
- auto *clang_ast_context = TypeSystemClang::GetScratch(
+ auto *clang_ast_context = ScratchTypeSystemClang::GetForTarget(
*valobj_sp->GetExecutionContextRef().GetTargetSP());
if (clang_ast_context)
m_id_type = clang_ast_context->GetType(
@@ -758,7 +758,7 @@ lldb_private::formatters::NSArray1SyntheticFrontEnd::GetChildAtIndex(
if (idx == 0) {
auto *clang_ast_context =
- TypeSystemClang::GetScratch(*m_backend.GetTargetSP());
+ ScratchTypeSystemClang::GetForTarget(*m_backend.GetTargetSP());
if (clang_ast_context) {
CompilerType id_type(
clang_ast_context->GetBasicType(lldb::eBasicTypeObjCID));
@@ -820,11 +820,9 @@ lldb_private::formatters::NSArraySyntheticFrontEndCreator(
return (new Foundation1436::NSArrayISyntheticFrontEnd(valobj_sp));
if (runtime->GetFoundationVersion() >= 1430)
return (new Foundation1430::NSArrayISyntheticFrontEnd(valobj_sp));
- else
- return (new Foundation1300::NSArrayISyntheticFrontEnd(valobj_sp));
+ return (new Foundation1300::NSArrayISyntheticFrontEnd(valobj_sp));
} else if (class_name == g_NSArrayI_Transfer) {
return (new Foundation1436::NSArrayI_TransferSyntheticFrontEnd(valobj_sp));
- } else if (class_name == g_NSArray0) {
} else if (class_name == g_NSFrozenArrayM) {
return (new Foundation1436::NSFrozenArrayMSyntheticFrontEnd(valobj_sp));
} else if (class_name == g_NSArray0) {
diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
index 3dc07678f92f..afb9c6951f55 100644
--- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
@@ -66,7 +66,8 @@ NSDictionary_Additionals::GetAdditionalSynthetics() {
static CompilerType GetLLDBNSPairType(TargetSP target_sp) {
CompilerType compiler_type;
- TypeSystemClang *target_ast_context = TypeSystemClang::GetScratch(*target_sp);
+ TypeSystemClang *target_ast_context =
+ ScratchTypeSystemClang::GetForTarget(*target_sp);
if (target_ast_context) {
ConstString g___lldb_autogen_nspair("__lldb_autogen_nspair");
@@ -388,7 +389,7 @@ bool lldb_private::formatters::NSDictionarySummaryProvider(
return false;
ObjCLanguageRuntime::ClassDescriptorSP descriptor(
- runtime->GetClassDescriptor(valobj));
+ runtime->GetNonKVOClassDescriptor(valobj));
if (!descriptor || !descriptor->IsValid())
return false;
diff --git a/lldb/source/Plugins/Language/ObjC/NSError.cpp b/lldb/source/Plugins/Language/ObjC/NSError.cpp
index aa1103cb342c..4ffa072f9f53 100644
--- a/lldb/source/Plugins/Language/ObjC/NSError.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSError.cpp
@@ -87,7 +87,7 @@ bool lldb_private::formatters::NSError_SummaryProvider(
ValueObjectSP domain_str_sp = ValueObject::CreateValueObjectFromData(
"domain_str", isw.GetAsData(process_sp->GetByteOrder()),
valobj.GetExecutionContextRef(),
- TypeSystemClang::GetScratch(process_sp->GetTarget())
+ ScratchTypeSystemClang::GetForTarget(process_sp->GetTarget())
->GetBasicType(lldb::eBasicTypeVoid)
.GetPointerType());
@@ -156,7 +156,7 @@ public:
m_child_sp = CreateValueObjectFromData(
"_userInfo", isw.GetAsData(process_sp->GetByteOrder()),
m_backend.GetExecutionContextRef(),
- TypeSystemClang::GetScratch(process_sp->GetTarget())
+ ScratchTypeSystemClang::GetForTarget(process_sp->GetTarget())
->GetBasicType(lldb::eBasicTypeObjCID));
return false;
}
diff --git a/lldb/source/Plugins/Language/ObjC/NSException.cpp b/lldb/source/Plugins/Language/ObjC/NSException.cpp
index c6bae5e1c008..7360abb8fdd2 100644
--- a/lldb/source/Plugins/Language/ObjC/NSException.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSException.cpp
@@ -69,7 +69,8 @@ static bool ExtractFields(ValueObject &valobj, ValueObjectSP *name_sp,
InferiorSizedWord userinfo_isw(userinfo, *process_sp);
InferiorSizedWord reserved_isw(reserved, *process_sp);
- auto *clang_ast_context = TypeSystemClang::GetScratch(process_sp->GetTarget());
+ auto *clang_ast_context =
+ ScratchTypeSystemClang::GetForTarget(process_sp->GetTarget());
if (!clang_ast_context)
return false;
diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
index d962f39611b6..a15b0f64954a 100644
--- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
@@ -53,7 +53,7 @@ public:
if (!type_system)
return false;
- TypeSystemClang *ast = TypeSystemClang::GetScratch(
+ TypeSystemClang *ast = ScratchTypeSystemClang::GetForTarget(
*m_backend.GetExecutionContextRef().GetTargetSP());
if (!ast)
return false;
diff --git a/lldb/source/Plugins/Language/ObjC/NSString.cpp b/lldb/source/Plugins/Language/ObjC/NSString.cpp
index b9d0d73cbc2e..85922992eb2b 100644
--- a/lldb/source/Plugins/Language/ObjC/NSString.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSString.cpp
@@ -34,7 +34,7 @@ NSString_Additionals::GetAdditionalSummaries() {
static CompilerType GetNSPathStore2Type(Target &target) {
static ConstString g_type_name("__lldb_autogen_nspathstore2");
- TypeSystemClang *ast_ctx = TypeSystemClang::GetScratch(target);
+ TypeSystemClang *ast_ctx = ScratchTypeSystemClang::GetForTarget(target);
if (!ast_ctx)
return CompilerType();
diff --git a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h
index bed62a5c447a..02c15e86046b 100644
--- a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h
+++ b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h
@@ -119,6 +119,8 @@ public:
bool IsNilReference(ValueObject &valobj) override;
+ llvm::StringRef GetNilReferenceSummaryString() override { return "nil"; }
+
bool IsSourceFile(llvm::StringRef file_path) const override;
const Highlighter *GetHighlighter() const override { return &m_highlighter; }
diff --git a/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h b/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h
index 4b3d23653347..233fd5c00a7a 100644
--- a/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h
+++ b/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h
@@ -27,6 +27,8 @@ public:
return lldb::eLanguageTypeObjC_plus_plus;
}
+ llvm::StringRef GetNilReferenceSummaryString() override { return "nil"; }
+
bool IsSourceFile(llvm::StringRef file_path) const override;
const Highlighter *GetHighlighter() const override { return &m_highlighter; }