From 7700de8c302ed5d741bb16d807f554ce5e64275c Mon Sep 17 00:00:00 2001 From: Enrico Granata Date: Thu, 3 Nov 2016 17:25:27 +0000 Subject: Add support to the ObjC type scavenger for finding types via debug info llvm-svn: 285941 --- lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp') diff --git a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp index 76a940ba4b7..526ace119d6 100644 --- a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp +++ b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp @@ -994,10 +994,23 @@ std::unique_ptr ObjCLanguage::GetTypeScavenger() { friend class lldb_private::ObjCLanguage; }; + + class ObjCDebugInfoScavenger : public Language::ImageListTypeScavenger { + public: + virtual CompilerType AdjustForInclusion(CompilerType &candidate) override { + LanguageType lang_type(candidate.GetMinimumLanguage()); + if (!Language::LanguageIsObjC(lang_type)) + return CompilerType(); + if (candidate.IsTypedefType()) + return candidate.GetTypedefedType(); + return candidate; + } + }; return std::unique_ptr( new Language::EitherTypeScavenger()); + ObjCRuntimeScavenger, + ObjCDebugInfoScavenger>()); } bool ObjCLanguage::GetFormatterPrefixSuffix(ValueObject &valobj, -- cgit v1.2.3