Skip to content

[regression from 6.0.2] LLVM crash when compiling OpenCV with Relaxed SIMD support #27356

Description

@DoDoENT

Please include the following in your bug report:

Version of emscripten/emsdk:

Emscripten 6.0.3 (bazel module)
clang version 23.0.0git (https:/github.com/llvm/llvm-project 592953beff733a1e28f6c6e5e39f948fb035a329)

Failing command line in full:

  • provided in clang stack dump below

Full link command and output with -v appended:
Linker step never reached - crash was at compiling imgwarp.cpp from OpenCV 5.0.0

Clang stack dump:

Stack dump:
0.	Program arguments: /Users/dodo/Library/Caches/bazel/_bazel_dodo/d37a55ce2ed2abf9c807bae8c8d24add/sandbox/darwin-sandbox/1516/execroot/_main/external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/bin/clang -target wasm32-unknown-emscripten -mllvm -combiner-glo     bal-alias-analysis=false -mllvm -enable-emscripten-cxx-exceptions -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --sysroot=external/emsdk++emscripten_cache+emscripten_cache/cache/sysroot --sysroot=external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/emscripten/cache/sysroot -fdiagnostics-color -fexceptions -fno-strict-aliasing -funsigned-char -no-canonical-prefixes -std=gnu++17 -nostdinc -nostdinc++ -msimd128 -msimd128 -mrelaxed-simd -fomit-frame-pointer -O0 -Wall -DCV_WASM_SIMD=1 -iquote external/opencv+ -iquote bazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+ -iquote external/zlib+ -iquote bazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/zlib+ -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/_virtual_includes/imgproc -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/_virtual_includes/core -Iexternal/zlib+/zlib/include -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/zlib+/zlib/include -Iexternal/opencv+/opencv2 -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/opencv2 -Iexternal/opencv+/private -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/private -Iexternal/opencv+/include -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/include -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/_virtual_includes/geometry -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/_virtual_includes/flann -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/_virtual_includes/imgproc_generated_simd_headers -Ibazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/_virtual_includes/imgproc_generated_headers -g -fvisibility=hidden -fvisibility-inlines-hidden -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Os -Wno-deprecated-enum-float-conversion -Wno-deprecated-volatile -w -iwithsysroot/include/c++/v1 -iwithsysroot/include/compat -iwithsysroot/include -isystem external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/lib/clang/23/include -MD -MF bazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/_objs/imgproc/imgwarp.d -c external/opencv+/modules/imgproc/src/imgwarp.cpp -obazel-out/wasm-fastbuild-ST-90580fbd11dc/bin/external/opencv+/_objs/imgproc/imgwarp.o -Wno-builtin-macro-redefined -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\"
1.	<eof> parser at end of file
2.	Code generation
3.	Running pass 'Function Pass Manager' on module 'external/opencv+/modules/imgproc/src/imgwarp.cpp'.
4.	Running pass 'WebAssembly Instruction Selection' on function '@_ZN2cv3hal26warpPerspectiveBlocklineNNEPKdPsdddi'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  clang-23                 0x0000000105c93678 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  clang-23                 0x0000000105c905dc llvm::sys::RunSignalHandlers() + 164
2  clang-23                 0x0000000105c92530 llvm::sys::CleanupOnSignal(unsigned long) + 272
3  clang-23                 0x0000000105bf62d4 CrashRecoverySignalHandler(int) (.llvm.5902021482545374146) + 148
4  libsystem_platform.dylib 0x000000018688b744 _sigtramp + 56
5  clang-23                 0x0000000104e31ae0 (anonymous namespace)::WebAssemblyDAGToDAGISel::CheckNodePredicate(llvm::SDValue, unsigned int) const (.llvm.13550879245612956240) + 168
6  clang-23                 0x0000000104e31ae0 (anonymous namespace)::WebAssemblyDAGToDAGISel::CheckNodePredicate(llvm::SDValue, unsigned int) const (.llvm.13550879245612956240) + 168
7  clang-23                 0x0000000107774ca4 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int, unsigned char const*) + 5604
8  clang-23                 0x0000000104e30efc (anonymous namespace)::WebAssemblyDAGToDAGISel::Select(llvm::SDNode*) (.llvm.13550879245612956240) + 1916
9  clang-23                 0x000000010776e300 llvm::SelectionDAGISel::DoInstructionSelection() + 316
10 clang-23                 0x000000010776d80c llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 1900
11 clang-23                 0x000000010776c748 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 6684
12 clang-23                 0x000000010776a050 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 348
13 clang-23                 0x0000000107767bd8 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) + 208
14 clang-23                 0x000000010521a67c llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 500
15 clang-23                 0x0000000105740148 llvm::FPPassManager::runOnFunction(llvm::Function&) + 1300
16 clang-23                 0x00000001057475d4 llvm::FPPassManager::runOnModule(llvm::Module&) + 52
17 clang-23                 0x0000000105740d80 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1896
18 clang-23                 0x000000010665ea00 (anonymous namespace)::EmitAssemblyHelper::TimeCodegenPasses(llvm::function_ref<void ()>) + 548
19 clang-23                 0x000000010664f9b0 clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__2::unique_ptr<llvm::raw_pwrite_stream, std::__2::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) + 6512
20 clang-23                 0x0000000106481b00 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 3364
21 clang-23                 0x00000001079c0794 clang::ParseAST(clang::Sema&, bool, bool) + 816
22 clang-23                 0x0000000106a568a8 clang::FrontendAction::Execute() + 44
23 clang-23                 0x00000001069d5a20 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1504
24 clang-23                 0x0000000106b1fb7c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1216
25 clang-23                 0x0000000104a76088 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 2016
26 clang-23                 0x0000000104a74328 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) + 1188
27 clang-23                 0x0000000104a757e8 int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) + 60
28 clang-23                 0x000000010682f28c void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__2::optional<llvm::StringRef>>, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char>>*, bool*) const::$_0>(long) + 32
29 clang-23                 0x0000000105bf5fc8 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 144
30 clang-23                 0x000000010682e978 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__2::optional<llvm::StringRef>>, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char>>*, bool*) const + 368
31 clang-23                 0x00000001067ea404 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const + 652
32 clang-23                 0x00000001067eaa48 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__2::pair<int, clang::driver::Command const*>>&, bool) const + 1352
33 clang-23                 0x000000010680e580 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__2::pair<int, clang::driver::Command const*>>&) + 400
34 clang-23                 0x0000000104a73138 clang_main(int, char**, llvm::ToolContext const&) + 5560
35 clang-23                 0x0000000104a81af0 main + 100
36 dyld                     0x00000001864c3e00 start + 6992
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 23.0.0git (https:/github.com/llvm/llvm-project 592953beff733a1e28f6c6e5e39f948fb035a329)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /Users/dodo/Library/Caches/bazel/_bazel_dodo/d37a55ce2ed2abf9c807bae8c8d24add/sandbox/darwin-sandbox/1516/execroot/_main/external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/bin
clang: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
clang: note: diagnostic msg: /var/folders/w1/67dfjvfs6sd66rd33brg4d5r0000gn/T/imgwarp-363c9d.cpp
clang: note: diagnostic msg: /var/folders/w1/67dfjvfs6sd66rd33brg4d5r0000gn/T/imgwarp-363c9d.sh
clang: note: diagnostic msg: Crash backtrace is located in
clang: note: diagnostic msg: /Users/dodo/Library/Logs/DiagnosticReports/clang_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
clang: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
clang: note: diagnostic msg:

********************

reproducer.tar.gz

Offending source file (for reference): https://github.com/opencv/opencv/blob/5.0.0/modules/imgproc/src/imgwarp.cpp

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions