Skip to content
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

LLVM does not handle SEH binary #94

Open
54 opened this issue Mar 6, 2024 · 2 comments
Open

LLVM does not handle SEH binary #94

54 opened this issue Mar 6, 2024 · 2 comments
Labels
bug Something isn't working SEH

Comments

@54
Copy link

54 commented Mar 6, 2024

When compiling xcpt4 test from https://github.com/backengineering/seh-tests with llvm-msvc, the frontend returns with an error. No artifacts included as it cannot even be compiled:

1>PLEASE submit a bug report to https://github.com/backengineering/llvm-msvc/issues and include the crash backtrace, preprocessed source, and associated run script.
1>Stack dump:
1>0.	Program arguments: C:\\Users\\based\\Downloads\\llvm-msvc_X86_64\\bin\\clang-cl.exe -cc1 -triple x86_64-pc-windows-msvc19.39.33519 -emit-llvm-bc -flto=full -flto-unit -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name xcpt4u.c -mrelocation-model pic -pic-level 2 -mframe-pointer=none -relaxed-aliasing -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -fms-volatile -funwind-tables=2 -target-cpu x86-64 -mllvm -x86-asm-syntax=intel -tune-cpu generic -D_MT -flto-visibility-public-std --dependent-lib=libcmt --dependent-lib=oldnames -stack-protector 2 -fexceptions -fasync-exceptions -fdefault-calling-conv=cdecl -fdiagnostics-format msvc -gno-column-info -gcodeview -debug-info-kind=constructor -fdebug-compilation-dir=C:\\Users\\based\\source\\repos\\seh-tests\\src\\xcpt4 -object-file-name=C:\\Users\\based\\source\\repos\\seh-tests\\src\\xcpt4\\x64\\Release\\xcpt4u.obj -ffunction-sections -fcoverage-compilation-dir=C:\\Users\\based\\source\\repos\\seh-tests\\src\\xcpt4 -resource-dir C:\\Users\\based\\Downloads\\llvm-msvc_X86_64\\lib\\clang\\18 -D BAIL_IN_FINALLY -D NDEBUG -D _CONSOLE -D _UNICODE -D UNICODE -internal-isystem C:\\Users\\based\\Downloads\\llvm-msvc_X86_64\\lib\\clang\\18\\include -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\atlmfc\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\VS\\include" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\ucrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\um" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\shared" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\winrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\cppwinrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\Include\\um" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\atlmfc\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\VS\\include" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\ucrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\um" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\shared" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\winrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22621.0\\cppwinrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\Include\\um" -O2 -Wall -Wno-error -Wsystem-headers -ferror-limit 4294967295 -fno-use-cxa-atexit -fms-extensions -fms-compatibility -Wno-unused-function -Wno-unused-variable -Wno-unused-value -fms-compatibility-version=19.39.33519 -fno-inline -fno-caret-diagnostics -vectorize-loops -vectorize-slp -faddrsig -o x64\\Release\\xcpt4u.obj -x c xcpt4u.c
1>1.	<eof> parser at end of file
1>2.	xcpt4u.c:354:1: LLVM IR generation of declaration 'main'
1>3.	xcpt4u.c:354:1: Generating code for declaration 'main'
1>4.	xcpt4u.c:1342:48: LLVM IR generation of compound statement ('{}')
1>5.	xcpt4u.c:1348:21: LLVM IR generation of compound statement ('{}')
1>Exception Code: 0xC0000005
1> #0 0x00007ff6b28fcf7d (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x12ccf7d)
1> #1 0x00007ff6b28fea72 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x12cea72)
1> #2 0x00007ff6b27c33b9 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x11933b9)
1> #3 0x00007ff6b27c2ff4 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1192ff4)
1> #4 0x00007ff6b367b5c2 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x204b5c2)
1> #5 0x00007ff6b24f8b8c (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xec8b8c)
1> #6 0x00007ff6b2a9d6c2 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x146d6c2)
1> #7 0x00007ff6b24f912f (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xec912f)
1> #8 0x00007ff6b2a9da32 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x146da32)
1> #9 0x00007ff6b24f8e1c (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xec8e1c)
1>#10 0x00007ff6b2a939c1 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x14639c1)
1>#11 0x00007ff6b2a90467 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1460467)
1>#12 0x00007ff6b2a90d4b (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1460d4b)
1>#13 0x00007ff6b2f62aaf (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1932aaf)
1>#14 0x00007ff6b3d75972 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x2745972)
1>#15 0x00007ff6b3156c47 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1b26c47)
1>#16 0x00007ff6b2f6188a (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x193188a)
1>#17 0x00007ff6b3156ad4 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1b26ad4)
1>#18 0x00007ff6b313ff0d (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1b0ff0d)
1>#19 0x00007ff6b31e0be2 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1bb0be2)
1>#20 0x00007ff6b1715b46 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xe5b46)
1>#21 0x00007ff6b170f097 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xdf097)
1>#22 0x00007ff6b1710fa1 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xe0fa1)
1>#23 0x00007ff6b171f9e4 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xef9e4)
1>#24 0x00007ff6b4ccae58 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x369ae58)
1>#25 0x00007ffaec8853e0 (C:\WINDOWS\System32\KERNEL32.DLL+0x153e0)
1>#26 0x00007ffaed26485b (C:\WINDOWS\SYSTEM32\ntdll.dll+0x485b)
1> #0 0x00007ff6b2481880 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xe51880)
1> #1 0x00007ff6b24d29f5 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xea29f5)
1> #2 0x00007ff6b21675ec (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xb375ec)
1> #3 0x00007ff6b2c83802 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1653802)
1> #4 0x00007ff6b2b53d81 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1523d81)
1> #5 0x00007ff6b2b54045 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1524045)
1> #6 0x00007ff6b2b50ea1 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1520ea1)
1> #7 0x00007ff6b2b53b10 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1523b10)
1> #8 0x00007ff6b2b54045 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1524045)
1> #9 0x00007ff6b2b1d9ca (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x14ed9ca)
1>#10 0x00007ff6b2b1c99b (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x14ec99b)
1>#11 0x00007ff6b2b5437f (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x152437f)
1>#12 0x00007ff6b2b50ea1 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1520ea1)
1>#13 0x00007ff6b2b53b10 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1523b10)
1>#14 0x00007ff6b2b54045 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1524045)
1>#15 0x00007ff6b2b51b68 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1521b68)
1>#16 0x00007ff6b2b5419c (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x152419c)
1>#17 0x00007ff6b2b50ea1 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1520ea1)
1>#18 0x00007ff6b2b3f76d (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x150f76d)
1>#19 0x00007ff6b2a5f9ce (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x142f9ce)
1>#20 0x00007ff6b2a5f6a4 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x142f6a4)
1>#21 0x00007ff6b2a5f0e1 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x142f0e1)
1>#22 0x00007ff6b2a61c78 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1431c78)
1>#23 0x00007ff6b2f68fec (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1938fec)
1>#24 0x00007ff6b2f624b6 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x19324b6)
1>#25 0x00007ff6b3d758f6 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x27458f6)
1>#26 0x00007ff6b3156c47 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1b26c47)
1>#27 0x00007ff6b2f6188a (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x193188a)
1>#28 0x00007ff6b3156ad4 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1b26ad4)
1>#29 0x00007ff6b313ff0d (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1b0ff0d)
1>#30 0x00007ff6b31e0be2 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x1bb0be2)
1>#31 0x00007ff6b1715b46 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xe5b46)
1>#32 0x00007ff6b170f097 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xdf097)
1>#33 0x00007ff6b1710fa1 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xe0fa1)
1>#34 0x00007ff6b171f9e4 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0xef9e4)
1>#35 0x00007ff6b4ccae58 (C:\Users\based\Downloads\llvm-msvc_X86_64\bin\clang-cl.exe+0x369ae58)
1>#36 0x00007ffaec8853e0 (C:\WINDOWS\System32\KERNEL32.DLL+0x153e0)
1>#37 0x00007ffaed26485b (C:\WINDOWS\SYSTEM32\ntdll.dll+0x485b)
1>clang-cl : error : clang frontend command failed due to signal (use -v to see invocation)
1>clang-cl : error : clang frontend command failed due to signal (use -v to see invocation)
1>clang version 18.0.0git (https://github.com/backengineering/llvm-msvc ec97d6534b36923f5de623bcf51c95ae5e953e34)
1>Target: x86_64-pc-windows-msvc
1>Thread model: posix
1>InstalledDir: C:\Users\based\Downloads\llvm-msvc_X86_64\bin
1>Done building project "xcpt4.vcxproj" -- FAILED.
@CR3Swapper
Copy link
Contributor

here is the source code of the binary causing the crash: https://github.com/microsoft/windows_seh_tests/blob/main/src/xcpt4/xcpt4ex.c

I suspect the crash is happening because the compiler is trying to handle too many __leave operations? Idk, msvc can compile this code and it generates local unwinds.

@gmh5225 gmh5225 added SEH bug Something isn't working labels Mar 6, 2024
@gmh5225
Copy link
Collaborator

gmh5225 commented Mar 7, 2024

The cause of the crash is __finally. It's going to take some time to figure it out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working SEH
Projects
None yet
Development

No branches or pull requests

3 participants