[lld] [llvm] [LLD][COFF] Fix handling of invalid ARM64EC function names (PR #116252)

Jacek Caban via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 14 11:21:46 PST 2024


================
@@ -669,8 +669,11 @@ bool checkLazyECPair(SymbolTable *symtab, StringRef name, InputFile *f) {
   if (std::optional<std::string> mangledName =
           getArm64ECMangledFunctionName(name))
     pairName = std::move(*mangledName);
+  else if (std::optional<std::string> demangledName =
+               getArm64ECDemangledFunctionName(name))
+    pairName = std::move(*demangledName);
   else
-    pairName = *getArm64ECDemangledFunctionName(name);
+    return true;
----------------
cjacek wrote:

`checkLazyECPair` checks if there is a conflicting symbol with a different mangling in the symbol table before adding a new lazy symbol. Since invalid names cannot be mangled or demangled, there is no possibility of a conflicting symbol.

I updated the description.

https://github.com/llvm/llvm-project/pull/116252


More information about the llvm-commits mailing list