mirror-llvm-project/clang/lib
Demetrius Kanios 1d4e04f7a7
[WebAssembly] Call EH personality function instead of Unwind_CallPersonality (#209282)
On Wasm, it's not currently possibly to change which `personality` is
attached to a given IR function. This is primarily because no matter
what `personality` is attached, codegen creates a call to a
`Unwind_CallPersonality` wrapper hard-coded to call c++abi's
personality.

In order to allow alternative personalities without introducing bloat at
each personality call site, this PR adjusts the ABI of the personality
on Wasm. `Unwind_CallPersonality` is moved to `libcxxabi` under the name
`__gxx_wasm_personality_v0`, with the "real" personality code renamed
`__gxx_personality_imp` and called by `__gxx_wasm_personality_v0` (after
resetting the landing pad context).

The signature of EH personalities on Wasm is now `int personality(void*
exception_object)` (where the int return is `_Unwind_Reason_Code` and
the `void*` is `_Unwind_Exception*`), and personalities are expected to
`__wasm_lpad_context.selector = 0;`.

Based on #175202
2026-07-28 20:05:45 -07:00
..
Analysis Thread Safety Analysis: Don't treat function pointer parameters as scoped capabilities (#211885) 2026-07-28 11:53:13 -04:00
APINotes [APINotes] Match function-like Where.Parameters in Sema (#205307) 2026-07-13 14:36:11 +01:00
AST [clang][NFC] fold ExpressionTraits and TypeTraits helpers into BuiltinTraits (#210838) 2026-07-28 20:45:00 +10:00
ASTMatchers [clang][NFC] fold ExpressionTraits and TypeTraits helpers into BuiltinTraits (#210838) 2026-07-28 20:45:00 +10:00
Basic AMDGPU: Split R600 feature bitmask into separate enum from amdgcn (#212484) 2026-07-28 19:52:26 +02:00
CIR [CIR] Accept __int128 in x86_64 calling-convention lowering (#211142) 2026-07-28 12:29:18 -05:00
CodeGen [WebAssembly] Call EH personality function instead of Unwind_CallPersonality (#209282) 2026-07-28 20:05:45 -07:00
CrossTU [Clang] Add flags and lang option for C++2d (#203992) 2026-07-03 21:37:02 +00:00
DependencyScanning [clang][DependencyScanning] Logging Dependency Scanning Events (#195896) 2026-07-16 10:41:22 -07:00
DirectoryWatcher [LLVM][ADT] Migrate users of make_scope_exit to CTAD (#174030) 2026-01-02 20:42:56 -08:00
Driver [NVPTX] Fix typo 'pxtas-path' -> 'ptxas-path' in tool invocation (#212599) 2026-07-28 17:05:09 -05:00
Edit [HLSL][Matrix] Add support for Matrix element and trunc Casts (#168915) 2025-12-02 19:02:25 -05:00
ExtractAPI [clang][ExtractAPI] Fix assertion on invalid UTF-8 in doc comments (#212394) 2026-07-28 16:36:34 +00:00
Format [clang-format] Fix OverEmptyLines aligning trailing comments across block boundaries (#208324) 2026-07-28 21:39:48 +02:00
Frontend AMDGPU: Use module flags to control xnack and sramecc (#204595) 2026-07-21 14:38:39 +02:00
FrontendTool [clang][ssaf] Integrate source-edit-generation (#208590) 2026-07-17 15:22:48 -07:00
Headers [PAC][Headers] Fix incorrect comment in ptrauth.h (#207265) 2026-07-28 21:35:41 +03:00
Index [clangd] Respect ArgumentLists for struct templates (#212094) 2026-07-27 03:07:00 +02:00
IndexSerialization
InstallAPI Revert "[clang] Reland: fix getTemplateInstantiationArgs (#208285)" (#208426) 2026-07-09 12:11:45 +00:00
Interpreter [Clang][Interpreter] Don't pass -fPIC on MSVC (#210507) 2026-07-19 08:32:37 +08:00
Lex [Clang] Implement P3658R1 (#212131) 2026-07-28 07:46:23 +02:00
Options [Clang][HLSL][DebugInfo] Emit dx.source metadata nodes (#199689) 2026-06-15 11:40:32 +00:00
Parse Tracks source location of the selector name within ObjCSelectorExpr (#211623) 2026-07-28 08:25:45 -07:00
Rewrite [analyzer] Fix invalid HTML nesting for popups at end of line (#207793) 2026-07-11 12:48:47 +00:00
ScalableStaticAnalysis [SystemZ][z/OS] Add text flag when parsing json (#211805) 2026-07-24 11:27:10 -04:00
Sema [HLSL] Implement HLSL InterlockedXor (#209254) 2026-07-28 11:30:59 -07:00
Serialization Tracks source location of the selector name within ObjCSelectorExpr (#211623) 2026-07-28 08:25:45 -07:00
StaticAnalyzer [clang][NFC] fold ExpressionTraits and TypeTraits helpers into BuiltinTraits (#210838) 2026-07-28 20:45:00 +10:00
Support [llvm][RISCV] Revise xsfmm intrinsic interface. (#201527) 2026-06-22 10:24:43 +08:00
Testing [LLVM][ADT] Migrate users of make_scope_exit to CTAD (#174030) 2026-01-02 20:42:56 -08:00
Tooling [include-cleaner] Cleanup Headers and Warnings (#212570) 2026-07-28 23:23:30 +02:00
UnifiedSymbolResolution [clang][Index][USR] Generate USRs for class-type non-type template arguments (#212356) 2026-07-27 16:51:06 -07:00
CMakeLists.txt [Clang] Don't build static analyzer if disabled (#212024) 2026-07-25 21:07:27 +02:00