summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/Symtab
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2012-12-19 23:05:01 +0000
committerSean Callanan <scallanan@apple.com>2012-12-19 23:05:01 +0000
commit7be70e85287e5b6f8acd38faff28895ddf58ca4f (patch)
tree947ffc9b59a760d3cad654d7d63cebbe874ad701 /lldb/source/Plugins/SymbolFile/Symtab
parent6848e38daf24547a639a48e4585fef5268ede3cc (diff)
downloadbcm5719-llvm-7be70e85287e5b6f8acd38faff28895ddf58ca4f.tar.gz
bcm5719-llvm-7be70e85287e5b6f8acd38faff28895ddf58ca4f.zip
This patch removes the SymbolFileSymtab support
for reporting class types from Objective-C runtime class symbols. Instead, LLDB now queries the Objective-C runtime for class types. We have also added a (minimal) Objective-C runtime type vendor for Objective-C runtime version 1, to prevent regressions when calling class methods in the V1 runtime. Other components of this fix include: - We search the Objective-C runtime in a few more places. - We enable enumeration of all members of Objective-C classes, which Clang does in certain circumstances. - SBTarget::FindFirstType and SBTarget::FindTypes now query the Objective-C runtime as needed. - I fixed several test cases. <rdar://problem/12885034> llvm-svn: 170601
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/Symtab')
-rw-r--r--lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp58
1 files changed, 0 insertions, 58 deletions
diff --git a/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp b/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
index 5c74dd7686b..87e40daec6f 100644
--- a/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
+++ b/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
@@ -381,66 +381,8 @@ SymbolFileSymtab::FindTypes (const lldb_private::SymbolContext& sc,
uint32_t max_matches,
lldb_private::TypeList& types)
{
- if (!append)
- types.Clear();
-
- if (!m_objc_class_name_to_index.IsEmpty())
- {
- TypeMap::iterator iter = m_objc_class_types.find(name);
-
- if (iter != m_objc_class_types.end())
- {
- types.Insert(iter->second);
- return 1;
- }
-
- const Symtab::NameToIndexMap::Entry *match = m_objc_class_name_to_index.FindFirstValueForName(name.GetCString());
-
- if (match == NULL)
- return 0;
-
- const bool isForwardDecl = false;
- const bool isInternal = true;
-
- ClangASTContext &ast = GetClangASTContext();
-
- ClangASTMetadata metadata;
- metadata.SetUserID(0xffaaffaaffaaffaall);
- lldb::clang_type_t objc_object_type = ast.CreateObjCClass (name.AsCString(),
- ast.GetTranslationUnitDecl(),
- isForwardDecl,
- isInternal,
- &metadata);
-
- Declaration decl;
-
- lldb::TypeSP type(new Type (match->value,
- this,
- name,
- 0, // byte_size - don't change this from 0, we currently use that to identify these "synthetic" ObjC class types.
- NULL, // SymbolContextScope*
- 0, // encoding_uid
- Type::eEncodingInvalid,
- decl,
- objc_object_type,
- Type::eResolveStateFull));
-
- m_objc_class_types[name] = type;
-
- types.Insert(type);
-
- return 1;
- }
-
return 0;
}
-//
-//uint32_t
-//SymbolFileSymtab::FindTypes(const SymbolContext& sc, const RegularExpression& regex, bool append, uint32_t max_matches, TypeList& types)
-//{
-// return 0;
-//}
-
//------------------------------------------------------------------
// PluginInterface protocol
OpenPOWER on IntegriCloud