<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64504>64504</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-cl compiler error with mtune targeting ARM64 Windows: Failed to evaluate function length in SEH unwind info
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
pulidocr
</td>
</tr>
</table>
<pre>
Steps to reproduce
1. Download and install Visual Studio 2022 on an x64 Windows machine with MSVC build tools for x64 and ARM64
2. Download and install LLVM 16 from https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/LLVM-16.0.0-win64.exe
3. Open a fresh command prompt.
4. set `PATH` to the `bin` folder of the LLVM install.
6. Compile `test.cpp` (code below) with `clang-cl.exe -clang:--target=aarch64-windows-msvc -clang:-O3 -clang:-mtune=neoverse-n1 -c test.cpp`
7. Build should succeed, but instead it crashes with a stack trace.
Auto-generated repro files: [mtune-bug-repro.zip](https://github.com/llvm/llvm-project/files/12283989/mtune-bug-repro.zip)
`test.cpp`:
```c++
#include <cstring>
#include <cstdint>
void foo(uint8_t *dst, int i_dst,
uint8_t *src, int i_src, int w, int h)
{
while (h--)
{
memcpy(dst, src, w);
dst += i_dst;
src += i_src;
}
}
```
Stack trace:
```
fatal error: error in backend: Failed to evaluate function length in SEH unwind info
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang-cl.exe -clang:--target=aarch64-windows-msvc -clang:-O3 -clang:-mtune=neoverse-n1 -c test.cpp
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'test.cpp'.
4. Running pass 'AArch64 Assembly Printer' on function '@"?foo@@YAXPEAEH0HHH@Z"'
Exception Code: 0xE0000046
#0 0x00007ff8a61b4b2c (C:\Windows\System32\KERNELBASE.dll+0x64b2c)
#1 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x6257aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x64f8d9
#2 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0xa750 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x626811
#3 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x6266c4 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x1ed7c1a
#4 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x489c51 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x1c21aee
#5 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x1c217d5 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x83f9cc
#6 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x18626 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x8bd4dd
#7 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x3dcdca C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x3e2ab3
#8 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x3dd443 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x17ee9af
#9 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x1b813f3 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x33ae1ab
#10 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x1aec2d2 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x79f8cd
#11 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x835dee C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0xa141
#12 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x5504 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x18d2d86
#13 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x6256c5 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x18d2573
#14 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x759f05 C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x75a24e
#15 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x7777eb C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x4ab7
#16 0x00007ff7535557aa C:\Program Files\LLVM16.0.0\bin\clang-cl.exe 0x4624670 (C:\Program Files\LLVM16.0.0\bin\clang-cl.exe+0x6257aa)
#17 0x00007ff7535557aa
#18 0x00007ff7535557aa (C:\Program Files\LLVM16.0.0\bin\clang-cl.exe+0x6257aa)
0x00007FF8A61B4B2C, C:\Windows\System32\KERNELBASE.dll(0x00007FF8A6150000) + 0x64B2C byte(s), RaiseException() + 0x6C byte(s)
0x00007FF7535557AA, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x6257AA byte(s)
0x00007FF75357F8D9, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x64F8D9 byte(s)
0x00007FF752F3A750, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0xA750 byte(s)
0x00007FF753556811, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x626811 byte(s)
0x00007FF7535566C4, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x6266C4 byte(s)
0x00007FF754E07C1A, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x1ED7C1A byte(s)
0x00007FF7533B9C51, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x489C51 byte(s)
0x00007FF754B51AEE, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x1C21AEE byte(s)
0x00007FF754B517D5, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x1C217D5 byte(s)
0x00007FF75376F9CC, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x83F9CC byte(s)
0x00007FF752F48626,
C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x18626 byte(s)
0x00007FF7537ED4DD, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x8BD4DD byte(s)
0x00007FF75330CDCA, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x3DCDCA byte(s)
0x00007FF753312AB3, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x3E2AB3 byte(s)
0x00007FF75330D443, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x3DD443 byte(s)
0x00007FF75471E9AF, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x17EE9AF byte(s)
0x00007FF754AB13F3, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x1B813F3 byte(s)
0x00007FF7562DE1AB, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x33AE1AB byte(s)
0x00007FF754A1C2D2, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x1AEC2D2 byte(s)
0x00007FF7536CF8CD, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x79F8CD byte(s)
0x00007FF753765DEE, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x835DEE byte(s)
0x00007FF752F3A141, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0xA141 byte(s)
0x00007FF752F35504, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x5504 byte(s)
0x00007FF754802D86, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x18D2D86 byte(s)
0x00007FF7535556C5, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x6256C5 byte(s)
0x00007FF754802573, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x18D2573 byte(s)
0x00007FF753689F05, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x759F05 byte(s)
0x00007FF75368A24E, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x75A24E byte(s)
0x00007FF7536A77EB, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x7777EB byte(s)
0x00007FF752F34AB7, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x4AB7 byte(s)
0x00007FF757554670, C:\Program Files\LLVM16.0.0\bin\clang-cl.exe(0x00007FF752F30000) + 0x4624670 byte(s)
0x00007FF8A76626AD, C:\Windows\System32\KERNEL32.DLL(0x00007FF8A7650000) + 0x126AD byte(s), BaseThreadInitThunk() + 0x1D byte(s)
0x00007FF8A8C8AA68, C:\Windows\SYSTEM32\ntdll.dll(0x00007FF8A8C30000) + 0x5AA68 byte(s), RtlUserThreadStart() + 0x28 byte(s)
clang-cl: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 16.0.0
Target: aarch64-unknown-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM16.0.0\bin
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8mt9z2yoWx_8a8sLYIyEJ0EMeZP2Y3Nl0b6bpdvfuyx0EyGYrg0egJN2_fgfJP9PWvq2t1XQaS6CvPhwO54AEs1YttZT3IFmApLhjvVuZ7n7Tt0oY3t3VRny9f3ZyY6EzsJObzoieSxAUIMjG_8M5LMyrbg0TkGkBlbaOtS38rGzPWvjseqEMRAFC0GjINHzDMfyn0sK8WrhmfKW0hK_KreCH5885rHvVCuiMaS1sTDfU9rLZxw84Hp-IfvDEx8fPH2CIYdOZNVw5t7EgygCqAKqWyq36es7NGqCqbV92f2abzvxHcgdQ1clWMistQJXYqm8rmW45C_E8mAcAVf4h27PZq9I4nsu3rT2iOfx9IzVksOmkXUFu1mvPt-nMeuPmY6V4Dq10EODgKfv0AHDgDetW0l-plfYXGtMK2UHTDNeHVm2buNXAc5ib9Ua1w11OWjfnm42_FSDKjZCwlq15BSgdDQtwwFumlzPeelo4G85AlM1mjnVL6UBUMNbxFY59m3zPzNb2hR9V_D06Olm7XksQFVqaF9lZOdMhnHF4BDJykjlcDN1pV6b3f3rOpRQA-W52Q6MkE1A5yDtmV9KOuAxax_gX6DrG5fzY17LemdlSatkxJ8Xoj7BRrfQ9DUGyGMhmdb-cDWXz_6oNSAqA6E-7w6iKqhAhGqU0Baj6njhKj_lOe8M_7rRw_McBWvh_41UUKc3bXkgIopxb1ylv5PIHpUJpty99MUrAxhiAaK-0o386CFAmrPMWVtpB9ed4MlaHR5Vsxw-Vjk5edz9Wh6aRLSqEEL6uBq9DdDWb7WvAkyr-WMs133wFiG5htk_wLgmid3WF9UQLEBVb3vcVbMcPFbzScQVAih1m8c7Ox8Z_PnjUj7plPG2YYy2UXWc671PDD6g0rBn_IrXw1yqmWuljFJQvrO2Zk7DpNXfKaNhKvXQrf8Nz-QB77YcTVLoxo_rTY5k9l9D29Vo5yGDdL70Xm855uZ92UmVtP3jpNg6OnuKjxjCgBuixzSiHm8FrubRWCmhN342X_Z3MWsPVOKZ6DS3v1D5gjZYT_XqzN1wwh0-dWXZsDVm37NdSu2EA_l-DzC75DAeIcmkaEJVwwzorO8gclFr4GOoH8j5vDEfuI-Q2iiij98F7OD72Wiu9hBtmLQSIVLueffIXPjDNlrIDiPhktjaiH0YD2VMhcojz39XLssEEMLNWruv2K3zqlHZ7yb0jAURAHACEQFT5IR4HIA7-yP71VGblQ_Dw8ADi4N--GJHxgeUbl5vhVt8-3x3BWxn4I8a7YYqiAAZv_hppGspwWMc18oOL5r5zk3ybl0GSP3-1Tq4jBJL8b-XHv5ePi-y5nIu2BWgRvGF_39H4R1F4ECZJlCQJYQxuVXfOUg0xNcl9Stsm1CT3SS_JT1wneMPoyvvjhoojOnRTOkaS4Jq2YRqGB7boxpbDmMe_fn8oBeEhO-DFN8WLacqT8Ao8jkIm5QEvuSmelyci-XUBGjUp5wc8fFs8ihG-Aq4WsRAHOHJTuEhwwa-5XyJWRwc6emM6EcfRFaYnUqasOeClt-3ZmoZRcwVfFDEZsno_bQyD2_IxyZFAvy5A0oZyccC7bb6gUSKkvCKih3F4YLtttkiS4Jp4TAUSFB_gbp0uEsyviHceLyHRAe-26YIkaRNcgUcShmJ5oLtttiCEEFlfkQxZTQ5st00VMUYxJsHR3O4nNcZ53jAPOywFURR-L2kcSr8btG_KsNWvKprhcBEvUO5XMT8zf6UnEon_DVDql5jDzHGBclh_dRIgav1TUQ4_MmXlfoINED2qf1r5FHFrgiw7QvxpE9AjOVRF73CRl7-AQCpapNMhxF7-LAKqoowkwWQIXvxSNwyT7um6wctfRMB5PCUCzuOzCHEZkDyczhnDsvD6580QLdI8ma4nYurlz5thkYRZWU5nhhx5_YsMpEgmZSBFcr4rCK7SPJ-MgUZe_kJgiP2SxiOMZdMYY1g2nTdFWcRFMZ0pFl7-wsAI8iKfbnBGhZe_gBCibBFNh1B6-UtWKOJ4QoTCy58fmiQs06yabmiS0uufZ8gWYVRNZ4ZwQb3-WQaMijLMFtN1RZR5_Qt2CHNUoOnskJVe_7xL4ryi-XSxgaRe_lKkTooJMxaNvPzFKZxfJE82hQvj81kbVZFfSU8GMCzTz_oiDVBB8XS-SAuvf3E5gfPppg0YefmLZvAr_inNkJALWQLTtAqmMwNJvPwlhAzF0w1Jknj5CwgZIeV0AZoQL39pUMbZgkw3m88W5CwASZIYk-lWlrvXKD9moBnBGOGs-GuvISI0Lx4fT19CEPzuJUTo9d6_hFgwKz-tOsnEb1q5T6tefzl5ExGeyyE0oznNMky_T_nH86fyw0CpnWjbb9-T0Px9uPRi37wnce0_rOxGymfHOndCiOi3hLu-2H9s339Ihk1ntJNa7DfSNOOH92GTiHxTDg57XcaXXL2VcPYCnYFWSqj0i-Hj192TB8EX2VllNNx6xFDyaft5OoO779O9_qLNqz75Tr2tOzQNro2QA_LGWPU2Fv027tGRolBDI_6qP57uQrgT95FIo5TdyfsQp2EcIZyQu9U9YQnjKMWUJrUUDUJJzEmYUFnjhqcyvVP3KEBRQAMSUhQHdJ5gyUkscROmcV3XBMSBXDPVztv2ZT033fJu2D9wj-MkiO9aVsvWDhvBENLyFQ6FACGQFHfd_bDzoO6XFsRBq6yzBxWnXCvvdx3pe2ujWtlt904MvTV8zIfjPgCll-Nurt0usF_eU3HXd-39r2-aGNr9vwAAAP__n8PlnA">