diff options
| author | Sean Callanan <scallanan@apple.com> | 2012-12-19 23:05:01 +0000 |
|---|---|---|
| committer | Sean Callanan <scallanan@apple.com> | 2012-12-19 23:05:01 +0000 |
| commit | 7be70e85287e5b6f8acd38faff28895ddf58ca4f (patch) | |
| tree | 947ffc9b59a760d3cad654d7d63cebbe874ad701 /lldb/source/Plugins/SymbolFile/Symtab | |
| parent | 6848e38daf24547a639a48e4585fef5268ede3cc (diff) | |
| download | bcm5719-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.cpp | 58 |
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 |

