<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/123659>123659</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Clang crashes when an objective C exception is attempted to be caught when `-fwasm-exceptions` is enabled on a wasm{32,64} target
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Frityet
</td>
</tr>
</table>
<pre>
[Crash info](https://gist.github.com/Frityet/83fa2c7eee836515f871d59c594e9479)
Reproducer:
```objc
extern void f();
int main()
{
@try {
f();
} @catch(id) {
}
}
```
Command:
```
# Crash reproducer for Homebrew clang version 19.1.6
# Driver args: "t.m" "-target" "wasm32-unknown-none" "-fwasm-exceptions"
# Original command: "/usr/local/Cellar/llvm/19.1.6/bin/clang-19" "-cc1" "-triple" "wasm32-unknown-none" "-emit-obj" "-dumpdir" "a-" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "t.m" "-mrelocation-model" "static" "-mframe-pointer=none" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-target-feature" "+exception-handling" "-mllvm" "-wasm-enable-eh" "-target-feature" "+multivalue" "-target-feature" "+reference-types" "-target-cpu" "generic" "-fvisibility=hidden" "-debugger-tuning=gdb" "-fdebug-compilation-dir=/Users/frityet/Documents/scratch" "-target-linker-version" "1022.1" "-fcoverage-compilation-dir=/Users/frityet/Documents/scratch" "-resource-dir" "/usr/local/Cellar/llvm/19.1.6/lib/clang/19" "-internal-isystem" "/usr/local/Cellar/llvm/19.1.6/lib/clang/19/include" "-internal-isystem" "/include" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fskip-odr-check-in-gmf" "-fobjc-runtime=gnustep" "-fobjc-encode-cxx-class-template-spec" "-fobjc-exceptions" "-fexceptions" "-exception-model=wasm" "-fcolor-diagnostics" "-o" "/var/folders/ps/cqv_3ytx5nn59k5q3k17th500000gn/T/t-e67633.o" "-x" "objective-c" "t.m"
"/usr/local/Cellar/llvm/19.1.6/bin/clang-19" "-cc1" "-triple" "wasm32-unknown-none" "-emit-obj" "-dumpdir" "a-" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "t.m" "-mrelocation-model" "static" "-mframe-pointer=none" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-target-feature" "+exception-handling" "-mllvm" "-wasm-enable-eh" "-target-feature" "+multivalue" "-target-feature" "+reference-types" "-target-cpu" "generic" "-fvisibility=hidden" "-debugger-tuning=gdb" "-fdebug-compilation-dir=/Users/frityet/Documents/scratch" "-target-linker-version" "1022.1" "-fcoverage-compilation-dir=/Users/frityet/Documents/scratch" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fskip-odr-check-in-gmf" "-fobjc-runtime=gnustep" "-fobjc-encode-cxx-class-template-spec" "-fobjc-exceptions" "-fexceptions" "-exception-model=wasm" "-fcolor-diagnostics" "-x" "objective-c" "t-3e83b8.m"
```
Cannot be reproduced on godbolt due to the fact that godbolt objective C does not allow for clang to be selected as the compiler for some reason?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsV0Fvq7oS_jXOxnIENiSwyCItQm_3pKd311fGHsAnxubYJm3-_ZWBkLTnSr2LI91NqyqCGc94_M3Mh4d7rzoDcEL5C8qrHZ9Cb92pdircIOwaK29R9eq477EyrUV5hWjRhzB6xM6I1ojWnfJh36nQT81e2AHRerVHtC5Yy6k4AkDBDnmat8UxlXkp8jKDMjuWiJYoOaPk_D8YnZWTABf9Jmd0SJZ_2_wQKDnDewBn8NUqiVtEi2jIXhZbZQIeuDKrODmj46IpUZYEd8OP96T8ZFyiY4VRlggeRI9ooSSi5WawLphdVs9R3bXnVzsM3MhPQcdnyvCCm9uOhlvr8H_sAI2DNyw0Nx2-gvPKGpyW-3R_WA0rp67gMHddhBkjSsN-QJTGJxK46yK489sb9wOjZDIXY98MMdbAfV0bdQTeBYxBWeMRpav7_zrVKcM1Flv00QLRevIO0VpbwTWi9StozWeBvsa8rjHSuolg1_MBSFreNxQi3WJ0atTwdYwwqEBs8-P-LqdhlMqtr5xscuV5o4G0DjZboYE7wn0gDbTWAWm4uICRn21i8OQKTrUK3JNScCfJlesJiOED-LsqlhJplV7Eq_QJ_8FBBChiSgYrQa8KH3hQYlvVOj4AGa0yIRZ19SE17UiENcFxERCrrNkUxhJnJyOV6cjAQ7-5E9b44CYRrCNcK-4fAS8FQVrgYXL3PRB92VJPem6kVqbbvC0JXV6WMjEzVtB_5XSYdFAzal-tdNCCAyOAhNv4S7RinFZJBwbcA7j2qrxqlFbhhljVKylhg0dCM3UdOBImE4_Dqk42m-GsJcIOo9JLemIpsQrR-g8PziNatxszVVZMA5gQpV64pf0_RKiVuYAja4OuyjShdL-VeSvsFRzv4Dfs6sDbyQkgj_r_5w2pVXNvyFl8dzoXn-GaKH_zAYbf4LhWRuhJwtdbfFrYgnPWEa0GdWevR6BtZyaxYc2qbP8Ms7-okVjpiOhBXIgypBvaTRs_EcRNJqgBYkmYyQcYP6rBCCuBiPd3IjT3ngQYRs0DED-C-LT2mTLX0H8RPZpr4QBWxT56KgxtHZGKd8b6oMRmZx_4XGfEW6vlUiZj_BE_r3-yW3jPjcnLS_6TXdJj6PMk_nWRdf-PaB0IHI4HxvZ3b-R9fbDNDxBBXYGID8yFkm-K_6b4b4r_Vyn-mwG_oCrCoGBNcWesv7luc2NswA08btUSW4M7KxurA5YT4GBx6AG3XAQceh425bYhfsXSgsfRFdfavs0X8-U-Hmz07kGDCCAx97OzJffrDd7bIe7PfcxTvZMnJktW8h2c0iM7svKY0WzXn1pRlIwVQOmhPYhDRpnMszQXSdoe24Idd-pEE5onKU3SgrIs25cJT8oUIBFFwUQWxxcYuNL72Mt767qd8n6CU0rZIS93mjeg_Ty7Ubp-omkc49xpJsRm6jzKEq188A8XQQU9D3yLRV7h1_ngIg4r4PFbDwZz8wGtLdVYecxDrJwIzoKV4FPXh8UOHZJf545DEs0W-pmzxfFcKccXRhF9PWRxBls6cjc5ffo8Xj5NlutXaj7e6GyMMF40Iiqx31Zgrif6VwAAAP__ZXWXIQ">