diff options
author | Aaron Smith <aaron.smith@microsoft.com> | 2018-02-08 23:11:56 +0000 |
---|---|---|
committer | Aaron Smith <aaron.smith@microsoft.com> | 2018-02-08 23:11:56 +0000 |
commit | b38799c105019617c4373fcc3da61a48e67bae45 (patch) | |
tree | 4c2e78fedf3b31b3253cdba5ecfbf6cc25ed5f29 | |
parent | 30d7309f6d529f06c5a7674654adb15f20deaa19 (diff) | |
download | bcm5719-llvm-b38799c105019617c4373fcc3da61a48e67bae45.tar.gz bcm5719-llvm-b38799c105019617c4373fcc3da61a48e67bae45.zip |
Recognize MSVC style mangling in CPlusPlusLanguage::IsCPPMangledName
Reviewers: zturner, lldb-commits, labath
Reviewed By: zturner
Subscribers: jingham, labath, davide, llvm-commits
Differential Revision: https://reviews.llvm.org/D43059
llvm-svn: 324672
-rw-r--r-- | lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index 51ed88065c8..622b66d8de9 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -251,13 +251,17 @@ std::string CPlusPlusLanguage::MethodName::GetScopeQualifiedName() { } bool CPlusPlusLanguage::IsCPPMangledName(const char *name) { - // FIXME, we should really run through all the known C++ Language plugins and - // ask each one if - // this is a C++ mangled name, but we can put that off till there is actually - // more than one - // we care about. - - return (name != nullptr && name[0] == '_' && name[1] == 'Z'); + // FIXME!! we should really run through all the known C++ Language + // plugins and ask each one if this is a C++ mangled name + + if (name == nullptr) + return false; + + // MSVC style mangling + if (name[0] == '?') + return true; + + return (name[0] != '\0' && name[0] == '_' && name[1] == 'Z'); } bool CPlusPlusLanguage::ExtractContextAndIdentifier( |