Skip to content

[regression from 6.0.2] LLVM crash when building OpenCV's color_lab.cpp #27358

Description

@DoDoENT

Clang stack trace:

0.	Program arguments: /Users/dodo/Library/Caches/bazel/_bazel_dodo/d37a55ce2ed2abf9c807bae8c8d24add/sandbox/darwin-sandbox/2141/execroot/_main/external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/bin/clang -target wasm32-unknown-emscripten -mllvm -combiner-global-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 -fomit-frame-pointer -O0 -Wall -DCV_WASM_SIMD=1 -iquote external/opencv+ -iquote bazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+ -iquote external/zlib+ -iquote bazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/zlib+ -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/imgproc -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/core -Iexternal/zlib+/zlib/include -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/zlib+/zlib/include -Iexternal/opencv+/opencv2 -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/opencv2 -Iexternal/opencv+/private -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/private -Iexternal/opencv+/include -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/include -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/geometry -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/flann -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/imgproc_generated_simd_headers -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/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-31e8b2f4ad1d/bin/external/opencv+/_objs/imgproc/color_lab.d -c external/opencv+/modules/imgproc/src/color_lab.cpp -obazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_objs/imgproc/color_lab.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/color_lab.cpp'.
4.	Running pass 'WebAssembly Instruction Selection' on function '@_ZNK2cv12RGB2LuvfloatclEPKfPfi'
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                 0x0000000103f8f678 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  clang-23                 0x0000000103f8c5dc llvm::sys::RunSignalHandlers() + 164
2  clang-23                 0x0000000103f8e530 llvm::sys::CleanupOnSignal(unsigned long) + 272
3  clang-23                 0x0000000103ef22d4 CrashRecoverySignalHandler(int) (.llvm.5902021482545374146) + 148
4  libsystem_platform.dylib 0x000000018688b744 _sigtramp + 56
5  clang-23                 0x000000010312dae0 (anonymous namespace)::WebAssemblyDAGToDAGISel::CheckNodePredicate(llvm::SDValue, unsigned int) const (.llvm.13550879245612956240) + 168
6  clang-23                 0x000000010312dae0 (anonymous namespace)::WebAssemblyDAGToDAGISel::CheckNodePredicate(llvm::SDValue, unsigned int) const (.llvm.13550879245612956240) + 168
7  clang-23                 0x0000000105a70ca4 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int, unsigned char const*) + 5604
8  clang-23                 0x000000010312cefc (anonymous namespace)::WebAssemblyDAGToDAGISel::Select(llvm::SDNode*) (.llvm.13550879245612956240) + 1916
9  clang-23                 0x0000000105a6a300 llvm::SelectionDAGISel::DoInstructionSelection() + 316
10 clang-23                 0x0000000105a6980c llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 1900
11 clang-23                 0x0000000105a68748 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 6684
12 clang-23                 0x0000000105a66050 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 348
13 clang-23                 0x0000000105a63bd8 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) + 208
14 clang-23                 0x000000010351667c llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 500
15 clang-23                 0x0000000103a3c148 llvm::FPPassManager::runOnFunction(llvm::Function&) + 1300
16 clang-23                 0x0000000103a435d4 llvm::FPPassManager::runOnModule(llvm::Module&) + 52
17 clang-23                 0x0000000103a3cd80 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1896
18 clang-23                 0x000000010495aa00 (anonymous namespace)::EmitAssemblyHelper::TimeCodegenPasses(llvm::function_ref<void ()>) + 548
19 clang-23                 0x000000010494b9b0 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                 0x000000010477db00 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 3364
21 clang-23                 0x0000000105cbc794 clang::ParseAST(clang::Sema&, bool, bool) + 816
22 clang-23                 0x0000000104d528a8 clang::FrontendAction::Execute() + 44
23 clang-23                 0x0000000104cd1a20 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1504
24 clang-23                 0x0000000104e1bb7c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1216
25 clang-23                 0x0000000102d72088 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 2016
26 clang-23                 0x0000000102d70328 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) + 1188
27 clang-23                 0x0000000102d717e8 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                 0x0000000104b2b28c 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                 0x0000000103ef1fc8 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 144
30 clang-23                 0x0000000104b2a978 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                 0x0000000104ae6404 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const + 652
32 clang-23                 0x0000000104ae6a48 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__2::pair<int, clang::driver::Command const*>>&, bool) const + 1352
33 clang-23                 0x0000000104b0a580 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__2::pair<int, clang::driver::Command const*>>&) + 400
34 clang-23                 0x0000000102d6f138 clang_main(int, char**, llvm::ToolContext const&) + 5560
35 clang-23                 0x0000000102d7daf0 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/2141/execroot/_main/external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/bin
clang: note: diagnostic msg:
********************

Source code: https://github.com/opencv/opencv/blob/5.0.0/modules/imgproc/src/color_lab.cpp

Same source code, same compiler flags, but emscripten 6.0.2 can build without any issues.

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