diff options
author | Shoaib Meenai <smeenai@fb.com> | 2022-08-22 22:55:41 +0300 |
---|---|---|
committer | Shoaib Meenai <smeenai@fb.com> | 2022-08-27 14:54:34 +0500 |
commit | a745e47900dde15c180d5caea7a1d292ca809eb1 (patch) | |
tree | 3cd1e31cb26441a9c09510b752c2bf13b9e1c57d /clang/lib/Basic/SourceManager.cpp | |
parent | af14c41d070f10f94a94016723f772b3920d8719 (diff) | |
download | llvm-a745e47900dde15c180d5caea7a1d292ca809eb1.zip llvm-a745e47900dde15c180d5caea7a1d292ca809eb1.tar.gz llvm-a745e47900dde15c180d5caea7a1d292ca809eb1.tar.bz2 |
[MachO] Fix dead-stripping __eh_frame
This section is marked S_ATTR_LIVE_SUPPORT in input files, which meant
that on arm64, we were unnecessarily preserving FDEs if we e.g. had
multiple weak definitions for a function. Worse, we would actually
produce an invalid `__eh_frame` section in that case, because the CIE
associated with the unnecessary FDE would still get dead-stripped and
we'd end up with a dangling FDE. We set up associations from functions
to their FDEs, so dead-stripping will just work naturally, and we can
clear S_ATTR_LIVE_SUPPORT from our input `__eh_frame` sections to fix
dead-stripping.
Reviewed By: #lld-macho, int3
Differential Revision: https://reviews.llvm.org/D132489
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
0 files changed, 0 insertions, 0 deletions