[llvm] 6641d2b - [MicrosoftDemangle] fix warn-trailing false positive

Nick Desaulniers via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 11 09:26:10 PDT 2023


Author: Nick Desaulniers
Date: 2023-07-11T09:25:52-07:00
New Revision: 6641d2b7df35b99b3c0dedcf0ae4be7befbf3236

URL: https://github.com/llvm/llvm-project/commit/6641d2b7df35b99b3c0dedcf0ae4be7befbf3236
DIFF: https://github.com/llvm/llvm-project/commit/6641d2b7df35b99b3c0dedcf0ae4be7befbf3236.diff

LOG: [MicrosoftDemangle] fix warn-trailing false positive

A follow up to commit 6bad76c7ae93 ("[Demangle] fix windows tests")
based on @thakis' report.

Fixes: #63740

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D154875

Added: 
    

Modified: 
    llvm/lib/Demangle/MicrosoftDemangle.cpp
    llvm/test/Demangle/warn-trailing.test

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Demangle/MicrosoftDemangle.cpp b/llvm/lib/Demangle/MicrosoftDemangle.cpp
index b38b8a1e479dae..593e177fefbc60 100644
--- a/llvm/lib/Demangle/MicrosoftDemangle.cpp
+++ b/llvm/lib/Demangle/MicrosoftDemangle.cpp
@@ -2404,7 +2404,8 @@ char *llvm::microsoftDemangle(std::string_view MangledName, size_t *NMangled,
   std::string_view Name{MangledName};
   SymbolNode *AST = D.parse(Name);
   if (!D.Error && NMangled)
-    *NMangled = Name.empty() ? 0 : &*Name.begin() - &*MangledName.begin();
+    *NMangled = Name.empty() ? MangledName.size()
+                             : &*Name.begin() - &*MangledName.begin();
 
   if (Flags & MSDF_DumpBackrefs)
     D.dumpBackReferences();

diff  --git a/llvm/test/Demangle/warn-trailing.test b/llvm/test/Demangle/warn-trailing.test
index 6219e44cdc69c9..5efd77a7d41cb8 100644
--- a/llvm/test/Demangle/warn-trailing.test
+++ b/llvm/test/Demangle/warn-trailing.test
@@ -4,3 +4,8 @@
 ; CHECK: ?x@@3HAasdf
 ; CHECK-NEXT: int x
 ; CHECK-NEXT: warning: trailing characters: asdf
+
+.?AVNet@@
+; CHECK: .?AVNet@@
+; CHECK-NEXT: class Net `RTTI Type Descriptor Name'
+; CHECK-NOT: warning: trailing characters


        


More information about the llvm-commits mailing list