COFF: Fix import symbol name mangling.

For IMPORT_NAME_NOPREFIX symbols, we should remove only one prefix character.

llvm-svn: 241854
diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp
index cbc2393..66d792b 100644
--- a/lld/COFF/InputFiles.cpp
+++ b/lld/COFF/InputFiles.cpp
@@ -249,6 +249,12 @@
   return IMAGE_FILE_MACHINE_UNKNOWN;
 }
 
+StringRef ltrim1(StringRef S, const char *Chars) {
+  if (!S.empty() && strchr(Chars, S[0]))
+    return S.substr(1);
+  return S;
+}
+
 std::error_code ImportFile::parse() {
   const char *Buf = MB.getBufferStart();
   const char *End = MB.getBufferEnd();
@@ -273,10 +279,10 @@
     ExtName = Name;
     break;
   case IMPORT_NAME_NOPREFIX:
-    ExtName = Name.ltrim("?@_");
+    ExtName = ltrim1(Name, "?@_");
     break;
   case IMPORT_NAME_UNDECORATE:
-    ExtName = Name.ltrim("?@_");
+    ExtName = ltrim1(Name, "?@_");
     ExtName = ExtName.substr(0, ExtName.find('@'));
     break;
   }