diff options
author | Joseph Huber <35342157+jhuber6@users.noreply.github.com> | 2023-10-04 14:13:52 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-04 14:13:52 -0500 |
commit | 49d8a559d35b5b144d61c8d96b0538db7f719de4 (patch) | |
tree | 1f256518fe216d889b0ce90d87a855a4b7aceb14 /clang/lib/Format/WhitespaceManager.cpp | |
parent | d688816627763c04ccf67b8522596f95f2400ca6 (diff) | |
download | llvm-49d8a559d35b5b144d61c8d96b0538db7f719de4.zip llvm-49d8a559d35b5b144d61c8d96b0538db7f719de4.tar.gz llvm-49d8a559d35b5b144d61c8d96b0538db7f719de4.tar.bz2 |
[LinkerWrapper] Fix resolution of weak symbols during LTO (#68215)
Summary:
Weak symbols are supposed to have the semantics that they can be
overriden by a strong (i.e. global) definition. This wasn't being
respected by the LTO pass because we simply used the first definition
that was available. This patch fixes that logic by doing a first pass
over the symbols to check for strong resolutions that could override a
weak one.
A lot of fake linker logic is ending up in the linker wrapper. If there
were an option to handle this in `lld` it would be a lot cleaner, but
unfortunately supporting NVPTX is a big restriction as their binaries
require the `nvlink` tool.
Diffstat (limited to 'clang/lib/Format/WhitespaceManager.cpp')
0 files changed, 0 insertions, 0 deletions