diff options
author | Zachary Turner <zturner@google.com> | 2018-08-20 23:58:35 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2018-08-20 23:58:35 +0000 |
commit | 91c98a858c00cd9fab5689801aaeb8c70a2ad135 (patch) | |
tree | e411f33b6e272cb3cc98858494c6f2a4928400c9 /llvm/lib/Demangle/MicrosoftDemangle.cpp | |
parent | f0fe359bc330173e2656beb1f7425c5d3b6dacb7 (diff) | |
download | llvm-91c98a858c00cd9fab5689801aaeb8c70a2ad135.zip llvm-91c98a858c00cd9fab5689801aaeb8c70a2ad135.tar.gz llvm-91c98a858c00cd9fab5689801aaeb8c70a2ad135.tar.bz2 |
[MS Demangler] Properly demangle anonymous namespaces.
llvm-svn: 340237
Diffstat (limited to 'llvm/lib/Demangle/MicrosoftDemangle.cpp')
-rw-r--r-- | llvm/lib/Demangle/MicrosoftDemangle.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/Demangle/MicrosoftDemangle.cpp b/llvm/lib/Demangle/MicrosoftDemangle.cpp index e7872b3..8b253bf 100644 --- a/llvm/lib/Demangle/MicrosoftDemangle.cpp +++ b/llvm/lib/Demangle/MicrosoftDemangle.cpp @@ -2165,11 +2165,13 @@ Name *Demangler::demangleAnonymousNamespaceName(StringView &MangledName) { Name *Node = Arena.alloc<Name>(); Node->Str = "`anonymous namespace'"; - if (MangledName.consumeFront('@')) - return Node; - - Error = true; - return nullptr; + size_t EndPos = MangledName.find('@'); + if (EndPos == StringView::npos) { + Error = true; + return nullptr; + } + MangledName = MangledName.substr(EndPos + 1); + return Node; } Name *Demangler::demangleLocallyScopedNamePiece(StringView &MangledName) { |