clang:modulescrashhelp wantedplatform:windows
仓库指标
- Star
- (26,378 star)
- PR 合并指标
- (平均合并 1天 2小时) (30 天内合并 1,000 个 PR)
描述
these code can reproduce the issue, using clang 21.1.5
module1
export module test;
export
struct foo{
int v;
int get() const noexcept{
return v;
}
};
module2
export module test_2;
import test;
import std;
export
void bar(){
std::vector<foo> foos;
[[maybe_unused]] auto itr = std::ranges::find(foos, 0, &foo::get);
}
main.cpp
import test_2;
import std;
int main() {
bar();
}
Move the function bar into module test and import test; then the issue CANNOT be reproduced.
Both member pointer and member function pointer seem cause this issue.
My console output, conataining compile option
[ 1%]: <mo_yanxi> generating.module.deps src\main.cpp
d:\lib\llvm\bin\clang-scan-deps.exe --format=p1689 -- D:\lib\LLVM\bin\clang++ -x c++ -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -O0 -std=c++26 -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -c src\main.cpp -o build\.objs\mo_yanxi\windows\x64\debug\src\main.cpp.obj
[ 1%]: <mo_yanxi> generating.module.deps src\test.ixx
d:\lib\llvm\bin\clang-scan-deps.exe --format=p1689 -- D:\lib\LLVM\bin\clang++ -x c++ -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -O0 -std=c++26 -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -c src\test.ixx -o build\.objs\mo_yanxi\windows\x64\debug\src\test.ixx.obj
[ 25%]: <mo_yanxi> compiling.module.bmi.debug test
D:\lib\LLVM\bin\clang++ -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -O0 -std=c++26 -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -x c++-module --precompile -o build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\5df994ea6185f58f\test.pcm src\test.ixx
[ 34%]: <mo_yanxi> compiling.module.bmi.debug test_2
D:\lib\LLVM\bin\clang++ -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -O0 -std=c++26 -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -fmodule-file=std=build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\af132e7790dc3ea1\std.pcm -fmodule-file=test=build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\5df994ea6185f58f\test.pcm -x c++-module --precompile -o build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\effb05a9a0b27bb6\test_2.pcm src\test2.ixx
[ 43%]: compiling.debug src\test.ixx
D:\lib\LLVM\bin\clang++ -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -O0 -std=c++26 -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -o build\.objs\mo_yanxi\windows\x64\debug\src\test.ixx.obj build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\5df994ea6185f58f\test.pcm
[ 51%]: compiling.debug src\test2.ixx
D:\lib\LLVM\bin\clang++ -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -O0 -std=c++26 -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -fmodule-file=std=build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\af132e7790dc3ea1\std.pcm -fmodule-file=test=build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\5df994ea6185f58f\test.pcm -o build\.objs\mo_yanxi\windows\x64\debug\src\test2.ixx.obj build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\effb05a9a0b27bb6\test_2.pcm
[ 69%]: compiling.debug src\main.cpp
D:\lib\LLVM\bin\clang++ -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -O0 -std=c++26 -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -fmodule-file=std=build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\af132e7790dc3ea1\std.pcm -fmodule-file=test_2=build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\effb05a9a0b27bb6\test_2.pcm -fmodule-file=test=build\.gens\mo_yanxi\windows\x64\debug\rules\bmi\cache\interfaces\5df994ea6185f58f\test.pcm -o build\.objs\mo_yanxi\windows\x64\debug\src\main.cpp.obj src\main.cpp
error: 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: D:\\lib\\LLVM\\bin\\clang++ -c -Qunused-arguments -m64 --target=x86_64-windows-msvc -g -Wall -O0 -std=c++26 -fexceptions -fcxx-exceptions -finput-charset=UTF-8 -fexec-charset=UTF-8 -fmodule-file=std=build\\.gens\\mo_yanxi\\windows\\x64\\debug\\rules\\bmi\\cache\\interfaces\\af132e7790dc3ea1\\std.pcm -fmodule-file=test=build\\.gens\\mo_yanxi\\windows\\x64\\debug\\rules\\bmi\\cache\\interfaces\\5df994ea6185f58f\\test.pcm -fdiagnostics-color=always -o build\\.objs\\mo_yanxi\\windows\\x64\\debug\\src\\test2.ixx.obj build\\.gens\\mo_yanxi\\windows\\x64\\debug\\rules\\bmi\\cache\\interfaces\\effb05a9a0b27bb6\\test_2.pcm
1. <eof> parser at end of file
2. D:\projects\untitled\src\test2.ixx:7:6: LLVM IR generation of declaration 'bar'
3. D:\projects\untitled\src\test2.ixx:7:6: Generating code for declaration 'bar'
Exception Code: 0xC0000005
#0 0x00007ff766c084a7 (D:\lib\LLVM\bin\clang++.exe+0x17e84a7)
#1 0x00007ff7654845df (D:\lib\LLVM\bin\clang++.exe+0x645df)
#2 0x00007ff766e71201 (D:\lib\LLVM\bin\clang++.exe+0x1a51201)
#3 0x00007ff766e8c5e4 (D:\lib\LLVM\bin\clang++.exe+0x1a6c5e4)
#4 0x00007ff766e8ae89 (D:\lib\LLVM\bin\clang++.exe+0x1a6ae89)
#5 0x00007ff766e86c01 (D:\lib\LLVM\bin\clang++.exe+0x1a66c01)
#6 0x00007ff766e90bc9 (D:\lib\LLVM\bin\clang++.exe+0x1a70bc9)
#7 0x00007ff766e7a1ac (D:\lib\LLVM\bin\clang++.exe+0x1a5a1ac)
#8 0x00007ff7656f593e (D:\lib\LLVM\bin\clang++.exe+0x2d593e)
#9 0x00007ff7656f564d (D:\lib\LLVM\bin\clang++.exe+0x2d564d)
#10 0x00007ff766e8cd3d (D:\lib\LLVM\bin\clang++.exe+0x1a6cd3d)
#11 0x00007ff766e8ced1 (D:\lib\LLVM\bin\clang++.exe+0x1a6ced1)
#12 0x00007ff766e8c965 (D:\lib\LLVM\bin\clang++.exe+0x1a6c965)
#13 0x00007ff76663a8a2 (D:\lib\LLVM\bin\clang++.exe+0x121a8a2)
#14 0x00007ff765430c6d (D:\lib\LLVM\bin\clang++.exe+0x10c6d)
#15 0x00007ff76542eefb (D:\lib\LLVM\bin\clang++.exe+0xeefb)
#16 0x00007ff7666328c9 (D:\lib\LLVM\bin\clang++.exe+0x12128c9)
#17 0x00007ff7666303ae (D:\lib\LLVM\bin\clang++.exe+0x12103ae)
#18 0x00007ff76662fefe (D:\lib\LLVM\bin\clang++.exe+0x120fefe)
#19 0x00007ff76662e515 (D:\lib\LLVM\bin\clang++.exe+0x120e515)
#20 0x00007ff76662bf4e (D:\lib\LLVM\bin\clang++.exe+0x120bf4e)
#21 0x00007ff76662b4cd (D:\lib\LLVM\bin\clang++.exe+0x120b4cd)
#22 0x00007ff766abef37 (D:\lib\LLVM\bin\clang++.exe+0x169ef37)
#23 0x00007ff766abbb12 (D:\lib\LLVM\bin\clang++.exe+0x169bb12)
#24 0x00007ff7673c0cbc (D:\lib\LLVM\bin\clang++.exe+0x1fa0cbc)
#25 0x00007ff7673b353f (D:\lib\LLVM\bin\clang++.exe+0x1f9353f)
#26 0x00007ff768a8fa80 (D:\lib\LLVM\bin\clang++.exe+0x366fa80)
#27 0x00007ff767d4d181 (D:\lib\LLVM\bin\clang++.exe+0x292d181)
#28 0x00007ff767359fa4 (D:\lib\LLVM\bin\clang++.exe+0x1f39fa4)
#29 0x00007ff765a4a493 (D:\lib\LLVM\bin\clang++.exe+0x62a493)
#30 0x00007ff765a4a0dd (D:\lib\LLVM\bin\clang++.exe+0x62a0dd)
#31 0x00007ff765a46d96 (D:\lib\LLVM\bin\clang++.exe+0x626d96)
#32 0x00007ff765a438f8 (D:\lib\LLVM\bin\clang++.exe+0x6238f8)
#33 0x00007ff765a4218e (D:\lib\LLVM\bin\clang++.exe+0x62218e)
#34 0x00007ff76632ee5d (D:\lib\LLVM\bin\clang++.exe+0xf0ee5d)
#35 0x00007ff765bd2685 (D:\lib\LLVM\bin\clang++.exe+0x7b2685)
#36 0x00007ff765bd2478 (D:\lib\LLVM\bin\clang++.exe+0x7b2478)
#37 0x00007ff7658f7825 (D:\lib\LLVM\bin\clang++.exe+0x4d7825)
#38 0x00007ff7658f716e (D:\lib\LLVM\bin\clang++.exe+0x4d716e)
#39 0x00007ff7658f6d4d (D:\lib\LLVM\bin\clang++.exe+0x4d6d4d)
#40 0x00007ff7658eda86 (D:\lib\LLVM\bin\clang++.exe+0x4cda86)
#41 0x00007ff7658eb023 (D:\lib\LLVM\bin\clang++.exe+0x4cb023)
#42 0x00007ff76740d0a0 (D:\lib\LLVM\bin\clang++.exe+0x1fed0a0)
#43 0x00007fff470ae8d7 (C:\WINDOWS\System32\KERNEL32.DLL+0x2e8d7)
#44 0x00007fff490cc53c (C:\WINDOWS\SYSTEM32\ntdll.dll+0x8c53c)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 21.1.5
Target: x86_64-unknown-windows-msvc
Thread model: posix
InstalledDir: D:\lib\LLVM\bin
clang++: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.