Skip to content

clang-cl compiler error with mtune targeting ARM64 Windows: Failed to evaluate function length in SEH unwind info #64504

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
pulidocr opened this issue Aug 7, 2023 · 3 comments

Comments

@pulidocr
Copy link
Contributor

pulidocr commented Aug 7, 2023

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.
  5. Compile test.cpp (code below) with clang-cl.exe -clang:--target=aarch64-windows-msvc -clang:-O3 -clang:-mtune=neoverse-n1 -c test.cpp
  6. Build should succeed, but instead it crashes with a stack trace.

Auto-generated repro files: mtune-bug-repro.zip

test.cpp:

#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
@llvmbot
Copy link
Member

llvmbot commented Aug 7, 2023

@llvm/issue-subscribers-backend-aarch64

@phoebewang
Copy link
Contributor

Cannot be reproduced with trunk.

@hmartinez82
Copy link

@phoebewang can you try with the latest 19.x release? I can constantly reproduce this with this: #69454 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants