There's no such corresponding code for ARM64 (which has been working
in production for years). The SEH version of the Unwind functions
(e.g. _Unwind_GetLanguageSpecificData) doesn't use these fields.
Details
- Reviewers
MaskRay efriedma zzheng cdavis5x danielkiss - Group Reviewers
Restricted Project - Commits
- rG64778c002a77: [libunwind] Remove unused ARM SEH placeholder code
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
The handler is used when someone calls _Unwind_ForcedUnwind(). (The lsda is only traced.) But that's not used by the C++ runtime. (Does anybody call it?) If it's never come up on ARM64, I guess it's OK.
Daniel, can you please check if this removal is ok. I am particularly worried about pthread_cancel which is often hard to debug.
The removed code is guarded by #if defined(_LIBUNWIND_SUPPORT_SEH_UNWIND). ELF is not affected.
What does this code have to do with pthread_cancel? This code in libunwind is for the specific combination of defined(__SEH__) && defined(__arm__); no LLVM compiler has ever produced that combination yet, but once all these pieces are in place, I'll switch the clang mingw arm target to take SEH into use (and start defining that combination).
Thanks for clarifying that ELF is not affected, I just wanted someone from ARM to verify.