diff options
author | Greg Clayton <gclayton@apple.com> | 2012-03-26 23:03:23 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2012-03-26 23:03:23 +0000 |
commit | 84db9105d24a326f35054f103fbb468eb6d9bfeb (patch) | |
tree | f2d1a6c18e9f3b6843cba0e65ed5c89ac3fbbfcd /lldb/source/API/SBModule.cpp | |
parent | 98e5d863ad3515ff119d120a1eb40c1c6a345443 (diff) | |
download | bcm5719-llvm-84db9105d24a326f35054f103fbb468eb6d9bfeb.tar.gz bcm5719-llvm-84db9105d24a326f35054f103fbb468eb6d9bfeb.zip |
<rdar://problem/11113279>
Fixed type lookups to "do the right thing". Prior to this fix, looking up a type using "foo::bar" would result in a type list that contains all types that had "bar" as a basename unless the symbol file was able to match fully qualified names (which our DWARF parser does not).
This fix will allow type matches to be made based on the basename and then have the types that don't match filtered out. Types by name can be fully qualified, or partially qualified with the new "bool exact_match" parameter to the Module::FindTypes() method.
This fixes some issue that we discovered with dynamic type resolution as well as improves the overall type lookups in LLDB.
llvm-svn: 153482
Diffstat (limited to 'lldb/source/API/SBModule.cpp')
-rw-r--r-- | lldb/source/API/SBModule.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lldb/source/API/SBModule.cpp b/lldb/source/API/SBModule.cpp index 3090fb4d473..463669fe22c 100644 --- a/lldb/source/API/SBModule.cpp +++ b/lldb/source/API/SBModule.cpp @@ -425,12 +425,12 @@ SBModule::FindFirstType (const char *name_cstr) SymbolContext sc; TypeList type_list; uint32_t num_matches = 0; + const bool exact_match = false; ConstString name(name_cstr); num_matches = module_sp->FindTypes (sc, name, - NULL, - false, + exact_match, 1, type_list); @@ -451,13 +451,13 @@ SBModule::FindTypes (const char *type) { SymbolContext sc; TypeList type_list; + const bool exact_match = false; uint32_t num_matches = 0; ConstString name(type); num_matches = module_sp->FindTypes (sc, name, - NULL, - false, + exact_match, UINT32_MAX, type_list); |