diff options
author | Daniel Paoliello <danpao@microsoft.com> | 2025-09-18 09:24:34 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-18 09:24:34 -0700 |
commit | 4fabe6ffae885bddc52500ad59bc535febfaa494 (patch) | |
tree | 2cced811318dbb9b096d78a347861a7d7798798c /llvm/lib/Support/CommandLine.cpp | |
parent | 8b9c70dcdbc80f01945c6560232717afd228d532 (diff) | |
download | llvm-4fabe6ffae885bddc52500ad59bc535febfaa494.zip llvm-4fabe6ffae885bddc52500ad59bc535febfaa494.tar.gz llvm-4fabe6ffae885bddc52500ad59bc535febfaa494.tar.bz2 |
Use internal linkage for __NoopCoro_ResumeDestroy (#159407)
`__NoopCoro_ResumeDestroy` currently has private linkage, which causes
[issues for
Arm64EC](https://github.com/llvm/llvm-project/issues/158341). The
Arm64EC lowering is trying to mangle and add thunks for
`__NoopCoro_ResumeDestroy`, since it sees that it's address is taken
(and, therefore, might be called from x64 code via a function pointer).
MSVC's linker requires that the function be placed in COMDAT (`LNK1361:
non COMDAT symbol '.L#__NoopCoro_ResumeDestroy' in hybrid binary`) which
trips an assert in the verifier (`comdat global value has private
linkage`) and the subsequent linking step fails since the private symbol
isn't in the symbol table.
Since there is no reason to use private linkage for
`__NoopCoro_ResumeDestroy` and other coro related functions have also
been [switched to internal linkage to improve
debugging](https://github.com/llvm/llvm-project/pull/151224), this
change switches to using internal linkage.
Fixes #158341
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
0 files changed, 0 insertions, 0 deletions