This is currently causing emscripten CI to fail. I'm working on bisect now.
$ ./tests/runner browser.test_cocos2d_hello --browser=0
...
clang: /usr/local/google/home/sbc/dev/wasm/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:2233: llvm::Instruction *llvm::InstCombinerImpl::foldICmpShrConstant(llvm::ICmpInst &, llvm::BinaryOperator *, const llvm::APInt &): Assertion `ShiftValC->ugt(C) && "Expected simplify of compare"' failed.
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: /usr/local/google/home/sbc/dev/wasm/llvm-build/bin/clang -target wasm32-unknown-emscripten -DEMSCRIPTEN -D__EMSCRIPTEN_major__=3 -D__EMSCRIPTEN_minor__=1 -D__EMSCRIPTEN_tiny__=15 -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -g3 -c -Wno-overloaded-virtual -Wno-deprecated-declarations -D__CC_PLATFORM_FILEUTILS_CPP__ -DCC_ENABLE_CHIPMUNK_INTEGRATION -DCC_KEYBOARD_SUPPORT -DGL_ES=1 -DNDEBUG -DCP_USE_DOUBLES=0 -O2 -w -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/CocosDenshion/include -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/AssetsManager -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/CCArmature -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/CCBReader -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/GUI/CCControlExtension -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/GUI/CCEditBox -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/GUI/CCScrollView -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/network -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/Components -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/LocalStorage -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/physics_nodes -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/spine -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/external -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/external/chipmunk/include/chipmunk -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/cocoa -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/include -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/kazmath/include -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/emscripten -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/linux/libfreetype2 -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/common/etc -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/emscripten/libtiff/include -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/emscripten/libjpeg -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/emscripten/libwebp /usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/common/libwebp-0.6.0/src/dsp/lossless.c -o /usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/common/libwebp-0.6.0/src/dsp/lossless.c.o
1. <eof> parser at end of file
2. Optimizer
#0 0x00007fe3047e1093 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libLLVMSupport.so.15git+0x1c8093)
#1 0x00007fe3047deebe llvm::sys::RunSignalHandlers() (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libLLVMSupport.so.15git+0x1c5ebe)
#2 0x00007fe3047e0413 llvm::sys::CleanupOnSignal(unsigned long) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libLLVMSupport.so.15git+0x1c7413)
#3 0x00007fe3046f2213 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
#4 0x00007fe3046f23ce CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#5 0x00007fe308761200 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12200)
#6 0x00007fe3040f58a1 raise ./signal/../sysdeps/unix/sysv/linux/raise.c:50:1
#7 0x00007fe3040df546 abort ./stdlib/abort.c:81:7
#8 0x00007fe3040df42f get_sysdep_segment_value ./intl/loadmsgcat.c:509:8
#9 0x00007fe3040df42f _nl_load_domain ./intl/loadmsgcat.c:970:34
#10 0x00007fe3040ee222 (/lib/x86_64-linux-gnu/libc.so.6+0x31222)
#11 0x00007fe306177b81 llvm::InstCombinerImpl::foldICmpShrConstant(llvm::ICmpInst&, llvm::BinaryOperator*, llvm::APInt const&) crtstuff.c:0:0
#12 0x00007fe30617cca5 llvm::InstCombinerImpl::foldICmpBinOpWithConstant(llvm::ICmpInst&, llvm::BinaryOperator*, llvm::APInt const&) crtstuff.c:0:0
#13 0x00007fe30617ca6f llvm::InstCombinerImpl::foldICmpInstWithConstant(llvm::ICmpInst&) crtstuff.c:0:0
#14 0x00007fe306187adf llvm::InstCombinerImpl::visitICmpInst(llvm::ICmpInst&) crtstuff.c:0:0
#15 0x00007fe3060ec68d llvm::InstCombinerImpl::run() crtstuff.c:0:0
#16 0x00007fe3060eef25 combineInstructionsOverFunction(llvm::Function&, llvm::InstructionWorklist&, llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*) InstructionCombining.cpp:0:0
#17 0x00007fe3060ee6a2 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libLLVMInstCombine.so.15git+0x396a2)
#18 0x00007fe3030adc6d llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) crtstuff.c:0:0
#19 0x00007fe305379271 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libLLVMCore.so.15git+0x298271)
#20 0x00007fe307fd6b5d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) crtstuff.c:0:0
#21 0x00007fe30537e13b llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libLLVMCore.so.15git+0x29d13b)
#22 0x00007fe307fd8b9d llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) crtstuff.c:0:0
#23 0x00007fe305377cd4 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libLLVMCore.so.15git+0x296cd4)
#24 0x00007fe307fd0446 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&) BackendUtil.cpp:0:0
#25 0x00007fe307fc6cd8 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libclangCodeGen.so.15git+0xcccd8)
#26 0x00007fe3083896cf clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) crtstuff.c:0:0
#27 0x00007fe301f3a104 clang::ParseAST(clang::Sema&, bool, bool) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/../lib/libclangParse.so.15git+0x36104)
#28 0x00007fe306dddae0 clang::FrontendAction::Execute() (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libclangFrontend.so.15git+0x144ae0)
#29 0x00007fe306d4fb7f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libclangFrontend.so.15git+0xb6b7f)
#30 0x00007fe30874b07f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libclangFrontendTool.so.15git+0x407f)
#31 0x0000557c3a1fb918 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/clang+0x13918)
#32 0x0000557c3a1f978f ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#33 0x00007fe306a77d82 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_1>(long) Job.cpp:0:0
#34 0x00007fe3046f2127 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libLLVMSupport.so.15git+0xd9127)
#35 0x00007fe306a7776f clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libclangDriver.so.15git+0xc076f)
#36 0x00007fe306a3796e clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libclangDriver.so.15git+0x8096e)
#37 0x00007fe306a37c1e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libclangDriver.so.15git+0x80c1e)
#38 0x00007fe306a56ff0 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/../lib/libclangDriver.so.15git+0x9fff0)
#39 0x0000557c3a1f8e49 clang_main(int, char**) (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/clang+0x10e49)
#40 0x00007fe3040e07fd __libc_start_main ./csu/../csu/libc-start.c:332:16
#41 0x0000557c3a1f5f9a _start (/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/clang+0xdf9a)
clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 15.0.0 (https://github.com/llvm/llvm-project.git 8b7f5ee5f05a0972802055204a423009d3398a0d)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /usr/local/google/home/sbc/dev/wasm/llvm-build/bin
clang-15: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-15: note: diagnostic msg: /tmp/lossless-2307a8.c
clang-15: note: diagnostic msg: /tmp/lossless-2307a8.sh
clang-15: note: diagnostic msg:
********************
emcc: error: '/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/clang -target wasm32-unknown-emscripten -DEMSCRIPTEN -D__EMSCRIPTEN_major__=3 -D__EMSCRIPTEN_minor__=1 -D__EMSCRIPTEN_tiny__=15 -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -g3 -c -Wno-overloaded-virtual -Wno-deprecated-declarations -D__CC_PLATFORM_FILEUTILS_CPP__ -DCC_ENABLE_CHIPMUNK_INTEGRATION -DCC_KEYBOARD_SUPPORT -DGL_ES=1 -DNDEBUG -DCP_USE_DOUBLES=0 -O2 -w -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/CocosDenshion/include -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/AssetsManager -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/CCArmature -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/CCBReader -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/GUI/CCControlExtension -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/GUI/CCEditBox -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/GUI/CCScrollView -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/network -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/Components -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/LocalStorage -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/physics_nodes -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/extensions/spine -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/external -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/external/chipmunk/include/chipmunk -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/cocoa -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/include -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/kazmath/include -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/emscripten -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/linux/libfreetype2 -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/common/etc -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/emscripten/libtiff/include -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/emscripten/libjpeg -I/usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/emscripten/libwebp /usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/common/libwebp-0.6.0/src/dsp/lossless.c -o /usr/local/google/home/sbc/dev/wasm/emscripten/cache/ports/cocos2d/Cocos2d-version_3_3/cocos2dx/platform/third_party/common/libwebp-0.6.0/src/dsp/lossless.c.o' failed (returned 1)
This is currently causing emscripten CI to fail. I'm working on bisect now.
The following command is used to repro within emscripten: