Skip to content
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

[WebAssembly] Crash in WebAssemblyCFGStackify with optimization (bad machine code) #126916

Open
stevenwdv opened this issue Feb 12, 2025 · 1 comment
Assignees
Labels
backend:WebAssembly crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@stevenwdv
Copy link

stevenwdv commented Feb 12, 2025

Clang crashes while optimizing some WebAssembly machine code (both 64-bit and 32-bit). This didn't happen when compiling the same code without optimizations, also not when enabling --verify-machineinstrs.

When using --verify-machineinstrs, I get Bad machine code: Multiple connected components in live interval.
Here's the log (I'm using a Debug build of Clang to get better stack traces etc.):

Log
$ EM_LLVM_ROOT=/home/swdv/llvm-project/build/bin/  /home/swdv/emsdk/upstream/emscripten/em++ -DBOOST_DLL_USE_STD_FS -DHTTPSERVER_WITH_TLS -I/home/swdv/pep/core2/cpp -I/home/swdv/pep/core2/build/wasm/Release/cpp -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -sMEMORY64=1 -matomics -mbulk-memory -mexception-handling -fwasm-exceptions -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_PROCESS_USE_STD_FS -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -DBUILD_PROJECT_PATH=\"\" -DBUILD_REF=\"\" -DBUILD_REV=\"\" -DBUILD_MAJOR_VERSION=1 -DBUILD_MINOR_VERSION=2 -DBUILD_PIPELINE_ID= -DBUILD_JOB_ID= -DBUILD_TARGET=\"Emscripten\" -O3 -DNDEBUG -std=c++20 -fvisibility=hidden -fcolor-diagnostics -pthread -MD -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -MF cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -o cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -c /home/swdv/pep/core
2/cpp/pep/async/RxTimeout.cpp -v -mllvm --verify-machineinstrs -mllvm --debug-only=wasm-cfg-stackify
 "/home/swdv/llvm-project/build/bin/clang++" -target wasm64-unknown-emscripten -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr --sysroot=/home/swdv/emsdk/upstream/emscripten/cache/sysroot -D__EMSCRIPTEN_SHARED_MEMORY__=1 -DEMSCRIPTEN -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -DBOOST_DLL_USE_STD_FS -DHTTPSERVER_WITH_TLS -I/home/swdv/pep/core2/cpp -I/home/swdv/pep/core2/build/wasm/Release/cpp -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -matomics -mbulk-memory -mexception-handling -fwasm-exceptions -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_PROCESS_USE_STD_FS -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -DBUILD_PROJECT_PATH="" -DBUILD_REF="" -DBUILD_REV="" -DBUILD_MAJOR_VERSION=1 -DBUILD_MINOR_VERSION=2 -DBUILD_PIPELINE_ID= -DBUILD_JOB_ID= -DBUILD_TARGET="Emscripten" -O3 -DNDEBUG -std=c++20 -fvisibility=hidden -fcolor-diagnostics -pthread -MD -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -MF cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -ocpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -c /home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp -v -mllvm --verify-machineinstrs -mllvm --debug-only=wasm-cfg-stackify
clang version 21.0.0git (https://github.com/llvm/llvm-project 4055be55b8814b31256ca3c8840bc73bbe5e3d0f)
Target: wasm64-unknown-emscripten
Thread model: posix
InstalledDir: /home/swdv/llvm-project/build/bin
Build config: +unoptimized, +assertions
 (in-process)
 "/home/swdv/llvm-project/build/bin/clang-21" -cc1 -triple wasm64-unknown-emscripten -emit-obj -disable-free -clear-ast-before-backend -main-file-name RxTimeout.cpp -mrelocation-model static -mframe-pointer=none -ffp-contract=on -fno-rounding-math -mconstructor-aliases -target-feature +atomics -target-feature +bulk-memory -target-feature +mutable-globals -target-feature +sign-ext -target-feature +exception-handling -target-feature +multivalue -target-feature +reference-types -exception-model=wasm -mllvm -wasm-enable-eh -target-cpu generic -target-feature +atomics -target-feature +bulk-memory -target-feature +exception-handling -debugger-tuning=gdb -fdebug-compilation-dir=/home/swdv/pep/core2/build/wasm/Debug -v -fcoverage-compilation-dir=/home/swdv/pep/core2/build/wasm/Debug -resource-dir /home/swdv/llvm-project/build/lib/clang/21 -dependency-file cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -sys-header-deps -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -D __EMSCRIPTEN_SHARED_MEMORY__=1 -D EMSCRIPTEN -D BOOST_DLL_USE_STD_FS -D HTTPSERVER_WITH_TLS -I /home/swdv/pep/core2/cpp -I /home/swdv/pep/core2/build/wasm/Release/cpp -D BOOST_LOG_USE_NATIVE_SYSLOG -D BOOST_PROCESS_USE_STD_FS -D "BUILD_PROJECT_PATH=\"\"" -D "BUILD_REF=\"\"" -D "BUILD_REV=\"\"" -D BUILD_MAJOR_VERSION=1 -D BUILD_MINOR_VERSION=2 -D BUILD_PIPELINE_ID= -D BUILD_JOB_ID= -D "BUILD_TARGET=\"Emscripten\"" -D NDEBUG -isysroot /home/swdv/emsdk/upstream/emscripten/cache/sysroot -internal-isystem /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten/c++/v1 -internal-isystem /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1 -internal-isystem /home/swdv/llvm-project/build/lib/clang/21/include -internal-isystem /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten -internal-isystem /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include -O3 -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -std=c++20 -fdeprecated-macro -ferror-limit 19 -fvisibility=hidden -pthread -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -exception-model=wasm -fcolor-diagnostics -vectorize-loops -vectorize-slp -iwithsysroot/include/fakesdl -iwithsysroot/include/compat -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr -mllvm --verify-machineinstrs -mllvm --debug-only=wasm-cfg-stackify -o cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -x c++ /home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp
clang -cc1 version 21.0.0git based upon LLVM 21.0.0git default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten/c++/v1"
ignoring nonexistent directory "/home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten"
#include "..." search starts here:
#include <...> search starts here:
 /home/swdv/pep/core2/cpp
 /home/swdv/pep/core2/build/wasm/Release/cpp
 /home/swdv/pep/core2/cpp/ext
 /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include
 /home/swdv/.conan2/p/b/opensd5d75de921105/p/include
 /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include
 /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src
 /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl
 /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/compat
 /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1
 /home/swdv/llvm-project/build/lib/clang/21/include
 /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include
End of search list.
********** CFG Stackifying **********
********** Function: _ZN3pep11RxAsioTimerERKNSt3__26chrono8durationIxNS0_5ratioILx1ELx1000EEEEERN5boost4asio10io_contextEN5rxcpp21observe_on_one_workerE
- Call unwind mismatch: MBB = if.then.i.i14.i.i.i.i.i.i
Range begin = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %187:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %187:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup

- Call unwind mismatch: MBB = if.then.i.i.i.i.i.i.i.i55
Range begin = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %166:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %166:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup16

- Call unwind mismatch: MBB = if.then.i.i.i.i8.i.i.i.i.i
Range begin = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %155:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %155:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup21

- Call unwind mismatch: MBB = if.then.i.i.i.i.i.i16.i.i.i
Range begin = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %7:i64, %148:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %7:i64, %148:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup21

- Call unwind mismatch: MBB = if.then.i.i.i.i.i.i.i
Range begin = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %128:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %128:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup26

- Call unwind mismatch: MBB = if.then.i.i.i.i.i18.i.i.i.i
Range begin = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %121:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %121:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup26

- Call unwind mismatch: MBB = if.end8.sink.split.i.i.i.i.i.i.i
Range begin = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %7:i64, %114:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %7:i64, %114:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup26

- Call unwind mismatch: MBB = if.then.i.i14.i.i.i.i.i.i.i
Range begin = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %89:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, <mcsymbol __indirect_function_table>, %0:i64, %89:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup.i

********** CFG Stackifying **********
********** Function: _ZN5rxcpp10observableIN3pep8FakeVoidENS_9operators6detail13lift_operatorIS2_NS4_12subscribe_onIS2_NS0_IS2_NS_18dynamic_observableIS2_EEEENS_21observe_on_one_workerEEENS4_10observe_onIS2_SA_EEEEED2Ev
********** CFG Stackifying **********
********** Function: _ZN5rxcpp10observableIN3pep8FakeVoidENS_9operators6detail12subscribe_onIS2_NS0_IS2_NS_18dynamic_observableIS2_EEEENS_21observe_on_one_workerEEEED2Ev
********** CFG Stackifying **********
********** Function: _ZN5rxcpp21observe_on_one_workerD2Ev
********** CFG Stackifying **********
********** Function: _ZN5rxcpp10observableIN3pep8FakeVoidENS_18dynamic_observableIS2_EEED2Ev
********** CFG Stackifying **********
********** Function: _ZZN3pep11RxAsioTimerERKNSt3__26chrono8durationIxNS0_5ratioILx1ELx1000EEEEERN5boost4asio10io_contextEN5rxcpp21observe_on_one_workerEEN3$_0D2Ev
********** CFG Stackifying **********
********** Function: _ZNSt3__210shared_ptrIN5boost4asio20basic_waitable_timerINS_6chrono12steady_clockENS2_11wait_traitsIS5_EENS2_15any_io_executorEEEED2B8ne190106Ev
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.4
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.5
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.7
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.9
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.11
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.13
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.15
********** CFG Stackifying **********
********** Function: __cxx_global_array_dtor.16
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.17
********** CFG Stackifying **********
********** Function: _ZNK5boost6system6detail21system_error_category4nameEv
********** CFG Stackifying **********
********** Function: _ZNK5boost6system6detail21system_error_category23default_error_conditionEi
********** CFG Stackifying **********
********** Function: _ZNK5boost6system14error_category10equivalentEiRKNS0_15error_conditionE
********** CFG Stackifying **********
********** Function: _ZNK5boost6system14error_category10equivalentERKNS0_10error_codeEi
********** CFG Stackifying **********
********** Function: _ZNK5boost6system6detail21system_error_category7messageEi

# After WebAssembly Register Stackify
********** INTERVALS **********
ARGUMENTS [0B,48r:0)[64r,64d:5)[72r,72d:25)[88r,88d:24)[112r,112d:23)[136r,136d:10)[160r,160d:22)[208r,208d:9)[248r,248d:18)[272r,272d:6)[296r,296d:17)[320r,320d:3)[344r,344d:16)[360r,360d:15)[376r,376d:8)[392r,392d:14)[408r,408d:13)[432r,432d:12)[448r,448d:4)[496r,496d:2)[512r,512d:1)[528r,528d:7)[544r,544d:19)[568r,568d:21)[592r,592d:20)[624r,624d:11) 0@0B-phi 1@512r 2@496r 3@320r 4@448r 5@64r 6@272r 7@528r 8@376r 9@208r 10@136r 11@624r 12@432r 13@408r 14@392r 15@360r 16@344r 17@296r 18@248r 19@544r 20@592r 21@568r 22@160r 23@112r 24@88r 25@72r
%0 [208r,288B:0)[336B,376r:0) 0@208r  weight:0.000000e+00
%3 [48r,128B:0)[176B,208r:0) 0@48r  weight:0.000000e+00
%6 [16r,136r:0)[176B,288B:0)[336B,360r:0) 0@16r  weight:0.000000e+00
%7 [72r,88r:0) 0@72r  weight:0.000000e+00
%8 [88r,112r:0) 0@88r  weight:0.000000e+00
%9 [568r,592r:0) 0@568r  weight:0.000000e+00
%11 [248r,272r:0) 0@248r  weight:0.000000e+00
%12 [344r,360r:0) 0@344r  weight:0.000000e+00
%13 [364r,392r:0) 0@364r  weight:0.000000e+00
%14 [392r,432r:0) 0@392r  weight:0.000000e+00
%15 [408r,432r:0) 0@408r  weight:0.000000e+00
%16 [136r,160r:0) 0@136r  weight:0.000000e+00
%17 [32r,288B:1)[336B,376r:1)[380r,448r:0)[560B,624r:1) 0@380r 1@32r  weight:0.000000e+00
%18 [64r,128B:0)[176B,240B:0)[464B,512r:0) 0@64r  weight:0.000000e+00
%19 [296r,320r:0) 0@296r  weight:0.000000e+00
%20 [380r,392r:0) 0@380r  weight:0.000000e+00
%21 [376r,380r:0) 0@376r  weight:0.000000e+00
%22 [364r,376r:0) 0@364r  weight:0.000000e+00
%23 [360r,364r:0) 0@360r  weight:0.000000e+00
RegMasks:
********** MACHINEINSTRS **********
# Machine code for function _ZNK5boost6system6detail21system_error_category7messageEiPcm: NoPHIs, TracksLiveness, TiedOpsRewritten
Jump Tables:
%jump-table.0:

Function Live Ins: $arguments, $value_stack

0B      bb.0.entry:
          successors: %bb.2(0x2aaaaaaa), %bb.1(0x55555556); %bb.2(33.33%), %bb.1(66.67%)
          liveins: $arguments, $value_stack
16B       %6:i64 = ARGUMENT_i64 3, implicit $arguments
32B       %17:i64 = ARGUMENT_i64 2, implicit $arguments
48B       %3:i32 = ARGUMENT_i32 1, implicit $arguments
64B       %18:i64 = GLOBAL_GET_I64 &__stack_pointer, implicit-def $arguments
72B       %7:i64 = CONST_I64 1, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
88B       %8:i32 = GT_U_I64 %6:i64, %7:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
112B      BR_IF %bb.2, %8:i32, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack

128B    bb.1.entry:
        ; predecessors: %bb.0
          successors: %bb.8(0x40000000), %bb.7(0x40000000); %bb.8(50.00%), %bb.7(50.00%)
          liveins: $value_stack
136B      %16:i32 = I32_WRAP_I64 %6:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
160B      BR_TABLE_I32 %16:i32, %bb.8, %bb.7, %bb.8, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack

176B    bb.2.if.end3.i.i:
        ; predecessors: %bb.0
          successors: %bb.3(0x7ffff800), %bb.6(0x00000800); %bb.3(100.00%), %bb.6(0.00%)
          liveins: $value_stack
192B      EH_LABEL <mcsymbol >
208B      %0:i64 = CALL @strerror, %3:i32, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64
224B      EH_LABEL <mcsymbol >

240B    bb.3.invoke.cont.i.i:
        ; predecessors: %bb.2
          successors: %bb.4(0x30000000), %bb.5(0x50000000); %bb.4(37.50%), %bb.5(62.50%)
          liveins: $value_stack
248B      %11:i32 = EQZ_I64 %0:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
272B      BR_UNLESS %bb.5, %11:i32, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack

288B    bb.4:
        ; predecessors: %bb.3
          liveins: $value_stack
296B      %19:i64 = CONST_I64 @.str.20, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
320B      RETURN %19:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack

336B    bb.5.if.end6.i.i:
        ; predecessors: %bb.3
          liveins: $value_stack
344B      %12:i64 = CONST_I64 -1, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
360B      %23:i64 = ADD_I64 %6:i64, %12:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
364B      %22:i64, %13:i64 = TEE_I64 %23:i64, implicit-def $arguments, implicit-def $value_stack, implicit $value_stack
376B      %21:i64 = CALL @strncpy, %17:i64, %0:i64, %22:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
380B      %20:i64, %17:i64 = TEE_I64 %21:i64, implicit-def $arguments, implicit-def $value_stack, implicit $value_stack
392B      %14:i64 = nuw ADD_I64 %20:i64, %13:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
408B      %15:i32 = CONST_I32 0, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
432B      STORE8_I32_A64 0, 0, %14:i64, %15:i32, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack :: (store (s8) into %ir.arrayidx9.i.i, !tbaa !148)
448B      RETURN %17:i64, implicit-def dead $arguments

464B    bb.6.terminate.i.i (landing-pad):
        ; predecessors: %bb.2
          liveins: $value_stack
480B      EH_LABEL <mcsymbol >
496B      CATCH_ALL_LEGACY implicit-def $arguments
512B      GLOBAL_SET_I64 &__stack_pointer, %18:i64, implicit-def $arguments
528B      CALL @_ZSt9terminatev, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64
544B      UNREACHABLE implicit-def dead $arguments

560B    bb.7.if.then2.i.i:
        ; predecessors: %bb.1
          successors: %bb.8(0x80000000); %bb.8(100.00%)
          liveins: $value_stack
568B      %9:i32 = CONST_I32 0, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
592B      STORE8_I32_A64 0, 0, %17:i64, %9:i32, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack :: (store (s8) into %ir.buffer, !tbaa !148)

608B    bb.8._ZN5boost6system6detail29system_error_category_messageEiPcm.exit:
        ; predecessors: %bb.1, %bb.7
          liveins: $value_stack
624B      RETURN %17:i64, implicit-def dead $arguments

# End machine code for function _ZNK5boost6system6detail21system_error_category7messageEiPcm.

*** Bad machine code: Multiple connected components in live interval ***
- function:    _ZNK5boost6system6detail21system_error_category7messageEiPcm
- interval:    %17 [32r,288B:1)[336B,376r:1)[380r,448r:0)[560B,624r:1) 0@380r 1@32r  weight:0.000000e+00
0: valnos 0
1: valnos 1
fatal error: error in backend: Found 1 machine code errors.
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: /home/swdv/llvm-project/build/bin/clang++ -target wasm64-unknown-emscripten -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr --sysroot=/home/swdv/emsdk/upstream/emscripten/cache/sysroot -D__EMSCRIPTEN_SHARED_MEMORY__=1 -DEMSCRIPTEN -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -DBOOST_DLL_USE_STD_FS -DHTTPSERVER_WITH_TLS -I/home/swdv/pep/core2/cpp -I/home/swdv/pep/core2/build/wasm/Release/cpp -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -matomics -mbulk-memory -mexception-handling -fwasm-exceptions -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_PROCESS_USE_STD_FS -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -DBUILD_PROJECT_PATH=\"\" -DBUILD_REF=\"\" -DBUILD_REV=\"\" -DBUILD_MAJOR_VERSION=1 -DBUILD_MINOR_VERSION=2 -DBUILD_PIPELINE_ID= -DBUILD_JOB_ID= -DBUILD_TARGET=\"Emscripten\" -O3 -DNDEBUG -std=c++20 -fvisibility=hidden -fcolor-diagnostics -pthread -MD -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -MF cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -ocpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -c /home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp -v -mllvm --verify-machineinstrs -mllvm --debug-only=wasm-cfg-stackify
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp'.
4.      Running pass 'Verify generated machine code' on function '@_ZNK5boost6system6detail21system_error_category7messageEiPcm'
 #0 0x0000746c1ebef3fd llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:799:11
 #1 0x0000746c1ebef8bb PrintStackTraceSignalHandler(void*) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:875:1
 #2 0x0000746c1ebeda5f llvm::sys::RunSignalHandlers() /home/swdv/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x0000746c1ebeed09 llvm::sys::CleanupOnSignal(unsigned long) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:370:1
 #4 0x0000746c1ea9cc32 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:0:7
 #5 0x0000746c1ea9cb67 llvm::CrashRecoveryContext::HandleExit(int) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:446:3
 #6 0x0000746c1ebe7f7f llvm::sys::Process::Exit(int, bool) /home/swdv/llvm-project/llvm/lib/Support/Process.cpp:114:7
 #7 0x00005c4fa155eed6 (/home/swdv/llvm-project/build/bin/clang+++0x48ed6)
 #8 0x0000746c1eac08c5 llvm::report_fatal_error(llvm::Twine const&, bool) /home/swdv/llvm-project/llvm/lib/Support/ErrorHandling.cpp:105:5
 #9 0x0000746c26914e83 (anonymous namespace)::MachineVerifier::ReportedErrors::~ReportedErrors() /home/swdv/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:262:7
#10 0x0000746c269142c0 (anonymous namespace)::MachineVerifier::~MachineVerifier() /home/swdv/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:102:8
#11 0x0000746c269152bb (anonymous namespace)::MachineVerifierLegacyPass::runOnMachineFunction(llvm::MachineFunction&) /home/swdv/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:391:5
#12 0x0000746c26786d21 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/swdv/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:94:8
#13 0x0000746c1f65d5af llvm::FPPassManager::runOnFunction(llvm::Function&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1406:23
#14 0x0000746c1f661ceb llvm::FPPassManager::runOnModule(llvm::Module&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1452:16
#15 0x0000746c1f65de29 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1521:23
#16 0x0000746c1f65d9d6 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:16
#17 0x0000746c1f661f91 llvm::legacy::PassManager::run(llvm::Module&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1648:3
#18 0x0000746c274dbfc0 (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(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>>&) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1237:19
#19 0x0000746c274d5b2f (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1263:7
#20 0x0000746c274d50af clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1425:3
#21 0x0000746c27e37e68 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/swdv/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:315:3
#22 0x0000746c19aeee4b clang::ParseAST(clang::Sema&, bool, bool) /home/swdv/llvm-project/clang/lib/Parse/ParseAST.cpp:191:12
#23 0x0000746c23b56c57 clang::ASTFrontendAction::ExecuteAction() /home/swdv/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1188:1
#24 0x0000746c27e3ba1d clang::CodeGenAction::ExecuteAction() /home/swdv/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1102:5
#25 0x0000746c23b566b6 clang::FrontendAction::Execute() /home/swdv/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1076:7
#26 0x0000746c23a55281 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/swdv/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1056:23
#27 0x0000746c28575afa clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/swdv/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:265:8
#28 0x00005c4fa155e21e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/swdv/llvm-project/clang/tools/driver/cc1_main.cpp:290:13
#29 0x00005c4fa15512be ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /home/swdv/llvm-project/clang/tools/driver/driver.cpp:218:5
#30 0x00005c4fa1551d30 clang_main(int, char**, llvm::ToolContext const&)::$_0::operator()(llvm::SmallVectorImpl<char const*>&) const /home/swdv/llvm-project/clang/tools/driver/driver.cpp:360:9
#31 0x00005c4fa1551cfd int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#32 0x0000746c23228b01 llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(llvm::SmallVectorImpl<char const*>&) const /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#33 0x0000746c23222ac8 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0::operator()() const /home/swdv/llvm-project/clang/lib/Driver/Job.cpp:437:34
#34 0x0000746c23222a95 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0>(long) /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#35 0x0000746c1ea89959 llvm::function_ref<void ()>::operator()() const /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#36 0x0000746c1ea9ca4f llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:427:3
#37 0x0000746c23222483 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /home/swdv/llvm-project/clang/lib/Driver/Job.cpp:437:7
#38 0x0000746c2319ffd2 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /home/swdv/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
#39 0x0000746c231a01ac clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /home/swdv/llvm-project/clang/lib/Driver/Compilation.cpp:251:13
#40 0x0000746c231c23b1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /home/swdv/llvm-project/clang/lib/Driver/Driver.cpp:2194:7
#41 0x00005c4fa1550ddf clang_main(int, char**, llvm::ToolContext const&) /home/swdv/llvm-project/clang/tools/driver/driver.cpp:398:9
#42 0x00005c4fa1582c05 main /home/swdv/llvm-project/build/tools/clang/tools/driver/clang-driver.cpp:17:3
#43 0x0000746c1e029d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#44 0x0000746c1e029e40 call_init ./csu/../csu/libc-start.c:128:20
#45 0x0000746c1e029e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#46 0x00005c4fa154fb55 _start (/home/swdv/llvm-project/build/bin/clang+++0x39b55)
clang++: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 21.0.0git (https://github.com/llvm/llvm-project 4055be55b8814b31256ca3c8840bc73bbe5e3d0f)
Target: wasm64-unknown-emscripten
Thread model: posix
InstalledDir: /home/swdv/llvm-project/build/bin
Build config: +unoptimized, +assertions
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: /tmp/RxTimeout-38846c.cpp
clang++: note: diagnostic msg: /tmp/RxTimeout-38846c.sh
clang++: note: diagnostic msg: 

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

Here are the files referenced in the error: RxTimeout-38846c.zip

For reference, here's what you get without --verify-machineinstrs (a SIGSEGV):

Log
[...]
********** CFG Stackifying **********
********** Function: _ZNK5rxcpp10schedulers14current_thread14current_worker8scheduleENSt3__26chrono10time_pointINS4_12steady_clockENS4_8durationIxNS3_5ratioILx1ELx1000000000EEEEEEERKNS0_11schedulableE
- Catch unwind mismatch:
EHPad = catch.start.i  Original dest = terminate.i  Current dest = ehcleanup59

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: /home/swdv/llvm-project/build/bin/clang++ -target wasm64-unknown-emscripten -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr --sysroot=/home/swdv/emsdk/upstream/emscripten/cache/sysroot -D__EMSCRIPTEN_SHARED_MEMORY__=1 -DEMSCRIPTEN -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -DBOOST_DLL_USE_STD_FS -DHTTPSERVER_WITH_TLS -I/home/swdv/pep/core2/cpp -I/home/swdv/pep/core2/build/wasm/Release/cpp -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -matomics -mbulk-memory -mexception-handling -fwasm-exceptions -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_PROCESS_USE_STD_FS -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -DBUILD_PROJECT_PATH=\"\" -DBUILD_REF=\"\" -DBUILD_REV=\"\" -DBUILD_MAJOR_VERSION=1 -DBUILD_MINOR_VERSION=2 -DBUILD_PIPELINE_ID= -DBUILD_JOB_ID= -DBUILD_TARGET=\"Emscripten\" -O3 -DNDEBUG -std=c++20 -fvisibility=hidden -fcolor-diagnostics -pthread -MD -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -MF cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -ocpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -c /home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp -v -mllvm --debug-only=wasm-cfg-stackify
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp'.
4.      Running pass 'WebAssembly CFG Stackify' on function '@_ZNK5rxcpp10schedulers14current_thread14current_worker8scheduleENSt3__26chrono10time_pointINS4_12steady_clockENS4_8durationIxNS3_5ratioILx1ELx1000000000EEEEEEERKNS0_11schedulableE'
 #0 0x000074c8a53ef3fd llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:799:11
 #1 0x000074c8a53ef8bb PrintStackTraceSignalHandler(void*) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:875:1
 #2 0x000074c8a53eda5f llvm::sys::RunSignalHandlers() /home/swdv/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x000074c8a53eed09 llvm::sys::CleanupOnSignal(unsigned long) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:370:1
 #4 0x000074c8a529cc32 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:0:7
 #5 0x000074c8a529cf96 CrashRecoverySignalHandler(int) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:391:1
 #6 0x000074c8a4842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #7 0x000074c8aeb9183c llvm::MachineInstr::getParent() const /home/swdv/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h:349:55
 #8 0x000074c8aeb7d259 (anonymous namespace)::WebAssemblyCFGStackify::getDelegateDepth(llvm::SmallVectorImpl<std::pair<llvm::MachineBasicBlock const*, llvm::MachineInstr const*>> const&, llvm::MachineBasicBlock const*) /home/swdv/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:2526:28
 #9 0x000074c8aeb7cfae (anonymous namespace)::WebAssemblyCFGStackify::rewriteDepthImmediates(llvm::MachineFunction&)::$_0::operator()(llvm::MachineInstr&) const /home/swdv/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:2563:42
#10 0x000074c8aeb72f5b (anonymous namespace)::WebAssemblyCFGStackify::rewriteDepthImmediates(llvm::MachineFunction&) /home/swdv/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:2609:41
#11 0x000074c8aeb71e68 (anonymous namespace)::WebAssemblyCFGStackify::runOnMachineFunction(llvm::MachineFunction&) /home/swdv/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:2659:3
#12 0x000074c8acf86d21 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/swdv/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:94:8
#13 0x000074c8a5e5d5af llvm::FPPassManager::runOnFunction(llvm::Function&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1406:23
#14 0x000074c8a5e61ceb llvm::FPPassManager::runOnModule(llvm::Module&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1452:16
#15 0x000074c8a5e5de29 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1521:23
#16 0x000074c8a5e5d9d6 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:16
#17 0x000074c8a5e61f91 llvm::legacy::PassManager::run(llvm::Module&) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1648:3
#18 0x000074c8adcdbfc0 (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(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>>&) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1237:19
#19 0x000074c8adcd5b2f (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1263:7
#20 0x000074c8adcd50af clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1425:3
#21 0x000074c8ae637e68 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/swdv/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:315:3
#22 0x000074c8a02eee4b clang::ParseAST(clang::Sema&, bool, bool) /home/swdv/llvm-project/clang/lib/Parse/ParseAST.cpp:191:12
#23 0x000074c8aa356c57 clang::ASTFrontendAction::ExecuteAction() /home/swdv/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1188:1
#24 0x000074c8ae63ba1d clang::CodeGenAction::ExecuteAction() /home/swdv/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1102:5
#25 0x000074c8aa3566b6 clang::FrontendAction::Execute() /home/swdv/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1076:7
#26 0x000074c8aa255281 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/swdv/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1056:23
#27 0x000074c8aee30afa clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/swdv/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:265:8
#28 0x00005c016a9fc21e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/swdv/llvm-project/clang/tools/driver/cc1_main.cpp:290:13
#29 0x00005c016a9ef2be ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /home/swdv/llvm-project/clang/tools/driver/driver.cpp:218:5
#30 0x00005c016a9efd30 clang_main(int, char**, llvm::ToolContext const&)::$_0::operator()(llvm::SmallVectorImpl<char const*>&) const /home/swdv/llvm-project/clang/tools/driver/driver.cpp:360:9
#31 0x00005c016a9efcfd int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#32 0x000074c8a9a28b01 llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(llvm::SmallVectorImpl<char const*>&) const /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#33 0x000074c8a9a22ac8 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0::operator()() const /home/swdv/llvm-project/clang/lib/Driver/Job.cpp:437:34
#34 0x000074c8a9a22a95 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0>(long) /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#35 0x000074c8a5289959 llvm::function_ref<void ()>::operator()() const /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#36 0x000074c8a529ca4f llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:427:3
#37 0x000074c8a9a22483 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /home/swdv/llvm-project/clang/lib/Driver/Job.cpp:437:7
#38 0x000074c8a999ffd2 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /home/swdv/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
#39 0x000074c8a99a01ac clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /home/swdv/llvm-project/clang/lib/Driver/Compilation.cpp:251:13
#40 0x000074c8a99c23b1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /home/swdv/llvm-project/clang/lib/Driver/Driver.cpp:2194:7
#41 0x00005c016a9eeddf clang_main(int, char**, llvm::ToolContext const&) /home/swdv/llvm-project/clang/tools/driver/driver.cpp:398:9
#42 0x00005c016aa20c05 main /home/swdv/llvm-project/build/tools/clang/tools/driver/clang-driver.cpp:17:3
#43 0x000074c8a4829d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#44 0x000074c8a4829e40 call_init ./csu/../csu/libc-start.c:128:20
#45 0x000074c8a4829e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#46 0x00005c016a9edb55 _start (/home/swdv/llvm-project/build/bin/clang+++0x39b55)
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 21.0.0git (https://github.com/llvm/llvm-project 4055be55b8814b31256ca3c8840bc73bbe5e3d0f)
Target: wasm64-unknown-emscripten
Thread model: posix
InstalledDir: /home/swdv/llvm-project/build/bin
Build config: +unoptimized, +assertions

This might be related to #63182, not sure.

@stevenwdv stevenwdv changed the title [WebAssembly] Crash in WebAssemblyCFGStackify optimization (bad machine code) [WebAssembly] Crash in WebAssemblyCFGStackify with optimization (bad machine code) Feb 12, 2025
@EugeneZelenko EugeneZelenko added backend:WebAssembly crash Prefer [crash-on-valid] or [crash-on-invalid] and removed new issue labels Feb 12, 2025
@llvmbot
Copy link
Member

llvmbot commented Feb 12, 2025

@llvm/issue-subscribers-backend-webassembly

Author: None (stevenwdv)

Clang crashes while optimizing some WebAssembly machine code (both 64-bit and 32-bit). This didn't happen when compiling the same code without optimizations.

When using --verify-machineinstrs, I get Bad machine code: Multiple connected components in live interval.
Here's the log (I'm using a Debug build of Clang to get better stack traces etc.):
<details>
<summary>Log</summary>

$ EM_LLVM_ROOT=/home/swdv/llvm-project/build/bin/  /home/swdv/emsdk/upstream/emscripten/em++ -DBOOST_DLL_USE_STD_FS -DHTTPSERVER_WITH_TLS -I/home/swdv/pep/core2/cpp -I/home/swdv/pep/core2/build/wasm/Release/cpp -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -sMEMORY64=1 -matomics -mbulk-memory -mexception-handling -fwasm-exceptions -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_PROCESS_USE_STD_FS -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -DBUILD_PROJECT_PATH=\"\" -DBUILD_REF=\"\" -DBUILD_REV=\"\" -DBUILD_MAJOR_VERSION=1 -DBUILD_MINOR_VERSION=2 -DBUILD_PIPELINE_ID= -DBUILD_JOB_ID= -DBUILD_TARGET=\"Emscripten\" -O3 -DNDEBUG -std=c++20 -fvisibility=hidden -fcolor-diagnostics -pthread -MD -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -MF cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -o cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -c /home/swdv/pep/core
2/cpp/pep/async/RxTimeout.cpp -v -mllvm --verify-machineinstrs -mllvm --debug-only=wasm-cfg-stackify
 "/home/swdv/llvm-project/build/bin/clang++" -target wasm64-unknown-emscripten -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr --sysroot=/home/swdv/emsdk/upstream/emscripten/cache/sysroot -D__EMSCRIPTEN_SHARED_MEMORY__=1 -DEMSCRIPTEN -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -DBOOST_DLL_USE_STD_FS -DHTTPSERVER_WITH_TLS -I/home/swdv/pep/core2/cpp -I/home/swdv/pep/core2/build/wasm/Release/cpp -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -matomics -mbulk-memory -mexception-handling -fwasm-exceptions -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_PROCESS_USE_STD_FS -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -DBUILD_PROJECT_PATH="" -DBUILD_REF="" -DBUILD_REV="" -DBUILD_MAJOR_VERSION=1 -DBUILD_MINOR_VERSION=2 -DBUILD_PIPELINE_ID= -DBUILD_JOB_ID= -DBUILD_TARGET="Emscripten" -O3 -DNDEBUG -std=c++20 -fvisibility=hidden -fcolor-diagnostics -pthread -MD -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -MF cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -ocpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -c /home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp -v -mllvm --verify-machineinstrs -mllvm --debug-only=wasm-cfg-stackify
clang version 21.0.0git (https://github.com/llvm/llvm-project 4055be55b8814b31256ca3c8840bc73bbe5e3d0f)
Target: wasm64-unknown-emscripten
Thread model: posix
InstalledDir: /home/swdv/llvm-project/build/bin
Build config: +unoptimized, +assertions
 (in-process)
 "/home/swdv/llvm-project/build/bin/clang-21" -cc1 -triple wasm64-unknown-emscripten -emit-obj -disable-free -clear-ast-before-backend -main-file-name RxTimeout.cpp -mrelocation-model static -mframe-pointer=none -ffp-contract=on -fno-rounding-math -mconstructor-aliases -target-feature +atomics -target-feature +bulk-memory -target-feature +mutable-globals -target-feature +sign-ext -target-feature +exception-handling -target-feature +multivalue -target-feature +reference-types -exception-model=wasm -mllvm -wasm-enable-eh -target-cpu generic -target-feature +atomics -target-feature +bulk-memory -target-feature +exception-handling -debugger-tuning=gdb -fdebug-compilation-dir=/home/swdv/pep/core2/build/wasm/Debug -v -fcoverage-compilation-dir=/home/swdv/pep/core2/build/wasm/Debug -resource-dir /home/swdv/llvm-project/build/lib/clang/21 -dependency-file cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -sys-header-deps -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -D __EMSCRIPTEN_SHARED_MEMORY__=1 -D EMSCRIPTEN -D BOOST_DLL_USE_STD_FS -D HTTPSERVER_WITH_TLS -I /home/swdv/pep/core2/cpp -I /home/swdv/pep/core2/build/wasm/Release/cpp -D BOOST_LOG_USE_NATIVE_SYSLOG -D BOOST_PROCESS_USE_STD_FS -D "BUILD_PROJECT_PATH=\"\"" -D "BUILD_REF=\"\"" -D "BUILD_REV=\"\"" -D BUILD_MAJOR_VERSION=1 -D BUILD_MINOR_VERSION=2 -D BUILD_PIPELINE_ID= -D BUILD_JOB_ID= -D "BUILD_TARGET=\"Emscripten\"" -D NDEBUG -isysroot /home/swdv/emsdk/upstream/emscripten/cache/sysroot -internal-isystem /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten/c++/v1 -internal-isystem /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1 -internal-isystem /home/swdv/llvm-project/build/lib/clang/21/include -internal-isystem /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten -internal-isystem /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include -O3 -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -std=c++20 -fdeprecated-macro -ferror-limit 19 -fvisibility=hidden -pthread -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -exception-model=wasm -fcolor-diagnostics -vectorize-loops -vectorize-slp -iwithsysroot/include/fakesdl -iwithsysroot/include/compat -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr -mllvm --verify-machineinstrs -mllvm --debug-only=wasm-cfg-stackify -o cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -x c++ /home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp
clang -cc1 version 21.0.0git based upon LLVM 21.0.0git default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten/c++/v1"
ignoring nonexistent directory "/home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/wasm64-emscripten"
#include "..." search starts here:
#include &lt;...&gt; search starts here:
 /home/swdv/pep/core2/cpp
 /home/swdv/pep/core2/build/wasm/Release/cpp
 /home/swdv/pep/core2/cpp/ext
 /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include
 /home/swdv/.conan2/p/b/opensd5d75de921105/p/include
 /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include
 /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src
 /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl
 /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/compat
 /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1
 /home/swdv/llvm-project/build/lib/clang/21/include
 /home/swdv/emsdk/upstream/emscripten/cache/sysroot/include
End of search list.
********** CFG Stackifying **********
********** Function: _ZN3pep11RxAsioTimerERKNSt3__26chrono8durationIxNS0_5ratioILx1ELx1000EEEEERN5boost4asio10io_contextEN5rxcpp21observe_on_one_workerE
- Call unwind mismatch: MBB = if.then.i.i14.i.i.i.i.i.i
Range begin = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %187:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %187:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup

- Call unwind mismatch: MBB = if.then.i.i.i.i.i.i.i.i55
Range begin = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %166:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %166:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup16

- Call unwind mismatch: MBB = if.then.i.i.i.i8.i.i.i.i.i
Range begin = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %155:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %155:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup21

- Call unwind mismatch: MBB = if.then.i.i.i.i.i.i16.i.i.i
Range begin = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %7:i64, %148:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %7:i64, %148:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup21

- Call unwind mismatch: MBB = if.then.i.i.i.i.i.i.i
Range begin = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %128:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %128:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup26

- Call unwind mismatch: MBB = if.then.i.i.i.i.i18.i.i.i.i
Range begin = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %121:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %121:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup26

- Call unwind mismatch: MBB = if.end8.sink.split.i.i.i.i.i.i.i
Range begin = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %7:i64, %114:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %7:i64, %114:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup26

- Call unwind mismatch: MBB = if.then.i.i14.i.i.i.i.i.i.i
Range begin = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %89:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
Range end = CALL_INDIRECT 0, &lt;mcsymbol __indirect_function_table&gt;, %0:i64, %89:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack

Original dest = caller  Current dest = ehcleanup.i

********** CFG Stackifying **********
********** Function: _ZN5rxcpp10observableIN3pep8FakeVoidENS_9operators6detail13lift_operatorIS2_NS4_12subscribe_onIS2_NS0_IS2_NS_18dynamic_observableIS2_EEEENS_21observe_on_one_workerEEENS4_10observe_onIS2_SA_EEEEED2Ev
********** CFG Stackifying **********
********** Function: _ZN5rxcpp10observableIN3pep8FakeVoidENS_9operators6detail12subscribe_onIS2_NS0_IS2_NS_18dynamic_observableIS2_EEEENS_21observe_on_one_workerEEEED2Ev
********** CFG Stackifying **********
********** Function: _ZN5rxcpp21observe_on_one_workerD2Ev
********** CFG Stackifying **********
********** Function: _ZN5rxcpp10observableIN3pep8FakeVoidENS_18dynamic_observableIS2_EEED2Ev
********** CFG Stackifying **********
********** Function: _ZZN3pep11RxAsioTimerERKNSt3__26chrono8durationIxNS0_5ratioILx1ELx1000EEEEERN5boost4asio10io_contextEN5rxcpp21observe_on_one_workerEEN3$_0D2Ev
********** CFG Stackifying **********
********** Function: _ZNSt3__210shared_ptrIN5boost4asio20basic_waitable_timerINS_6chrono12steady_clockENS2_11wait_traitsIS5_EENS2_15any_io_executorEEEED2B8ne190106Ev
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.4
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.5
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.7
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.9
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.11
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.13
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.15
********** CFG Stackifying **********
********** Function: __cxx_global_array_dtor.16
********** CFG Stackifying **********
********** Function: __cxx_global_var_init.17
********** CFG Stackifying **********
********** Function: _ZNK5boost6system6detail21system_error_category4nameEv
********** CFG Stackifying **********
********** Function: _ZNK5boost6system6detail21system_error_category23default_error_conditionEi
********** CFG Stackifying **********
********** Function: _ZNK5boost6system14error_category10equivalentEiRKNS0_15error_conditionE
********** CFG Stackifying **********
********** Function: _ZNK5boost6system14error_category10equivalentERKNS0_10error_codeEi
********** CFG Stackifying **********
********** Function: _ZNK5boost6system6detail21system_error_category7messageEi

# After WebAssembly Register Stackify
********** INTERVALS **********
ARGUMENTS [0B,48r:0)[64r,64d:5)[72r,72d:25)[88r,88d:24)[112r,112d:23)[136r,136d:10)[160r,160d:22)[208r,208d:9)[248r,248d:18)[272r,272d:6)[296r,296d:17)[320r,320d:3)[344r,344d:16)[360r,360d:15)[376r,376d:8)[392r,392d:14)[408r,408d:13)[432r,432d:12)[448r,448d:4)[496r,496d:2)[512r,512d:1)[528r,528d:7)[544r,544d:19)[568r,568d:21)[592r,592d:20)[624r,624d:11) 0@<!-- -->0B-phi 1@<!-- -->512r 2@<!-- -->496r 3@<!-- -->320r 4@<!-- -->448r 5@<!-- -->64r 6@<!-- -->272r 7@<!-- -->528r 8@<!-- -->376r 9@<!-- -->208r 10@<!-- -->136r 11@<!-- -->624r 12@<!-- -->432r 13@<!-- -->408r 14@<!-- -->392r 15@<!-- -->360r 16@<!-- -->344r 17@<!-- -->296r 18@<!-- -->248r 19@<!-- -->544r 20@<!-- -->592r 21@<!-- -->568r 22@<!-- -->160r 23@<!-- -->112r 24@<!-- -->88r 25@<!-- -->72r
%0 [208r,288B:0)[336B,376r:0) 0@<!-- -->208r  weight:0.000000e+00
%3 [48r,128B:0)[176B,208r:0) 0@<!-- -->48r  weight:0.000000e+00
%6 [16r,136r:0)[176B,288B:0)[336B,360r:0) 0@<!-- -->16r  weight:0.000000e+00
%7 [72r,88r:0) 0@<!-- -->72r  weight:0.000000e+00
%8 [88r,112r:0) 0@<!-- -->88r  weight:0.000000e+00
%9 [568r,592r:0) 0@<!-- -->568r  weight:0.000000e+00
%11 [248r,272r:0) 0@<!-- -->248r  weight:0.000000e+00
%12 [344r,360r:0) 0@<!-- -->344r  weight:0.000000e+00
%13 [364r,392r:0) 0@<!-- -->364r  weight:0.000000e+00
%14 [392r,432r:0) 0@<!-- -->392r  weight:0.000000e+00
%15 [408r,432r:0) 0@<!-- -->408r  weight:0.000000e+00
%16 [136r,160r:0) 0@<!-- -->136r  weight:0.000000e+00
%17 [32r,288B:1)[336B,376r:1)[380r,448r:0)[560B,624r:1) 0@<!-- -->380r 1@<!-- -->32r  weight:0.000000e+00
%18 [64r,128B:0)[176B,240B:0)[464B,512r:0) 0@<!-- -->64r  weight:0.000000e+00
%19 [296r,320r:0) 0@<!-- -->296r  weight:0.000000e+00
%20 [380r,392r:0) 0@<!-- -->380r  weight:0.000000e+00
%21 [376r,380r:0) 0@<!-- -->376r  weight:0.000000e+00
%22 [364r,376r:0) 0@<!-- -->364r  weight:0.000000e+00
%23 [360r,364r:0) 0@<!-- -->360r  weight:0.000000e+00
RegMasks:
********** MACHINEINSTRS **********
# Machine code for function _ZNK5boost6system6detail21system_error_category7messageEiPcm: NoPHIs, TracksLiveness, TiedOpsRewritten
Jump Tables:
%jump-table.0:

Function Live Ins: $arguments, $value_stack

0B      bb.0.entry:
          successors: %bb.2(0x2aaaaaaa), %bb.1(0x55555556); %bb.2(33.33%), %bb.1(66.67%)
          liveins: $arguments, $value_stack
16B       %6:i64 = ARGUMENT_i64 3, implicit $arguments
32B       %17:i64 = ARGUMENT_i64 2, implicit $arguments
48B       %3:i32 = ARGUMENT_i32 1, implicit $arguments
64B       %18:i64 = GLOBAL_GET_I64 &amp;__stack_pointer, implicit-def $arguments
72B       %7:i64 = CONST_I64 1, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
88B       %8:i32 = GT_U_I64 %6:i64, %7:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
112B      BR_IF %bb.2, %8:i32, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack

128B    bb.1.entry:
        ; predecessors: %bb.0
          successors: %bb.8(0x40000000), %bb.7(0x40000000); %bb.8(50.00%), %bb.7(50.00%)
          liveins: $value_stack
136B      %16:i32 = I32_WRAP_I64 %6:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
160B      BR_TABLE_I32 %16:i32, %bb.8, %bb.7, %bb.8, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack

176B    bb.2.if.end3.i.i:
        ; predecessors: %bb.0
          successors: %bb.3(0x7ffff800), %bb.6(0x00000800); %bb.3(100.00%), %bb.6(0.00%)
          liveins: $value_stack
192B      EH_LABEL &lt;mcsymbol &gt;
208B      %0:i64 = CALL @<!-- -->strerror, %3:i32, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64
224B      EH_LABEL &lt;mcsymbol &gt;

240B    bb.3.invoke.cont.i.i:
        ; predecessors: %bb.2
          successors: %bb.4(0x30000000), %bb.5(0x50000000); %bb.4(37.50%), %bb.5(62.50%)
          liveins: $value_stack
248B      %11:i32 = EQZ_I64 %0:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
272B      BR_UNLESS %bb.5, %11:i32, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack

288B    bb.4:
        ; predecessors: %bb.3
          liveins: $value_stack
296B      %19:i64 = CONST_I64 @.str.20, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
320B      RETURN %19:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack

336B    bb.5.if.end6.i.i:
        ; predecessors: %bb.3
          liveins: $value_stack
344B      %12:i64 = CONST_I64 -1, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
360B      %23:i64 = ADD_I64 %6:i64, %12:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
364B      %22:i64, %13:i64 = TEE_I64 %23:i64, implicit-def $arguments, implicit-def $value_stack, implicit $value_stack
376B      %21:i64 = CALL @<!-- -->strncpy, %17:i64, %0:i64, %22:i64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack
380B      %20:i64, %17:i64 = TEE_I64 %21:i64, implicit-def $arguments, implicit-def $value_stack, implicit $value_stack
392B      %14:i64 = nuw ADD_I64 %20:i64, %13:i64, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
408B      %15:i32 = CONST_I32 0, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
432B      STORE8_I32_A64 0, 0, %14:i64, %15:i32, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack :: (store (s8) into %ir.arrayidx9.i.i, !tbaa !148)
448B      RETURN %17:i64, implicit-def dead $arguments

464B    bb.6.terminate.i.i (landing-pad):
        ; predecessors: %bb.2
          liveins: $value_stack
480B      EH_LABEL &lt;mcsymbol &gt;
496B      CATCH_ALL_LEGACY implicit-def $arguments
512B      GLOBAL_SET_I64 &amp;__stack_pointer, %18:i64, implicit-def $arguments
528B      CALL @<!-- -->_ZSt9terminatev, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64
544B      UNREACHABLE implicit-def dead $arguments

560B    bb.7.if.then2.i.i:
        ; predecessors: %bb.1
          successors: %bb.8(0x80000000); %bb.8(100.00%)
          liveins: $value_stack
568B      %9:i32 = CONST_I32 0, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack
592B      STORE8_I32_A64 0, 0, %17:i64, %9:i32, implicit-def dead $arguments, implicit-def $value_stack, implicit $value_stack :: (store (s8) into %ir.buffer, !tbaa !148)

608B    bb.8._ZN5boost6system6detail29system_error_category_messageEiPcm.exit:
        ; predecessors: %bb.1, %bb.7
          liveins: $value_stack
624B      RETURN %17:i64, implicit-def dead $arguments

# End machine code for function _ZNK5boost6system6detail21system_error_category7messageEiPcm.

*** Bad machine code: Multiple connected components in live interval ***
- function:    _ZNK5boost6system6detail21system_error_category7messageEiPcm
- interval:    %17 [32r,288B:1)[336B,376r:1)[380r,448r:0)[560B,624r:1) 0@<!-- -->380r 1@<!-- -->32r  weight:0.000000e+00
0: valnos 0
1: valnos 1
fatal error: error in backend: Found 1 machine code errors.
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: /home/swdv/llvm-project/build/bin/clang++ -target wasm64-unknown-emscripten -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr --sysroot=/home/swdv/emsdk/upstream/emscripten/cache/sysroot -D__EMSCRIPTEN_SHARED_MEMORY__=1 -DEMSCRIPTEN -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -DBOOST_DLL_USE_STD_FS -DHTTPSERVER_WITH_TLS -I/home/swdv/pep/core2/cpp -I/home/swdv/pep/core2/build/wasm/Release/cpp -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -matomics -mbulk-memory -mexception-handling -fwasm-exceptions -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_PROCESS_USE_STD_FS -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -DBUILD_PROJECT_PATH=\"\" -DBUILD_REF=\"\" -DBUILD_REV=\"\" -DBUILD_MAJOR_VERSION=1 -DBUILD_MINOR_VERSION=2 -DBUILD_PIPELINE_ID= -DBUILD_JOB_ID= -DBUILD_TARGET=\"Emscripten\" -O3 -DNDEBUG -std=c++20 -fvisibility=hidden -fcolor-diagnostics -pthread -MD -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -MF cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -ocpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -c /home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp -v -mllvm --verify-machineinstrs -mllvm --debug-only=wasm-cfg-stackify
1.      &lt;eof&gt; parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp'.
4.      Running pass 'Verify generated machine code' on function '@<!-- -->_ZNK5boost6system6detail21system_error_category7messageEiPcm'
 #<!-- -->0 0x0000746c1ebef3fd llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:799:11
 #<!-- -->1 0x0000746c1ebef8bb PrintStackTraceSignalHandler(void*) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:875:1
 #<!-- -->2 0x0000746c1ebeda5f llvm::sys::RunSignalHandlers() /home/swdv/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #<!-- -->3 0x0000746c1ebeed09 llvm::sys::CleanupOnSignal(unsigned long) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:370:1
 #<!-- -->4 0x0000746c1ea9cc32 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:0:7
 #<!-- -->5 0x0000746c1ea9cb67 llvm::CrashRecoveryContext::HandleExit(int) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:446:3
 #<!-- -->6 0x0000746c1ebe7f7f llvm::sys::Process::Exit(int, bool) /home/swdv/llvm-project/llvm/lib/Support/Process.cpp:114:7
 #<!-- -->7 0x00005c4fa155eed6 (/home/swdv/llvm-project/build/bin/clang+++0x48ed6)
 #<!-- -->8 0x0000746c1eac08c5 llvm::report_fatal_error(llvm::Twine const&amp;, bool) /home/swdv/llvm-project/llvm/lib/Support/ErrorHandling.cpp:105:5
 #<!-- -->9 0x0000746c26914e83 (anonymous namespace)::MachineVerifier::ReportedErrors::~ReportedErrors() /home/swdv/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:262:7
#<!-- -->10 0x0000746c269142c0 (anonymous namespace)::MachineVerifier::~MachineVerifier() /home/swdv/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:102:8
#<!-- -->11 0x0000746c269152bb (anonymous namespace)::MachineVerifierLegacyPass::runOnMachineFunction(llvm::MachineFunction&amp;) /home/swdv/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:391:5
#<!-- -->12 0x0000746c26786d21 llvm::MachineFunctionPass::runOnFunction(llvm::Function&amp;) /home/swdv/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:94:8
#<!-- -->13 0x0000746c1f65d5af llvm::FPPassManager::runOnFunction(llvm::Function&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1406:23
#<!-- -->14 0x0000746c1f661ceb llvm::FPPassManager::runOnModule(llvm::Module&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1452:16
#<!-- -->15 0x0000746c1f65de29 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1521:23
#<!-- -->16 0x0000746c1f65d9d6 llvm::legacy::PassManagerImpl::run(llvm::Module&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:16
#<!-- -->17 0x0000746c1f661f91 llvm::legacy::PassManager::run(llvm::Module&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1648:3
#<!-- -->18 0x0000746c274dbfc0 (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(clang::BackendAction, std::unique_ptr&lt;llvm::raw_pwrite_stream, std::default_delete&lt;llvm::raw_pwrite_stream&gt;&gt;&amp;, std::unique_ptr&lt;llvm::ToolOutputFile, std::default_delete&lt;llvm::ToolOutputFile&gt;&gt;&amp;) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1237:19
#<!-- -->19 0x0000746c274d5b2f (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr&lt;llvm::raw_pwrite_stream, std::default_delete&lt;llvm::raw_pwrite_stream&gt;&gt;, clang::BackendConsumer*) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1263:7
#<!-- -->20 0x0000746c274d50af clang::emitBackendOutput(clang::CompilerInstance&amp;, clang::CodeGenOptions&amp;, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr&lt;llvm::vfs::FileSystem&gt;, std::unique_ptr&lt;llvm::raw_pwrite_stream, std::default_delete&lt;llvm::raw_pwrite_stream&gt;&gt;, clang::BackendConsumer*) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1425:3
#<!-- -->21 0x0000746c27e37e68 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&amp;) /home/swdv/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:315:3
#<!-- -->22 0x0000746c19aeee4b clang::ParseAST(clang::Sema&amp;, bool, bool) /home/swdv/llvm-project/clang/lib/Parse/ParseAST.cpp:191:12
#<!-- -->23 0x0000746c23b56c57 clang::ASTFrontendAction::ExecuteAction() /home/swdv/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1188:1
#<!-- -->24 0x0000746c27e3ba1d clang::CodeGenAction::ExecuteAction() /home/swdv/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1102:5
#<!-- -->25 0x0000746c23b566b6 clang::FrontendAction::Execute() /home/swdv/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1076:7
#<!-- -->26 0x0000746c23a55281 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&amp;) /home/swdv/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1056:23
#<!-- -->27 0x0000746c28575afa clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/swdv/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:265:8
#<!-- -->28 0x00005c4fa155e21e cc1_main(llvm::ArrayRef&lt;char const*&gt;, char const*, void*) /home/swdv/llvm-project/clang/tools/driver/cc1_main.cpp:290:13
#<!-- -->29 0x00005c4fa15512be ExecuteCC1Tool(llvm::SmallVectorImpl&lt;char const*&gt;&amp;, llvm::ToolContext const&amp;) /home/swdv/llvm-project/clang/tools/driver/driver.cpp:218:5
#<!-- -->30 0x00005c4fa1551d30 clang_main(int, char**, llvm::ToolContext const&amp;)::$_0::operator()(llvm::SmallVectorImpl&lt;char const*&gt;&amp;) const /home/swdv/llvm-project/clang/tools/driver/driver.cpp:360:9
#<!-- -->31 0x00005c4fa1551cfd int llvm::function_ref&lt;int (llvm::SmallVectorImpl&lt;char const*&gt;&amp;)&gt;::callback_fn&lt;clang_main(int, char**, llvm::ToolContext const&amp;)::$_0&gt;(long, llvm::SmallVectorImpl&lt;char const*&gt;&amp;) /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#<!-- -->32 0x0000746c23228b01 llvm::function_ref&lt;int (llvm::SmallVectorImpl&lt;char const*&gt;&amp;)&gt;::operator()(llvm::SmallVectorImpl&lt;char const*&gt;&amp;) const /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#<!-- -->33 0x0000746c23222ac8 clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const::$_0::operator()() const /home/swdv/llvm-project/clang/lib/Driver/Job.cpp:437:34
#<!-- -->34 0x0000746c23222a95 void llvm::function_ref&lt;void ()&gt;::callback_fn&lt;clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const::$_0&gt;(long) /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#<!-- -->35 0x0000746c1ea89959 llvm::function_ref&lt;void ()&gt;::operator()() const /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#<!-- -->36 0x0000746c1ea9ca4f llvm::CrashRecoveryContext::RunSafely(llvm::function_ref&lt;void ()&gt;) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:427:3
#<!-- -->37 0x0000746c23222483 clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const /home/swdv/llvm-project/clang/lib/Driver/Job.cpp:437:7
#<!-- -->38 0x0000746c2319ffd2 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&amp;, clang::driver::Command const*&amp;, bool) const /home/swdv/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
#<!-- -->39 0x0000746c231a01ac clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&amp;, llvm::SmallVectorImpl&lt;std::pair&lt;int, clang::driver::Command const*&gt;&gt;&amp;, bool) const /home/swdv/llvm-project/clang/lib/Driver/Compilation.cpp:251:13
#<!-- -->40 0x0000746c231c23b1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&amp;, llvm::SmallVectorImpl&lt;std::pair&lt;int, clang::driver::Command const*&gt;&gt;&amp;) /home/swdv/llvm-project/clang/lib/Driver/Driver.cpp:2194:7
#<!-- -->41 0x00005c4fa1550ddf clang_main(int, char**, llvm::ToolContext const&amp;) /home/swdv/llvm-project/clang/tools/driver/driver.cpp:398:9
#<!-- -->42 0x00005c4fa1582c05 main /home/swdv/llvm-project/build/tools/clang/tools/driver/clang-driver.cpp:17:3
#<!-- -->43 0x0000746c1e029d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#<!-- -->44 0x0000746c1e029e40 call_init ./csu/../csu/libc-start.c:128:20
#<!-- -->45 0x0000746c1e029e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#<!-- -->46 0x00005c4fa154fb55 _start (/home/swdv/llvm-project/build/bin/clang+++0x39b55)
clang++: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 21.0.0git (https://github.com/llvm/llvm-project 4055be55b8814b31256ca3c8840bc73bbe5e3d0f)
Target: wasm64-unknown-emscripten
Thread model: posix
InstalledDir: /home/swdv/llvm-project/build/bin
Build config: +unoptimized, +assertions
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: /tmp/RxTimeout-38846c.cpp
clang++: note: diagnostic msg: /tmp/RxTimeout-38846c.sh
clang++: note: diagnostic msg: 

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

</details>

Here are the files referenced in the error: RxTimeout-38846c.zip

For reference, here's what you get without --verify-machineinstrs (a SIGSEGV):
<details>
<summary>Log</summary>

[...]
********** CFG Stackifying **********
********** Function: _ZNK5rxcpp10schedulers14current_thread14current_worker8scheduleENSt3__26chrono10time_pointINS4_12steady_clockENS4_8durationIxNS3_5ratioILx1ELx1000000000EEEEEEERKNS0_11schedulableE
- Catch unwind mismatch:
EHPad = catch.start.i  Original dest = terminate.i  Current dest = ehcleanup59

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: /home/swdv/llvm-project/build/bin/clang++ -target wasm64-unknown-emscripten -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr --sysroot=/home/swdv/emsdk/upstream/emscripten/cache/sysroot -D__EMSCRIPTEN_SHARED_MEMORY__=1 -DEMSCRIPTEN -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -DBOOST_DLL_USE_STD_FS -DHTTPSERVER_WITH_TLS -I/home/swdv/pep/core2/cpp -I/home/swdv/pep/core2/build/wasm/Release/cpp -isystem /home/swdv/pep/core2/cpp/ext -isystem /home/swdv/.conan2/p/b/boost4f5274fb6e555/p/include -isystem /home/swdv/.conan2/p/b/opensd5d75de921105/p/include -isystem /home/swdv/.conan2/p/b/xxhas89a1eafce3262/p/include -isystem /home/swdv/pep/core2/build/wasm/Release/cpp/cache/rxcpp/Rx/v2/src -matomics -mbulk-memory -mexception-handling -fwasm-exceptions -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_PROCESS_USE_STD_FS -Wall -Wextra -Wconversion -Wold-style-cast -Wno-unused-parameter -Werror -Wno-error=old-style-cast -DBUILD_PROJECT_PATH=\"\" -DBUILD_REF=\"\" -DBUILD_REV=\"\" -DBUILD_MAJOR_VERSION=1 -DBUILD_MINOR_VERSION=2 -DBUILD_PIPELINE_ID= -DBUILD_JOB_ID= -DBUILD_TARGET=\"Emscripten\" -O3 -DNDEBUG -std=c++20 -fvisibility=hidden -fcolor-diagnostics -pthread -MD -MT cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -MF cpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o.d -ocpp/pep/async/CMakeFiles/pepAsynclib.dir/RxTimeout.cpp.o -c /home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp -v -mllvm --debug-only=wasm-cfg-stackify
1.      &lt;eof&gt; parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/home/swdv/pep/core2/cpp/pep/async/RxTimeout.cpp'.
4.      Running pass 'WebAssembly CFG Stackify' on function '@<!-- -->_ZNK5rxcpp10schedulers14current_thread14current_worker8scheduleENSt3__26chrono10time_pointINS4_12steady_clockENS4_8durationIxNS3_5ratioILx1ELx1000000000EEEEEEERKNS0_11schedulableE'
 #<!-- -->0 0x000074c8a53ef3fd llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:799:11
 #<!-- -->1 0x000074c8a53ef8bb PrintStackTraceSignalHandler(void*) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:875:1
 #<!-- -->2 0x000074c8a53eda5f llvm::sys::RunSignalHandlers() /home/swdv/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #<!-- -->3 0x000074c8a53eed09 llvm::sys::CleanupOnSignal(unsigned long) /home/swdv/llvm-project/llvm/lib/Support/Unix/Signals.inc:370:1
 #<!-- -->4 0x000074c8a529cc32 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:0:7
 #<!-- -->5 0x000074c8a529cf96 CrashRecoverySignalHandler(int) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:391:1
 #<!-- -->6 0x000074c8a4842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #<!-- -->7 0x000074c8aeb9183c llvm::MachineInstr::getParent() const /home/swdv/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h:349:55
 #<!-- -->8 0x000074c8aeb7d259 (anonymous namespace)::WebAssemblyCFGStackify::getDelegateDepth(llvm::SmallVectorImpl&lt;std::pair&lt;llvm::MachineBasicBlock const*, llvm::MachineInstr const*&gt;&gt; const&amp;, llvm::MachineBasicBlock const*) /home/swdv/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:2526:28
 #<!-- -->9 0x000074c8aeb7cfae (anonymous namespace)::WebAssemblyCFGStackify::rewriteDepthImmediates(llvm::MachineFunction&amp;)::$_0::operator()(llvm::MachineInstr&amp;) const /home/swdv/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:2563:42
#<!-- -->10 0x000074c8aeb72f5b (anonymous namespace)::WebAssemblyCFGStackify::rewriteDepthImmediates(llvm::MachineFunction&amp;) /home/swdv/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:2609:41
#<!-- -->11 0x000074c8aeb71e68 (anonymous namespace)::WebAssemblyCFGStackify::runOnMachineFunction(llvm::MachineFunction&amp;) /home/swdv/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:2659:3
#<!-- -->12 0x000074c8acf86d21 llvm::MachineFunctionPass::runOnFunction(llvm::Function&amp;) /home/swdv/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:94:8
#<!-- -->13 0x000074c8a5e5d5af llvm::FPPassManager::runOnFunction(llvm::Function&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1406:23
#<!-- -->14 0x000074c8a5e61ceb llvm::FPPassManager::runOnModule(llvm::Module&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1452:16
#<!-- -->15 0x000074c8a5e5de29 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1521:23
#<!-- -->16 0x000074c8a5e5d9d6 llvm::legacy::PassManagerImpl::run(llvm::Module&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:16
#<!-- -->17 0x000074c8a5e61f91 llvm::legacy::PassManager::run(llvm::Module&amp;) /home/swdv/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1648:3
#<!-- -->18 0x000074c8adcdbfc0 (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(clang::BackendAction, std::unique_ptr&lt;llvm::raw_pwrite_stream, std::default_delete&lt;llvm::raw_pwrite_stream&gt;&gt;&amp;, std::unique_ptr&lt;llvm::ToolOutputFile, std::default_delete&lt;llvm::ToolOutputFile&gt;&gt;&amp;) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1237:19
#<!-- -->19 0x000074c8adcd5b2f (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr&lt;llvm::raw_pwrite_stream, std::default_delete&lt;llvm::raw_pwrite_stream&gt;&gt;, clang::BackendConsumer*) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1263:7
#<!-- -->20 0x000074c8adcd50af clang::emitBackendOutput(clang::CompilerInstance&amp;, clang::CodeGenOptions&amp;, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr&lt;llvm::vfs::FileSystem&gt;, std::unique_ptr&lt;llvm::raw_pwrite_stream, std::default_delete&lt;llvm::raw_pwrite_stream&gt;&gt;, clang::BackendConsumer*) /home/swdv/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1425:3
#<!-- -->21 0x000074c8ae637e68 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&amp;) /home/swdv/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:315:3
#<!-- -->22 0x000074c8a02eee4b clang::ParseAST(clang::Sema&amp;, bool, bool) /home/swdv/llvm-project/clang/lib/Parse/ParseAST.cpp:191:12
#<!-- -->23 0x000074c8aa356c57 clang::ASTFrontendAction::ExecuteAction() /home/swdv/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1188:1
#<!-- -->24 0x000074c8ae63ba1d clang::CodeGenAction::ExecuteAction() /home/swdv/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1102:5
#<!-- -->25 0x000074c8aa3566b6 clang::FrontendAction::Execute() /home/swdv/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1076:7
#<!-- -->26 0x000074c8aa255281 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&amp;) /home/swdv/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1056:23
#<!-- -->27 0x000074c8aee30afa clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/swdv/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:265:8
#<!-- -->28 0x00005c016a9fc21e cc1_main(llvm::ArrayRef&lt;char const*&gt;, char const*, void*) /home/swdv/llvm-project/clang/tools/driver/cc1_main.cpp:290:13
#<!-- -->29 0x00005c016a9ef2be ExecuteCC1Tool(llvm::SmallVectorImpl&lt;char const*&gt;&amp;, llvm::ToolContext const&amp;) /home/swdv/llvm-project/clang/tools/driver/driver.cpp:218:5
#<!-- -->30 0x00005c016a9efd30 clang_main(int, char**, llvm::ToolContext const&amp;)::$_0::operator()(llvm::SmallVectorImpl&lt;char const*&gt;&amp;) const /home/swdv/llvm-project/clang/tools/driver/driver.cpp:360:9
#<!-- -->31 0x00005c016a9efcfd int llvm::function_ref&lt;int (llvm::SmallVectorImpl&lt;char const*&gt;&amp;)&gt;::callback_fn&lt;clang_main(int, char**, llvm::ToolContext const&amp;)::$_0&gt;(long, llvm::SmallVectorImpl&lt;char const*&gt;&amp;) /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#<!-- -->32 0x000074c8a9a28b01 llvm::function_ref&lt;int (llvm::SmallVectorImpl&lt;char const*&gt;&amp;)&gt;::operator()(llvm::SmallVectorImpl&lt;char const*&gt;&amp;) const /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#<!-- -->33 0x000074c8a9a22ac8 clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const::$_0::operator()() const /home/swdv/llvm-project/clang/lib/Driver/Job.cpp:437:34
#<!-- -->34 0x000074c8a9a22a95 void llvm::function_ref&lt;void ()&gt;::callback_fn&lt;clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const::$_0&gt;(long) /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#<!-- -->35 0x000074c8a5289959 llvm::function_ref&lt;void ()&gt;::operator()() const /home/swdv/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#<!-- -->36 0x000074c8a529ca4f llvm::CrashRecoveryContext::RunSafely(llvm::function_ref&lt;void ()&gt;) /home/swdv/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:427:3
#<!-- -->37 0x000074c8a9a22483 clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const /home/swdv/llvm-project/clang/lib/Driver/Job.cpp:437:7
#<!-- -->38 0x000074c8a999ffd2 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&amp;, clang::driver::Command const*&amp;, bool) const /home/swdv/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
#<!-- -->39 0x000074c8a99a01ac clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&amp;, llvm::SmallVectorImpl&lt;std::pair&lt;int, clang::driver::Command const*&gt;&gt;&amp;, bool) const /home/swdv/llvm-project/clang/lib/Driver/Compilation.cpp:251:13
#<!-- -->40 0x000074c8a99c23b1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&amp;, llvm::SmallVectorImpl&lt;std::pair&lt;int, clang::driver::Command const*&gt;&gt;&amp;) /home/swdv/llvm-project/clang/lib/Driver/Driver.cpp:2194:7
#<!-- -->41 0x00005c016a9eeddf clang_main(int, char**, llvm::ToolContext const&amp;) /home/swdv/llvm-project/clang/tools/driver/driver.cpp:398:9
#<!-- -->42 0x00005c016aa20c05 main /home/swdv/llvm-project/build/tools/clang/tools/driver/clang-driver.cpp:17:3
#<!-- -->43 0x000074c8a4829d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#<!-- -->44 0x000074c8a4829e40 call_init ./csu/../csu/libc-start.c:128:20
#<!-- -->45 0x000074c8a4829e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#<!-- -->46 0x00005c016a9edb55 _start (/home/swdv/llvm-project/build/bin/clang+++0x39b55)
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 21.0.0git (https://github.com/llvm/llvm-project 4055be55b8814b31256ca3c8840bc73bbe5e3d0f)
Target: wasm64-unknown-emscripten
Thread model: posix
InstalledDir: /home/swdv/llvm-project/build/bin
Build config: +unoptimized, +assertions

</details>

This might be related to #63182, not sure.

@aheejin aheejin self-assigned this Feb 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:WebAssembly crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
Development

No branches or pull requests

4 participants