[all-commits] [llvm/llvm-project] 4fabe6: Use internal linkage for __NoopCoro_ResumeDestroy ...
Daniel Paoliello via All-commits
all-commits at lists.llvm.org
Thu Sep 18 09:24:57 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4fabe6ffae885bddc52500ad59bc535febfaa494
https://github.com/llvm/llvm-project/commit/4fabe6ffae885bddc52500ad59bc535febfaa494
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2025-09-18 (Thu, 18 Sep 2025)
Changed paths:
M llvm/lib/Transforms/Coroutines/CoroEarly.cpp
M llvm/test/Transforms/Coroutines/coro-noop-pacbti.ll
M llvm/test/Transforms/Coroutines/coro-noop.ll
Log Message:
-----------
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
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list