Skip to content

Clang Crashes when template is too complex in modules. #139006

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

Open
YiRanMushroom opened this issue May 8, 2025 · 3 comments
Open

Clang Crashes when template is too complex in modules. #139006

YiRanMushroom opened this issue May 8, 2025 · 3 comments
Labels
clang:modules C++20 modules and Clang Header Modules crash Prefer [crash-on-valid] or [crash-on-invalid] needs-reduction Large reproducer that should be reduced into a simpler form

Comments

@YiRanMushroom
Copy link

I don't what the actual cause of this crash is, but when I am using Google's jni-bind(which is a template metaprogramming libarary for jni) in a module, the compiler crashes. Please note that where the template is defined does not matter(in a header file or a module). It would crash on the call site(place where instantiation occurs). Here is the console output, I will provide more information after this.
The lines indicates the cause of crash:

1.	<eof> parser at end of file
2.	E:\code\C++\EasyEngineDevDir\EasyEditor\src\EditorMain.ixx:69:12: LLVM IR generation of declaration 'main'
3.	E:\code\C++\EasyEngineDevDir\EasyEditor\src\EditorMain.ixx:69:12: Generating code for declaration 'main'
4.	E:\code\C++\EasyEngineDevDir\EasyEditor\EasyEngineCore\vendor\jni-bind\jni_bind_release.h:6722:18: Mangling declaration 'jni::metaprogramming::InvocableMap20<jni::StaticRef<ETLib>, jni::JniT<_jobject *, ETLib, jni::kDefaultClassLoader, jni::kDefaultJvm>::static_v, jni::StaticRefHelper<jni::StaticRef<ETLib>, ETLib, jni::kDefaultClassLoader, jni::kDefaultJvm>, const std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>> jni::Static<std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>>, std::tuple<>>::*, &jni::Static<std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>>, std::tuple<>>::methods_>::Call'

The full Log is:

"C:\Program Files\JetBrains\CLion 2025.1\bin\cmake\win\x64\bin\cmake.exe" --build E:\code\C++\EasyEngineDevDir\EasyEditor\build\release --target EasyEditor --config Release -j 30
[0/2] Re-checking globbed directories...
[1/5] Scanning E:/code/C++/EasyEngineDevDir/EasyEditor/src/EditorMain.ixx for CXX dependencies
[2/5] Generating CXX dyndep file CMakeFiles/EasyEditor.dir/Release/CXX.dd
[3/5] Building CXX object CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj
FAILED: CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj CMakeFiles/EasyEditor.dir/Release/EditorMain.pcm 
C:\PROGRA~1\LLVM\bin\CLANG_~1.EXE -DEZ_DEBUG=1 -DEZ_PLATFORM_WINDOWS -DEZ_RENDERER_OPENGL -DSPDLOG_COMPILED_LIB -DYAML_CPP_STATIC_DEFINE -D_CRT_SECURE_NO_WARNINGS -DCMAKE_INTDIR=\"Release\" -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/Easy/PCH -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/Easy -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glad/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/imgui -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/SPIRV-Cross -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/ImGuizmo -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/stb_image -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/msdf-atlas-gen/msdf-atlas-gen -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/msdf-atlas-gen/msdfgen -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/msdf-atlas-gen/msdfgen/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glfw/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/spdlog/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glm -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/shaderc/libshaderc/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glslang/SPIRV/.. -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glslang/SPIRV/../External -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glslang/glslang/.. -IE:/code/C++/EasyEngineDevDir/EasyEditor/build/release/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glslang/glslang/../External -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/SPIRV-Tools/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/SPIRV-Headers/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/yaml-cpp/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/box2d/src/../include -IE:/code/C++/EasyEngineDevDir/EasyEditor/build/release/EasyEngineCore/vendor/LuaJIT/src -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/LuaJIT/src -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind/class_defs -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind/implementation -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind/implementation/jni_helper -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind/metaprogramming -isystem E:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/sol2/include -isystem "C:/Program Files/Java/jdk-21/include" -isystem "C:/Program Files/Java/jdk-21/include/win32" -std=gnu++23 -D_DLL -D_MT -Xclang --dependent-lib=msvcrt -Wno-macro-redefined -Wno-deprecated-declarations -MD -MT CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj -MF CMakeFiles\EasyEditor.dir\Release\src\EditorMain.ixx.obj.d @CMakeFiles\EasyEditor.dir\Release\src\EditorMain.ixx.obj.modmap -o CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj -c E:/code/C++/EasyEngineDevDir/EasyEditor/src/EditorMain.ixx
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: "C:\\Program Files\\LLVM\\bin\\clang++.exe" -cc1 -triple x86_64-pc-windows-msvc19.43.34810 -emit-obj -mincremental-linker-compatible -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name EditorMain.ixx -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 -tune-cpu generic -fdebug-compilation-dir=E:\\code\\C++\\EasyEngineDevDir\\EasyEditor\\build\\release -fcoverage-compilation-dir=E:\\code\\C++\\EasyEngineDevDir\\EasyEditor\\build\\release -resource-dir "C:\\Program Files\\LLVM\\lib\\clang\\20" -Wno-macro-redefined -Wno-deprecated-declarations -std=gnu++23 -fdeprecated-macro -ferror-limit 19 -fno-use-cxa-atexit -fms-extensions -fms-compatibility -fms-compatibility-version=19.43.34810 -fno-implicit-modules -fmodule-file=Easy=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.pcm -fmodule-file=Easy.Core.Log=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Log.pcm -fmodule-file=Easy.Core.Profile=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Profile.pcm -fmodule-file=Easy.Core=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.pcm -fmodule-file=Easy.Core.Application=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Application.pcm -fmodule-file=Easy.Core.ApplicationContext=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.ApplicationContext.pcm -fmodule-file=Easy.Core.Basic=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Basic.pcm -fmodule-file=Easy.Core.Input=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Input.pcm -fmodule-file=Easy.Core.KeyCodes=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.KeyCodes.pcm -fmodule-file=Easy.Core.Layer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Layer.pcm -fmodule-file=Easy.Core.LayerStack=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.LayerStack.pcm -fmodule-file=Easy.Core.MouseCodes=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.MouseCodes.pcm -fmodule-file=Easy.Core.UUID=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.UUID.pcm -fmodule-file=Easy.Core.Util=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Util.pcm -fmodule-file=Easy.Core.Window=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Window.pcm -fmodule-file=Easy.Events=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.pcm -fmodule-file=Easy.Events.ApplicationEvents=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.ApplicationEvents.pcm -fmodule-file=Easy.Events.Event=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.Event.pcm -fmodule-file=Easy.Events.KeyEvents=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.KeyEvents.pcm -fmodule-file=Easy.Events.MouseEvents=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.MouseEvents.pcm -fmodule-file=Easy.ImGui=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.ImGui.pcm -fmodule-file=Easy.ImGui.ImGui=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.ImGui.ImGui.pcm -fmodule-file=Easy.ImGui.ImGuiLayer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.ImGui.ImGuiLayer.pcm -fmodule-file=Easy.Math=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Math.pcm -fmodule-file=Easy.Math.Misc=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Math.Misc.pcm -fmodule-file=Easy.Math.Transforms=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Math.Transforms.pcm -fmodule-file=Easy.Platform=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.pcm -fmodule-file=Easy.Platform.Impl=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.pcm -fmodule-file=Easy.Platform.Impl.OpenGL=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.ImGui=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.ImGui.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.ImGuiLayer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.ImGuiLayer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.Buffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.Buffer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.FrameBuffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.FrameBuffer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.GraphicsContext=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.GraphicsContext.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.RendererAPI=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.RendererAPI.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.Shader=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.Shader.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.Texture=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.Texture.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.UniformBuffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.UniformBuffer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.VertexArray=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.VertexArray.pcm -fmodule-file=Easy.Platform.Impl.Windows=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.Windows.pcm -fmodule-file=Easy.Platform.Impl.Windows.Window=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.Windows.Window.pcm -fmodule-file=Easy.Platform.Impl.Windows.WindowsInput=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.Windows.WindowsInput.pcm -fmodule-file=Easy.Renderer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.pcm -fmodule-file=Easy.Renderer.Buffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Buffer.pcm -fmodule-file=Easy.Renderer.Camera=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Camera.pcm -fmodule-file=Easy.Renderer.EditorCamera=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.EditorCamera.pcm -fmodule-file=Easy.Renderer.Font=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Font.pcm -fmodule-file=Easy.Renderer.FrameBuffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.FrameBuffer.pcm -fmodule-file=Easy.Renderer.GraphicsContext=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.GraphicsContext.pcm -fmodule-file=Easy.Renderer.MSDFData=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.MSDFData.pcm -fmodule-file=Easy.Renderer.OrthographicCamera=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.OrthographicCamera.pcm -fmodule-file=Easy.Renderer.OrthographicCameraController=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.OrthographicCameraController.pcm -fmodule-file=Easy.Renderer.RenderCommand=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.RenderCommand.pcm -fmodule-file=Easy.Renderer.Renderer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Renderer.pcm -fmodule-file=Easy.Renderer.Renderer2D=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Renderer2D.pcm -fmodule-file=Easy.Renderer.RendererAPI=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.RendererAPI.pcm -fmodule-file=Easy.Renderer.Shader=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Shader.pcm -fmodule-file=Easy.Renderer.Texture=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Texture.pcm -fmodule-file=Easy.Renderer.UniformBuffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.UniformBuffer.pcm -fmodule-file=Easy.Renderer.VertexArray=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.VertexArray.pcm -fmodule-file=Easy.Scene=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.pcm -fmodule-file=Easy.Scene.Components=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.Components.pcm -fmodule-file=Easy.Scene.Entity=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.Entity.pcm -fmodule-file=Easy.Scene.Scene=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.Scene.pcm -fmodule-file=Easy.Scene.SceneCamera=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.SceneCamera.pcm -fmodule-file=Easy.Scene.ScriptableEntity=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.ScriptableEntity.pcm -fmodule-file=Easy.Script.ScriptingEngine=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Script.ScriptingEngine.pcm -fmodule-file=Easy.Scripting=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scripting.pcm -fmodule-file=Easy.Scripting.JniBind=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scripting.JniBind.pcm -fmodule-file=Easy.Scripting.ScriptGlue=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scripting.ScriptGlue.pcm -fmodule-file=Easy.Vendor=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Vendor.pcm -fmodule-file=Easy.Vendor.entt=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Vendor.entt.pcm -fmodule-file=Easy.Vendor.glm=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Vendor.glm.pcm -fmodule-file=yrm.msvc.std=EasyEngineCore/vendor/std_module/CMakeFiles/std_module.dir/Release/yrm.msvc.std.pcm -fmodule-file=yrm.msvc.std.compat=EasyEngineCore/vendor/std_module/CMakeFiles/std_module.dir/Release/yrm.msvc.std.compat.pcm -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions --dependent-lib=msvcrt -faddrsig -o CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj -x pcm CMakeFiles/EasyEditor.dir/Release/EditorMain.pcm
1.	<eof> parser at end of file
2.	E:\code\C++\EasyEngineDevDir\EasyEditor\src\EditorMain.ixx:69:12: LLVM IR generation of declaration 'main'
3.	E:\code\C++\EasyEngineDevDir\EasyEditor\src\EditorMain.ixx:69:12: Generating code for declaration 'main'
4.	E:\code\C++\EasyEngineDevDir\EasyEditor\EasyEngineCore\vendor\jni-bind\jni_bind_release.h:6722:18: Mangling declaration 'jni::metaprogramming::InvocableMap20<jni::StaticRef<ETLib>, jni::JniT<_jobject *, ETLib, jni::kDefaultClassLoader, jni::kDefaultJvm>::static_v, jni::StaticRefHelper<jni::StaticRef<ETLib>, ETLib, jni::kDefaultClassLoader, jni::kDefaultJvm>, const std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>> jni::Static<std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>>, std::tuple<>>::*, &jni::Static<std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>>, std::tuple<>>::methods_>::Call'
Exception Code: 0xC0000005
 #0 0x00007ff73bc42e37 (C:\Program Files\LLVM\bin\clang++.exe+0x1652e37)
 #1 0x00007ff73d797c2d (C:\Program Files\LLVM\bin\clang++.exe+0x31a7c2d)
 #2 0x00007ff73bc40415 (C:\Program Files\LLVM\bin\clang++.exe+0x1650415)
 #3 0x00007ff73bc37701 (C:\Program Files\LLVM\bin\clang++.exe+0x1647701)
 #4 0x00007ff73bc4116c (C:\Program Files\LLVM\bin\clang++.exe+0x165116c)
 #5 0x00007ff73bf821d1 (C:\Program Files\LLVM\bin\clang++.exe+0x19921d1)
 #6 0x00007ff73bf818e4 (C:\Program Files\LLVM\bin\clang++.exe+0x19918e4)
 #7 0x00007ff73bb5b5f2 (C:\Program Files\LLVM\bin\clang++.exe+0x156b5f2)
 #8 0x00007ff73bd4034d (C:\Program Files\LLVM\bin\clang++.exe+0x175034d)
 #9 0x00007ff73bd3eebd (C:\Program Files\LLVM\bin\clang++.exe+0x174eebd)
#10 0x00007ff73bd3b59e (C:\Program Files\LLVM\bin\clang++.exe+0x174b59e)
#11 0x00007ff73bd2ff6d (C:\Program Files\LLVM\bin\clang++.exe+0x173ff6d)
#12 0x00007ff73bd2fbe8 (C:\Program Files\LLVM\bin\clang++.exe+0x173fbe8)
#13 0x00007ff73bd29320 (C:\Program Files\LLVM\bin\clang++.exe+0x1739320)
#14 0x00007ff73bd26ee1 (C:\Program Files\LLVM\bin\clang++.exe+0x1736ee1)
#15 0x00007ff73be82829 (C:\Program Files\LLVM\bin\clang++.exe+0x1892829)
#16 0x00007ff73be81b96 (C:\Program Files\LLVM\bin\clang++.exe+0x1891b96)
#17 0x00007ff73be818ce (C:\Program Files\LLVM\bin\clang++.exe+0x18918ce)
#18 0x00007ff73be802de (C:\Program Files\LLVM\bin\clang++.exe+0x18902de)
#19 0x00007ff73be7df26 (C:\Program Files\LLVM\bin\clang++.exe+0x188df26)
#20 0x00007ff73be7d4d5 (C:\Program Files\LLVM\bin\clang++.exe+0x188d4d5)
#21 0x00007ff73bb518fc (C:\Program Files\LLVM\bin\clang++.exe+0x15618fc)
#22 0x00007ff73bb4e68a (C:\Program Files\LLVM\bin\clang++.exe+0x155e68a)
#23 0x00007ff73c4f0d3c (C:\Program Files\LLVM\bin\clang++.exe+0x1f00d3c)
#24 0x00007ff73c4e59d6 (C:\Program Files\LLVM\bin\clang++.exe+0x1ef59d6)
#25 0x00007ff73dbc8194 (C:\Program Files\LLVM\bin\clang++.exe+0x35d8194)
#26 0x00007ff73ce70081 (C:\Program Files\LLVM\bin\clang++.exe+0x2880081)
#27 0x00007ff73c46c197 (C:\Program Files\LLVM\bin\clang++.exe+0x1e7c197)
#28 0x00007ff73a617ed3 (C:\Program Files\LLVM\bin\clang++.exe+0x27ed3)
#29 0x00007ff73a617b42 (C:\Program Files\LLVM\bin\clang++.exe+0x27b42)
#30 0x00007ff73a614f16 (C:\Program Files\LLVM\bin\clang++.exe+0x24f16)
#31 0x00007ff73a611a2d (C:\Program Files\LLVM\bin\clang++.exe+0x21a2d)
#32 0x00007ff73a61031e (C:\Program Files\LLVM\bin\clang++.exe+0x2031e)
#33 0x00007ff73aa594ba (C:\Program Files\LLVM\bin\clang++.exe+0x4694ba)
#34 0x00007ff73aa55ef3 (C:\Program Files\LLVM\bin\clang++.exe+0x465ef3)
#35 0x00007ff73c53c6a4 (C:\Program Files\LLVM\bin\clang++.exe+0x1f4c6a4)
#36 0x00007ffddf01e8d7 (C:\WINDOWS\System32\KERNEL32.DLL+0x2e8d7)
#37 0x00007ffde04314fc (C:\WINDOWS\SYSTEM32\ntdll.dll+0xb14fc)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 20.1.3
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
clang++: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: C:\Users\Yiran\AppData\Local\Temp\EditorMain-4a63f4.cppm
clang++: note: diagnostic msg: C:\Users\Yiran\AppData\Local\Temp\EditorMain-4a63f4.sh
clang++: note: diagnostic msg: 

********************
ninja: build stopped: subcommand failed.

The two files are:
EditorMain-4a63f4.cppm.txt
EditorMain-4a63f4.sh.txt

The relevant repository is https://github.com/google/jni-bind
My project repository: https://github.com/YiRanMushroom/EasyEditor
The STL I am using is MSVC STL. STL module is build by myself.

@llvmbot llvmbot added the clang Clang issues not falling into any other category label May 8, 2025
@YiRanMushroom
Copy link
Author

I was going the footage of me debugging the issue, and I found out that this problem seems to occur very randomly. At first, the definition and call site of the template is rather simple(not many symbols were exported), and it works fine. But when the definition interface unit becomes more complex, false compiler errors were reported(I am not sure if this is true since the error message is too complex and I don't know if I did anything wrong). And then I modified some of my code, and the compiler just crashes.

@AaronBallman AaronBallman added clang:modules C++20 modules and Clang Header Modules crash Prefer [crash-on-valid] or [crash-on-invalid] needs-reduction Large reproducer that should be reduced into a simpler form labels May 14, 2025
@llvmbot
Copy link
Member

llvmbot commented May 14, 2025

@llvm/issue-subscribers-clang-modules

Author: Yiran Wang (YiRanMushroom)

I don't what the actual cause of this crash is, but when I am using Google's jni-bind(which is a template metaprogramming libarary for jni) in a module, the compiler crashes. Please note that where the template is defined does not matter(in a header file or a module). It would crash on the call site(place where instantiation occurs). Here is the console output, I will provide more information after this. The lines indicates the cause of crash: ``` 1. <eof> parser at end of file 2. E:\code\C++\EasyEngineDevDir\EasyEditor\src\EditorMain.ixx:69:12: LLVM IR generation of declaration 'main' 3. E:\code\C++\EasyEngineDevDir\EasyEditor\src\EditorMain.ixx:69:12: Generating code for declaration 'main' 4. E:\code\C++\EasyEngineDevDir\EasyEditor\EasyEngineCore\vendor\jni-bind\jni_bind_release.h:6722:18: Mangling declaration 'jni::metaprogramming::InvocableMap20<jni::StaticRef<ETLib>, jni::JniT<_jobject *, ETLib, jni::kDefaultClassLoader, jni::kDefaultJvm>::static_v, jni::StaticRefHelper<jni::StaticRef<ETLib>, ETLib, jni::kDefaultClassLoader, jni::kDefaultJvm>, const std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>> jni::Static<std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>>, std::tuple<>>::*, &jni::Static<std::tuple<jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<_jstring *>>>, jni::Method<std::tuple<jni::Return<void>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, _jstring *, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>, jni::Method<std::tuple<jni::Return<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>, std::tuple<jni::Params<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>, jni::Array<jni::Class<std::tuple<jni::Extends<jni::RootObject>>, std::tuple<jni::Constructor<>>, std::tuple<jni::Static<std::tuple<>, std::tuple<>>>, std::tuple<>, std::tuple<>>>>>>>, std::tuple<>>::methods_>::Call' ```

The full Log is:

"C:\Program Files\JetBrains\CLion 2025.1\bin\cmake\win\x64\bin\cmake.exe" --build E:\code\C++\EasyEngineDevDir\EasyEditor\build\release --target EasyEditor --config Release -j 30
[0/2] Re-checking globbed directories...
[1/5] Scanning E:/code/C++/EasyEngineDevDir/EasyEditor/src/EditorMain.ixx for CXX dependencies
[2/5] Generating CXX dyndep file CMakeFiles/EasyEditor.dir/Release/CXX.dd
[3/5] Building CXX object CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj
FAILED: CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj CMakeFiles/EasyEditor.dir/Release/EditorMain.pcm 
C:\PROGRA~1\LLVM\bin\CLANG_~1.EXE -DEZ_DEBUG=1 -DEZ_PLATFORM_WINDOWS -DEZ_RENDERER_OPENGL -DSPDLOG_COMPILED_LIB -DYAML_CPP_STATIC_DEFINE -D_CRT_SECURE_NO_WARNINGS -DCMAKE_INTDIR=\"Release\" -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/Easy/PCH -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/Easy -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glad/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/imgui -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/SPIRV-Cross -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/ImGuizmo -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/stb_image -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/msdf-atlas-gen/msdf-atlas-gen -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/msdf-atlas-gen/msdfgen -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/msdf-atlas-gen/msdfgen/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glfw/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/spdlog/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glm -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/shaderc/libshaderc/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glslang/SPIRV/.. -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glslang/SPIRV/../External -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glslang/glslang/.. -IE:/code/C++/EasyEngineDevDir/EasyEditor/build/release/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/glslang/glslang/../External -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/SPIRV-Tools/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/SPIRV-Headers/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/yaml-cpp/include -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/box2d/src/../include -IE:/code/C++/EasyEngineDevDir/EasyEditor/build/release/EasyEngineCore/vendor/LuaJIT/src -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/LuaJIT/src -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind/class_defs -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind/implementation -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind/implementation/jni_helper -IE:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/jni-bind/metaprogramming -isystem E:/code/C++/EasyEngineDevDir/EasyEditor/EasyEngineCore/vendor/sol2/include -isystem "C:/Program Files/Java/jdk-21/include" -isystem "C:/Program Files/Java/jdk-21/include/win32" -std=gnu++23 -D_DLL -D_MT -Xclang --dependent-lib=msvcrt -Wno-macro-redefined -Wno-deprecated-declarations -MD -MT CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj -MF CMakeFiles\EasyEditor.dir\Release\src\EditorMain.ixx.obj.d @<!-- -->CMakeFiles\EasyEditor.dir\Release\src\EditorMain.ixx.obj.modmap -o CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj -c E:/code/C++/EasyEngineDevDir/EasyEditor/src/EditorMain.ixx
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: "C:\\Program Files\\LLVM\\bin\\clang++.exe" -cc1 -triple x86_64-pc-windows-msvc19.43.34810 -emit-obj -mincremental-linker-compatible -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name EditorMain.ixx -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 -tune-cpu generic -fdebug-compilation-dir=E:\\code\\C++\\EasyEngineDevDir\\EasyEditor\\build\\release -fcoverage-compilation-dir=E:\\code\\C++\\EasyEngineDevDir\\EasyEditor\\build\\release -resource-dir "C:\\Program Files\\LLVM\\lib\\clang\\20" -Wno-macro-redefined -Wno-deprecated-declarations -std=gnu++23 -fdeprecated-macro -ferror-limit 19 -fno-use-cxa-atexit -fms-extensions -fms-compatibility -fms-compatibility-version=19.43.34810 -fno-implicit-modules -fmodule-file=Easy=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.pcm -fmodule-file=Easy.Core.Log=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Log.pcm -fmodule-file=Easy.Core.Profile=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Profile.pcm -fmodule-file=Easy.Core=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.pcm -fmodule-file=Easy.Core.Application=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Application.pcm -fmodule-file=Easy.Core.ApplicationContext=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.ApplicationContext.pcm -fmodule-file=Easy.Core.Basic=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Basic.pcm -fmodule-file=Easy.Core.Input=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Input.pcm -fmodule-file=Easy.Core.KeyCodes=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.KeyCodes.pcm -fmodule-file=Easy.Core.Layer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Layer.pcm -fmodule-file=Easy.Core.LayerStack=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.LayerStack.pcm -fmodule-file=Easy.Core.MouseCodes=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.MouseCodes.pcm -fmodule-file=Easy.Core.UUID=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.UUID.pcm -fmodule-file=Easy.Core.Util=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Util.pcm -fmodule-file=Easy.Core.Window=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Core.Window.pcm -fmodule-file=Easy.Events=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.pcm -fmodule-file=Easy.Events.ApplicationEvents=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.ApplicationEvents.pcm -fmodule-file=Easy.Events.Event=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.Event.pcm -fmodule-file=Easy.Events.KeyEvents=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.KeyEvents.pcm -fmodule-file=Easy.Events.MouseEvents=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Events.MouseEvents.pcm -fmodule-file=Easy.ImGui=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.ImGui.pcm -fmodule-file=Easy.ImGui.ImGui=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.ImGui.ImGui.pcm -fmodule-file=Easy.ImGui.ImGuiLayer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.ImGui.ImGuiLayer.pcm -fmodule-file=Easy.Math=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Math.pcm -fmodule-file=Easy.Math.Misc=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Math.Misc.pcm -fmodule-file=Easy.Math.Transforms=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Math.Transforms.pcm -fmodule-file=Easy.Platform=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.pcm -fmodule-file=Easy.Platform.Impl=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.pcm -fmodule-file=Easy.Platform.Impl.OpenGL=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.ImGui=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.ImGui.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.ImGuiLayer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.ImGuiLayer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.Buffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.Buffer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.FrameBuffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.FrameBuffer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.GraphicsContext=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.GraphicsContext.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.RendererAPI=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.RendererAPI.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.Shader=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.Shader.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.Texture=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.Texture.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.UniformBuffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.UniformBuffer.pcm -fmodule-file=Easy.Platform.Impl.OpenGL.Renderer.VertexArray=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.OpenGL.Renderer.VertexArray.pcm -fmodule-file=Easy.Platform.Impl.Windows=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.Windows.pcm -fmodule-file=Easy.Platform.Impl.Windows.Window=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.Windows.Window.pcm -fmodule-file=Easy.Platform.Impl.Windows.WindowsInput=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Platform.Impl.Windows.WindowsInput.pcm -fmodule-file=Easy.Renderer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.pcm -fmodule-file=Easy.Renderer.Buffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Buffer.pcm -fmodule-file=Easy.Renderer.Camera=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Camera.pcm -fmodule-file=Easy.Renderer.EditorCamera=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.EditorCamera.pcm -fmodule-file=Easy.Renderer.Font=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Font.pcm -fmodule-file=Easy.Renderer.FrameBuffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.FrameBuffer.pcm -fmodule-file=Easy.Renderer.GraphicsContext=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.GraphicsContext.pcm -fmodule-file=Easy.Renderer.MSDFData=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.MSDFData.pcm -fmodule-file=Easy.Renderer.OrthographicCamera=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.OrthographicCamera.pcm -fmodule-file=Easy.Renderer.OrthographicCameraController=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.OrthographicCameraController.pcm -fmodule-file=Easy.Renderer.RenderCommand=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.RenderCommand.pcm -fmodule-file=Easy.Renderer.Renderer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Renderer.pcm -fmodule-file=Easy.Renderer.Renderer2D=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Renderer2D.pcm -fmodule-file=Easy.Renderer.RendererAPI=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.RendererAPI.pcm -fmodule-file=Easy.Renderer.Shader=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Shader.pcm -fmodule-file=Easy.Renderer.Texture=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.Texture.pcm -fmodule-file=Easy.Renderer.UniformBuffer=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.UniformBuffer.pcm -fmodule-file=Easy.Renderer.VertexArray=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Renderer.VertexArray.pcm -fmodule-file=Easy.Scene=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.pcm -fmodule-file=Easy.Scene.Components=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.Components.pcm -fmodule-file=Easy.Scene.Entity=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.Entity.pcm -fmodule-file=Easy.Scene.Scene=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.Scene.pcm -fmodule-file=Easy.Scene.SceneCamera=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.SceneCamera.pcm -fmodule-file=Easy.Scene.ScriptableEntity=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scene.ScriptableEntity.pcm -fmodule-file=Easy.Script.ScriptingEngine=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Script.ScriptingEngine.pcm -fmodule-file=Easy.Scripting=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scripting.pcm -fmodule-file=Easy.Scripting.JniBind=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scripting.JniBind.pcm -fmodule-file=Easy.Scripting.ScriptGlue=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Scripting.ScriptGlue.pcm -fmodule-file=Easy.Vendor=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Vendor.pcm -fmodule-file=Easy.Vendor.entt=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Vendor.entt.pcm -fmodule-file=Easy.Vendor.glm=EasyEngineCore/CMakeFiles/EasyEngineCore.dir/Release/Easy.Vendor.glm.pcm -fmodule-file=yrm.msvc.std=EasyEngineCore/vendor/std_module/CMakeFiles/std_module.dir/Release/yrm.msvc.std.pcm -fmodule-file=yrm.msvc.std.compat=EasyEngineCore/vendor/std_module/CMakeFiles/std_module.dir/Release/yrm.msvc.std.compat.pcm -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions --dependent-lib=msvcrt -faddrsig -o CMakeFiles/EasyEditor.dir/Release/src/EditorMain.ixx.obj -x pcm CMakeFiles/EasyEditor.dir/Release/EditorMain.pcm
1.	&lt;eof&gt; parser at end of file
2.	E:\code\C++\EasyEngineDevDir\EasyEditor\src\EditorMain.ixx:69:12: LLVM IR generation of declaration 'main'
3.	E:\code\C++\EasyEngineDevDir\EasyEditor\src\EditorMain.ixx:69:12: Generating code for declaration 'main'
4.	E:\code\C++\EasyEngineDevDir\EasyEditor\EasyEngineCore\vendor\jni-bind\jni_bind_release.h:6722:18: Mangling declaration 'jni::metaprogramming::InvocableMap20&lt;jni::StaticRef&lt;ETLib&gt;, jni::JniT&lt;_jobject *, ETLib, jni::kDefaultClassLoader, jni::kDefaultJvm&gt;::static_v, jni::StaticRefHelper&lt;jni::StaticRef&lt;ETLib&gt;, ETLib, jni::kDefaultClassLoader, jni::kDefaultJvm&gt;, const std::tuple&lt;jni::Method&lt;std::tuple&lt;jni::Return&lt;void&gt;&gt;, std::tuple&lt;jni::Params&lt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;_jstring *&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;void&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;, _jstring *, jni::Array&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;, jni::Array&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; jni::Static&lt;std::tuple&lt;jni::Method&lt;std::tuple&lt;jni::Return&lt;void&gt;&gt;, std::tuple&lt;jni::Params&lt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;_jstring *&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;void&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;, _jstring *, jni::Array&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;, jni::Array&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;, std::tuple&lt;&gt;&gt;::*, &amp;jni::Static&lt;std::tuple&lt;jni::Method&lt;std::tuple&lt;jni::Return&lt;void&gt;&gt;, std::tuple&lt;jni::Params&lt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;_jstring *&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;void&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;, _jstring *, jni::Array&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;&gt;, jni::Method&lt;std::tuple&lt;jni::Return&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;, std::tuple&lt;jni::Params&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;, jni::Array&lt;jni::Class&lt;std::tuple&lt;jni::Extends&lt;jni::RootObject&gt;&gt;, std::tuple&lt;jni::Constructor&lt;&gt;&gt;, std::tuple&lt;jni::Static&lt;std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;, std::tuple&lt;&gt;, std::tuple&lt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;, std::tuple&lt;&gt;&gt;::methods_&gt;::Call'
Exception Code: 0xC0000005
 #<!-- -->0 0x00007ff73bc42e37 (C:\Program Files\LLVM\bin\clang++.exe+0x1652e37)
 #<!-- -->1 0x00007ff73d797c2d (C:\Program Files\LLVM\bin\clang++.exe+0x31a7c2d)
 #<!-- -->2 0x00007ff73bc40415 (C:\Program Files\LLVM\bin\clang++.exe+0x1650415)
 #<!-- -->3 0x00007ff73bc37701 (C:\Program Files\LLVM\bin\clang++.exe+0x1647701)
 #<!-- -->4 0x00007ff73bc4116c (C:\Program Files\LLVM\bin\clang++.exe+0x165116c)
 #<!-- -->5 0x00007ff73bf821d1 (C:\Program Files\LLVM\bin\clang++.exe+0x19921d1)
 #<!-- -->6 0x00007ff73bf818e4 (C:\Program Files\LLVM\bin\clang++.exe+0x19918e4)
 #<!-- -->7 0x00007ff73bb5b5f2 (C:\Program Files\LLVM\bin\clang++.exe+0x156b5f2)
 #<!-- -->8 0x00007ff73bd4034d (C:\Program Files\LLVM\bin\clang++.exe+0x175034d)
 #<!-- -->9 0x00007ff73bd3eebd (C:\Program Files\LLVM\bin\clang++.exe+0x174eebd)
#<!-- -->10 0x00007ff73bd3b59e (C:\Program Files\LLVM\bin\clang++.exe+0x174b59e)
#<!-- -->11 0x00007ff73bd2ff6d (C:\Program Files\LLVM\bin\clang++.exe+0x173ff6d)
#<!-- -->12 0x00007ff73bd2fbe8 (C:\Program Files\LLVM\bin\clang++.exe+0x173fbe8)
#<!-- -->13 0x00007ff73bd29320 (C:\Program Files\LLVM\bin\clang++.exe+0x1739320)
#<!-- -->14 0x00007ff73bd26ee1 (C:\Program Files\LLVM\bin\clang++.exe+0x1736ee1)
#<!-- -->15 0x00007ff73be82829 (C:\Program Files\LLVM\bin\clang++.exe+0x1892829)
#<!-- -->16 0x00007ff73be81b96 (C:\Program Files\LLVM\bin\clang++.exe+0x1891b96)
#<!-- -->17 0x00007ff73be818ce (C:\Program Files\LLVM\bin\clang++.exe+0x18918ce)
#<!-- -->18 0x00007ff73be802de (C:\Program Files\LLVM\bin\clang++.exe+0x18902de)
#<!-- -->19 0x00007ff73be7df26 (C:\Program Files\LLVM\bin\clang++.exe+0x188df26)
#<!-- -->20 0x00007ff73be7d4d5 (C:\Program Files\LLVM\bin\clang++.exe+0x188d4d5)
#<!-- -->21 0x00007ff73bb518fc (C:\Program Files\LLVM\bin\clang++.exe+0x15618fc)
#<!-- -->22 0x00007ff73bb4e68a (C:\Program Files\LLVM\bin\clang++.exe+0x155e68a)
#<!-- -->23 0x00007ff73c4f0d3c (C:\Program Files\LLVM\bin\clang++.exe+0x1f00d3c)
#<!-- -->24 0x00007ff73c4e59d6 (C:\Program Files\LLVM\bin\clang++.exe+0x1ef59d6)
#<!-- -->25 0x00007ff73dbc8194 (C:\Program Files\LLVM\bin\clang++.exe+0x35d8194)
#<!-- -->26 0x00007ff73ce70081 (C:\Program Files\LLVM\bin\clang++.exe+0x2880081)
#<!-- -->27 0x00007ff73c46c197 (C:\Program Files\LLVM\bin\clang++.exe+0x1e7c197)
#<!-- -->28 0x00007ff73a617ed3 (C:\Program Files\LLVM\bin\clang++.exe+0x27ed3)
#<!-- -->29 0x00007ff73a617b42 (C:\Program Files\LLVM\bin\clang++.exe+0x27b42)
#<!-- -->30 0x00007ff73a614f16 (C:\Program Files\LLVM\bin\clang++.exe+0x24f16)
#<!-- -->31 0x00007ff73a611a2d (C:\Program Files\LLVM\bin\clang++.exe+0x21a2d)
#<!-- -->32 0x00007ff73a61031e (C:\Program Files\LLVM\bin\clang++.exe+0x2031e)
#<!-- -->33 0x00007ff73aa594ba (C:\Program Files\LLVM\bin\clang++.exe+0x4694ba)
#<!-- -->34 0x00007ff73aa55ef3 (C:\Program Files\LLVM\bin\clang++.exe+0x465ef3)
#<!-- -->35 0x00007ff73c53c6a4 (C:\Program Files\LLVM\bin\clang++.exe+0x1f4c6a4)
#<!-- -->36 0x00007ffddf01e8d7 (C:\WINDOWS\System32\KERNEL32.DLL+0x2e8d7)
#<!-- -->37 0x00007ffde04314fc (C:\WINDOWS\SYSTEM32\ntdll.dll+0xb14fc)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 20.1.3
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
clang++: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: C:\Users\Yiran\AppData\Local\Temp\EditorMain-4a63f4.cppm
clang++: note: diagnostic msg: C:\Users\Yiran\AppData\Local\Temp\EditorMain-4a63f4.sh
clang++: note: diagnostic msg: 

********************
ninja: build stopped: subcommand failed.

The two files are:
EditorMain-4a63f4.cppm.txt
EditorMain-4a63f4.sh.txt

The relevant repository is https://github.com/google/jni-bind
My project repository: https://github.com/YiRanMushroom/EasyEditor
The STL I am using is MSVC STL. STL module is build by myself.

@EugeneZelenko EugeneZelenko removed the clang Clang issues not falling into any other category label May 14, 2025
@ChuanqiXu9
Copy link
Member

I was going the footage of me debugging the issue, and I found out that this problem seems to occur very randomly. At first, the definition and call site of the template is rather simple(not many symbols were exported), and it works fine. But when the definition interface unit becomes more complex, false compiler errors were reported(I am not sure if this is true since the error message is too complex and I don't know if I did anything wrong). And then I modified some of my code, and the compiler just crashes.

If you want, you can build clang yourself in debug version with assertion enabled, it can provide much more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:modules C++20 modules and Clang Header Modules crash Prefer [crash-on-valid] or [crash-on-invalid] needs-reduction Large reproducer that should be reduced into a simpler form
Projects
None yet
Development

No branches or pull requests

5 participants