OSDN Git Service

llvm-undname: Name a pair. No behavior change.
authorNico Weber <nicolasweber@gmx.de>
Wed, 3 Apr 2019 23:29:05 +0000 (23:29 +0000)
committerNico Weber <nicolasweber@gmx.de>
Wed, 3 Apr 2019 23:29:05 +0000 (23:29 +0000)
Differential Revision: https://reviews.llvm.org/D60210

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357653 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Demangle/MicrosoftDemangle.cpp

index 49fa732..0704f7b 100644 (file)
@@ -1327,8 +1327,10 @@ Demangler::demangleLocallyScopedNamePiece(StringView &MangledName) {
 
   NamedIdentifierNode *Identifier = Arena.alloc<NamedIdentifierNode>();
   MangledName.consumeFront('?');
-  auto Number = demangleNumber(MangledName);
-  assert(!Number.second);
+  uint64_t Number = 0;
+  bool IsNegative = false;
+  std::tie(Number, IsNegative) = demangleNumber(MangledName);
+  assert(!IsNegative);
 
   // One ? to terminate the number
   MangledName.consumeFront('?');
@@ -1346,7 +1348,7 @@ Demangler::demangleLocallyScopedNamePiece(StringView &MangledName) {
   OS << '`';
   Scope->output(OS, OF_Default);
   OS << '\'';
-  OS << "::`" << Number.first << "'";
+  OS << "::`" << Number << "'";
   OS << '\0';
   char *Result = OS.getBuffer();
   Identifier->Name = copyString(Result);