summaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorJez Ng <jezng@fb.com>2021-02-23 21:42:02 -0500
committerJez Ng <jezng@fb.com>2021-02-23 22:02:38 -0500
commit4a5e111aea7ac78190211a2549f8d0d53ee2f01d (patch)
treee9c65b3cdcb4db32db132f7349b94bf11c6eab64 /clang/lib/CodeGen/CodeGenModule.cpp
parent4752cdc9a20abb5fbb2a255011417b8a77e4c31e (diff)
[lld-macho] Better deduplication of personality pointers
{D95809} introduced a mechanism for synthetic symbol creation of personality pointers. When multiple section relocations referred to the same personality pointer, it would deduplicate them. However, it neglected to consider that we could have symbol relocations that also refer to the same personality pointer. This diff fixes it. In practice, this mix of relocations arises when there is a statically-linked personality routine that is referenced from multiple object files. Within the same object file, it will be referred to via section relocations, but (obviously) other object files will refer to it via symbol relocations. Failing to deduplicate these references resulted in us going over the 3-personality-pointer limit when linking some larger applications. Fixes llvm.org/PR48389. Reviewed By: #lld-macho, thakis, alexshap Differential Revision: https://reviews.llvm.org/D97245
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions