<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/72981>72981</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang crash: hotpatch combined with __asm__ function
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
a-mitm
</td>
</tr>
</table>
<pre>
clang on the following code crashes with flag "-fms-hotpatch"
```cpp
inline void __disable(void){
__asm__ volatile ("cli");
}
int main(){
__disable();
}
```
command line : `"C:\Program Files\LLVM\bin\clang-cl.exe" -fms-hotpatch -Oz tmp.cpp`
```
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'tmp.cpp'.
4. Running pass 'X86 Assembly Printer' on function '@"?__disable@@YAXXZ"'
Exception Code: 0x80000003
#0 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x104dfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x104b131
#1 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x10484e6 C:\Program Files\LLVM\bin\clang-cl.exe 0x657d28
#2 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x240604 C:\Program Files\LLVM\bin\clang-cl.exe 0x6d825d
#3 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x3824c8 C:\Program Files\LLVM\bin\clang-cl.exe 0x3885d3
#4 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x382b57 C:\Program Files\LLVM\bin\clang-cl.exe 0x14cc4d4
#5 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x189841e C:\Program Files\LLVM\bin\clang-cl.exe 0x314e644
#6 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x1802352 C:\Program Files\LLVM\bin\clang-cl.exe 0x5bd4ed
#7 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x64fdfe C:\Program Files\LLVM\bin\clang-cl.exe 0x8bd6
#8 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x53a9 C:\Program Files\LLVM\bin\clang-cl.exe 0x3c90
#9 0x00007ff68eefdfcf C:\Program Files\LLVM\bin\clang-cl.exe 0x16f14 C:\Program Files\LLVM\bin\clang-cl.exe 0x45a0df0
#10 0x00007ff68eefdfcf (C:\Program Files\LLVM\bin\clang-cl.exe+0x104dfcf)
#11 0x00007ff68eefb131 (C:\Program Files\LLVM\bin\clang-cl.exe+0x104b131)
0x00007FF68EEFDFCF, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x104DFCF byte(s)
0x00007FF68EEFB131, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x104B131 byte(s)
0x00007FF68EEF84E6, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x10484E6 byte(s)
0x00007FF68E507D28, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x657D28 byte(s)
0x00007FF68E0F0604, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x240604 byte(s)
0x00007FF68E58825D, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x6D825D byte(s)
0x00007FF68E2324C8, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x3824C8 byte(s)
0x00007FF68E2385D3, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x3885D3 byte(s)
0x00007FF68E232B57, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x382B57 byte(s)
0x00007FF68F37C4D4, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x14CC4D4 byte(s)
0x00007FF68F74841E, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x189841E byte(s)
0x00007FF690FFE644, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x314E644 byte(s)
0x00007FF68F6B2352, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x1802352 byte(s)
0x00007FF68E46D4ED, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x5BD4ED byte(s)
0x00007FF68E4FFDFE, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x64FDFE byte(s)
0x00007FF68DEB8BD6, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x8BD6 byte(s)
0x00007FF68DEB53A9, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x53A9 byte(s)
0x00007FF68DEB3C90, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x3C90 byte(s)
0x00007FF68DEC6F14, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x16F14 byte(s)
0x00007FF692450DF0, C:\Program Files\LLVM\bin\clang-cl.exe(0x00007FF68DEB0000) + 0x45A0DF0 byte(s)
0x00007FFB9AD3257D, C:\WINDOWS\System32\KERNEL32.DLL(0x00007FFB9AD20000) + 0x1257D byte(s), BaseThreadInitThunk() + 0x1D byte(s)
0x00007FFB9BDEAA58, C:\WINDOWS\SYSTEM32\ntdll.dll(0x00007FFB9BD90000) + 0x5AA58 byte(s), RtlUserThreadStart() + 0x28 byte(s)
clang-cl: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 17.0.4
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
clang-cl: note: diagnostic msg:
********************
```
[crash.zip](https://github.com/llvm/llvm-project/files/13426074/crash.zip)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0WFtvozAa_TXOi5XIGBvDQx4CBGm0nYum3Z2ZfakMNol3jYmw08v8-pUhadJuJ1EzIUIt8uWc81184ePWqpWRcg5oCmg-4Vu3brs5nzbKNZOyFc_zSnOzgq2Bbi1h3WrdPiqzglUrJKw6btfSwkfl1rDWfAUBxtO6sdN16zbcVWuAMUA5QIvd3wgNT7XZDC3KaGUkfGiVgPf3Qlleaglw7BsATgBLh3Hw_p7b5v4ePrSaO6UlBDgGGFdaeQ6cgHA3ErD8mFIZBxuuTD_8Fd6B7P3pe63HaFXbNNwI2IsG4QL6fowzEC4Azb517arjDSyUlhbQ7ObmX58BzUplAM16R04rPZNPEmAMX_kJTr_-hq7ZzLxjXlO-0RHMIAgz2dYgXMIN76zsIHdQGgHbGtZKy2EcnsH-l_lAraSRHXeqNUNnuOv8vjXGR3PDrYUAs2JrKj8KfvMNn7nhK9kBzHz8m1Zse7ezvU7MZgMc-QPczziCC2tlU-pn-K1Txr2g1XsmgBkg3ocgLA4xIQgQ9Gvx8-e_--iygWf5VMlNP8tb5d2PnmLU_8JdWAEOEURPvonVdRRLWYu6quFHIwTRU4DIX0wtgzA4aAqupykmMrpkakSZwPFBEr6SJExQhMhFikSMqTgoCq-kKIwxqeLLZsZUHKUSuZ6ikrKLAk6qighykESvlUlxEpNAXmRNQGREjjRFV9OEcEjxJVNpKYg8yiV2JUkRqUV9kZfiUkQHPfGV9NCQJxfFrErQQU1yrYBFdXDR0ieUI1HvzzkcBu9u2gDHHz9Z05ed2x_rLwRvd2C_P_8NQb-_7wl20EURxctlkRdZAXD2Yb8AHB8B5cvUvwOcQIDTYe_3yLB8dn6o_QN72gsbg90jn2OPyTIah90jn2aniOX-Mnd19oh64NPkqPDH4Ajku_P1tOVxjGk-huW5Bz5NjkNMsjHc7s_x7IzbcRjTPByF3AOftTylbBzLU8pOkhchy0g-RsIFJPPIp9kZiUmwHIO9v5csT7EnqCiW_gIyguMD4pFP2x6l_pYyiu3D_edk0pEoJ8sx1jpNPfAZ8qLIizHCHhEPfJI8X6Zxmo9xunjYc9Q0XCRjOD1cJOeowyxBY-R6lqAz1FlUBKNsMR735BLHhKK8GMNsQhce-QR7mizyEFN2vMh-fPqSf_1xC2h2-2ydbEIMaPaP5fcvy5sQz_Kbm2NWD4DfWOzxXnHiDKbcyrt1J7n4ZJS7W2_Nf4dq1H7SqdWYJmm-XCxo_L7KX7d3y8-9SuOE1jOh9WuJaZ68SUUP9lbid6f_aWU3qLx1vHOvFL53K9rHAoQLKLuu7fzLUEasu9Y4aQTc19FqrrQUUGwldC20amW49rfyrZVw-tC3SQmVeWiroXz1igQ-yM6q1sCAzdBs90F6x7uVdJ7zKY7uIzLdVNNHZUT7aKeNfah2o3qDYNMK2QvdtFY9DV2fjHVcayly1Us_n3__Z7ZpXV-eEoqvTGudqmBjVx5n9z3yF8-fi5OApn1FdvZbbYC_DsZr5zbW0-IC4GKl3Hpbzqq2AbjQ-mH_b7rp2v_IygFc1L1xuAhCgiPECMDFAXLv-4mYhyIJEz6R84AhRKM4IWSynpMywbIUgpQRiYJaBCVDosaspCyMGYkmao6R_xbD_qGEzKqEcU4wYoxETLAIECQbrvTM65q13WqirN3KOcNJHEw0L6W2fbEa497fAGNA80k37-0otysLCNLKOntAcMppOc_6hOmN8ZF5KbxWbVMqI8VQxN5Xmfflycm20_MPe7HX7N3Yy_5fAAAA___8H5AX">