diff options
author | Xing Xue <xingxue@outlook.com> | 2024-10-19 18:41:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-19 18:41:06 -0400 |
commit | dde26e361f50df4b999ac117222c74f2c100f817 (patch) | |
tree | 004cd8ca02d4543cf5a0139d400f52b7f53f4872 /llvm/tools/llvm-cov/SourceCoverageViewText.cpp | |
parent | 2eb1699184cf4d5de69f7825f66d7b3c04827f77 (diff) | |
download | llvm-dde26e361f50df4b999ac117222c74f2c100f817.zip llvm-dde26e361f50df4b999ac117222c74f2c100f817.tar.gz llvm-dde26e361f50df4b999ac117222c74f2c100f817.tar.bz2 |
[libunwind][AIX] Call dlclose only when dlsym() fails (#112768)
The personality routine `__xlcxx_personality_v0` in `libc++abi` is
hard-coded in the unwinder as the handler for EH in applications
generated by the legacy IBM C++ compiler. The symbol is resolved
dynamically using `dlopen` to avoid a hard dependency of `libunwind` on
`libc++abi` for cases such as non-C++ applications. However, `dlclose`
was incorrectly called after `dlsym` succeeded, potentially invalidating
the function pointer obtained from `dlsym` when the memory allocated for
the `dlopen` is reclaimed. This PR changes to call `dlclose` only when
`dlsym` fails.
Diffstat (limited to 'llvm/tools/llvm-cov/SourceCoverageViewText.cpp')
0 files changed, 0 insertions, 0 deletions