diff options
author | Jacek Caban <jacek@codeweavers.com> | 2025-07-28 10:26:25 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-28 19:26:25 +0200 |
commit | ac31d64a64e8a648f6834f4cf9de10c56c8d1083 (patch) | |
tree | a3688f83fbda2d8a15d3b2beeefaafc4bec6355a /llvm/lib/CodeGen/ModuloSchedule.cpp | |
parent | 3f3fac8478516ab340d24c8c4f3a5b0c9fd7ee41 (diff) | |
download | llvm-ac31d64a64e8a648f6834f4cf9de10c56c8d1083.zip llvm-ac31d64a64e8a648f6834f4cf9de10c56c8d1083.tar.gz llvm-ac31d64a64e8a648f6834f4cf9de10c56c8d1083.tar.bz2 |
[LLD][COFF] Avoid resolving symbols with -alternatename if the target is undefined (#149496)
This change fixes an issue with the use of `-alternatename` in the MSVC
CRT on ARM64EC, where both mangled and demangled symbol names are
specified. Without this patch, the demangled name could be resolved to
an anti-dependency alias of the target. Since chaining anti-dependency
aliases is not allowed, this results in an undefined symbol.
The root cause isn't specific to ARM64EC, it can affect other targets as
well, even when anti-dependency aliases aren't involved. The
accompanying test case demonstrates a scenario where the symbol could be
resolved from an archive. However, because the archive member is pulled
in after the first pass of alternate name resolution, and archive
members don't override weak aliases, eager resolution would incorrectly
skip it.
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
0 files changed, 0 insertions, 0 deletions