<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/55136>55136</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Cannot compile to wasm with multivalue support
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dsyer
      </td>
    </tr>
</table>

<pre>
    Trying to use [`mpack.c`](https://github.com/ludocode/mpack) with multivalue support. I have some code that uses mpack, but the error comes directly from there and doesn't seem to depend on what I do in my code:

```
$ emcc -mmultivalue -Xclang -target-abi -Xclang experimental-mv -Os -s STANDALONE_WASM=1 -Wl,--no-entry external/mpack.c -o foo.wasm
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/bin/clang -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fno-inline-functions -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=27 -D_LIBCPP_ABI_VERSION=2 -Dunix -D__unix -D__unix__ -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/home/dsyer/.emscripten/cache/sysroot -resource-dir=/nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/lib/clang/13.0.0/ -idirafter/home/dsyer/.emscripten/cache/sysroot/include -iwithsysroot/include/c++/v1 -Xclang -iwithsysroot/include/compat -mmultivalue -Xclang -target-abi -Xclang experimental-mv -Os external/mpack.c -c -o /run/user/1000/emscripten_temp_p7qr3thm/mpack_0.o
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'external/mpack.c'.
4.      Running pass 'WebAssembly Register Stackify' on function '@mpack_parse_tag'
 #0 0x00007efc0aedbdb0 PrintStackTraceSignalHandler(void*) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0xd29db0)
 #1 0x00007efc0aed9c3c llvm::sys::CleanupOnSignal(unsigned long) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0xd27c3c)
 #2 0x00007efc0ade0ba8 CrashRecoverySignalHandler(int) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0xc2eba8)
 #3 0x00007efc147ddee0 __restore_rt (/nix/store/wl60dr9p15rwf53gxz61ijgisc1zdjc7-glibc-2.33-59/lib/libpthread.so.0+0x12ee0)
 #4 0x00007efc0b23bdac llvm::LiveIntervals::HMEditor::handleMoveDown(llvm::LiveRange&) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0x1089dac)
 #5 0x00007efc0b23ce13 llvm::LiveIntervals::HMEditor::updateAllRanges(llvm::MachineInstr*) (.isra.0) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0x108ae13)
 #6 0x00007efc0b23d3e6 llvm::LiveIntervals::handleMove(llvm::MachineInstr&, bool) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0x108b3e6)
 #7 0x00007efc0ddf4de8 moveForSingleUse(unsigned int, llvm::MachineOperand&, llvm::MachineInstr*, llvm::MachineBasicBlock&, llvm::MachineInstr*, llvm::LiveIntervals&, llvm::WebAssemblyFunctionInfo&, llvm::MachineRegisterInfo&) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0x3c42de8)
 #8 0x00007efc0ddf8cbe (anonymous namespace)::WebAssemblyRegStackify::runOnMachineFunction(llvm::MachineFunction&) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0x3c46cbe)
 #9 0x00007efc0b2f5264 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0x1143264)
#10 0x00007efc0b039b00 llvm::FPPassManager::runOnFunction(llvm::Function&) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0xe87b00)
#11 0x00007efc0b039c6c llvm::FPPassManager::runOnModule(llvm::Module&) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0xe87c6c)
#12 0x00007efc0b03b5f8 llvm::legacy::PassManagerImpl::run(llvm::Module&) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0xe895f8)
#13 0x00007efc12861183 (anonymous namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (.constprop.0) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x1c4b183)
#14 0x00007efc1286588c 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> >) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x1c4f88c)
#15 0x00007efc12c155d2 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x1fff5d2)
#16 0x00007efc1182ed09 clang::ParseAST(clang::Sema&, bool, bool) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0xc18d09)
#17 0x00007efc133d1cf9 clang::FrontendAction::Execute() (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x27bbcf9)
#18 0x00007efc1335cab9 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x2746ab9)
#19 0x00007efc1345051f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x283a51f)
#20 0x00000000004164d0 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/bin/clang+0x4164d0)
#21 0x00000000004138f9 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/bin/clang+0x4138f9)
#22 0x00007efc1301e1f5 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::'lambda'()>(long) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x24081f5)
#23 0x00007efc0ade0cb3 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (//nix/store/qw6p9lrvfldqk2wzh4bnybsmnw4xc3hg-llvm-13.0.0-lib/lib/libLLVM-13.so+0xc2ecb3)
#24 0x00007efc1301e56c clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (.part.0) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x240856c)
#25 0x00007efc12ff1a47 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x23dba47)
#26 0x00007efc12ff2459 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x23dc459)
#27 0x00007efc13002281 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/nix/store/knla03zmbsd5qgmrn6lhhj78sjgqa2r0-clang-13.0.0-lib/lib/libclang-cpp.so.13+0x23ec281)
#28 0x000000000041167d main (/nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/bin/clang+0x41167d)
#29 0x00007efc09ce2780 __libc_start_main (/nix/store/wl60dr9p15rwf53gxz61ijgisc1zdjc7-glibc-2.33-59/lib/libc.so.6+0x27780)
#30 0x000000000041327a _start (/nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/bin/clang+0x41327a)
clang-13: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 13.0.0
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/bin
clang-13: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-13: note: diagnostic msg: /run/user/1000/mpack-cd9f1f.c
clang-13: note: diagnostic msg: /run/user/1000/mpack-cd9f1f.sh
clang-13: note: diagnostic msg: 

********************
emcc: error: '/nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/bin/clang -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fno-inline-functions -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=27 -D_LIBCPP_ABI_VERSION=2 -Dunix -D__unix -D__unix__ -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/home/dsyer/.emscripten/cache/sysroot -resource-dir=/nix/store/w2gkjafvdid2xsbipr7mjmn15921ghw8-emscripten-llvm-2.0.27/lib/clang/13.0.0/ -idirafter/home/dsyer/.emscripten/cache/sysroot/include -iwithsysroot/include/c++/v1 -Xclang -iwithsysroot/include/compat -mmultivalue -Xclang -target-abi -Xclang experimental-mv -Os external/mpack.c -c -o /run/user/1000/emscripten_temp_p7qr3thm/mpack_0.o' failed (returned 139)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWtty2zgS_Rr5BUUVrxL54AdZtifesmOX5Uz2jQUCoASHtwCkZeXrpwGSEiFbTjITa2ZrJ-VIFK59Tje6GyCSkm5OH8SGF0tUl6iRDI2Cs9HEzitMvowJPI2C85Ebruq6kiNvNnIv4W_J61WTjEmZw4-soSUpKYNH3WvkRmgNDVDeZDV_wlnDkGyqqhT1GF2hFX6C32XOkOqE6hWu1bwSdZ3nKGlqKGaICVEKaJVDJeWCkTrboFSUuaoVDOGCIloyWYzcaY0kY7nCQFnFoKIs0FoNfQVNEC9QvtHzKQj2-cjuPwFf-9f-dH3EckKQlQ-Et_5LMgwEWTUWS1ZbOOHbMvZcMcFzVtQ4s_InZN1KZEm0eJh9PJ9d3368iD_PFjcj79xB1ucM0FlWUVrQXGygb81EgbOeuDHMW6K0LMdrLPNWorvri9niAvhLcl4jDNwskWCKS4XV1ArUyXGWPeXjUizhtyaIFwQUxDShRGC5QglMVQtMmOK6gsFESZiUjIJWGtEWq55YypJwXEOFaAokieBVPW7FWtQwCKJNXm0JtcdI_7sT5VLgHAFXjeJFyYdAmoI_w6esS6EsZe0uvzzi9Ily6j7LhFdimj_mhRNErrNcrUOL5e2ErLAUJMsd22N3qlBy0PeloRGk-PJcqym-FOW6GPRF1vnFzWJ-f3X3cPERWSlfFjC_xZ4Jq2peFqCsFPTBi4wXzEqbgnSluZoUWWB8MB8T1jIrE9AwzjiWFgalbSQHZOcpzmDN9M1ZgZOMDWWXj9njtppyqeszKUCwON6JFuf4sRRxDCO6L6p40VXZ-1U1LzZtp6mqur46m9_dxbOzq_j3i_vF1e3HbrwGyNd9jYc4BpvUiwya8bzKOOH1lgSLMiBZYPW8WwJcrWy5kaIsa1BDZ13wtDi_RpbV13jgMy5XsHLhi8oNE_A93tGiFIjJStV2PZAlWGt-wJJo-_8qi8l40lsMfDselNtqeVgcpsJpraX7GWF3wN8ghIzcM_13-eT8AH9gaRW4q7_keF5zKNqnQAEsYfgER6vQObatGNhhjGuWV3E1_Sq8epX3_WN7XLaL2-kW98ibszIdeReowgLGQiCy9rYpSnnG2sZu13iu_PuSwfLRRtRWel3lfVMUKupU4GZAvullZ3boThXcwBJbKlGnypHnJW0yplq9RAiFnU_yD4z8mSUzcG95AtHjni25hCGQdmA83XQz9Eav2o_8NvrFGmJc46Uq1FNAtWcj-xnos6csJTZmNKGJDU6PF7Ue80F51gX4GZx9AC-aKRDhU8npyJ2pyAi_Wm9tWvfX9aSKMvGUZvTrF3f9beUnxSaRebH2n4m3WrYm3dqu1Rr09vP6-vcbVSVLsDf7mboRiARz7WR29mSOiEeQGlF5b28G9tg-zDOGi6a6LVoAIGtTSHiEEJCVavUcR_4piGfI7xryU2YnOERzFc3uGSmfmNjsMw7qOI60xGUgjCGtN5DW8aeUMmajOAYHp6aPIXS3Yu35t2xiUxFVTiDWaeAtn79NHP4I5kqcb_SRTCEE8YSAV_M8K4iGElX1SjBMQSLl10Amx4UZDZH8IYGJ6yUUDw3gmj-xqwLWBfidzhQ-3FxQXqvQoH6tNLE3QPU5BFgQ3-x7Dx4JMEyOQ7ljhxHIbwAM9gAS5ng_A7CpKGQ6syzTUKSB8Aa8PyQBV4WsxW4Vj7kUWBF-JMgYEBmQJ3uQqccmb0PeafENfBOdgpdldjRkCQhuIJsOkVGa-pSFEASe2GUpFuDaM_ZJsqFz0qt9jl5AuoUYCZg7UG9o9JXKMyw5OctKtSf5me4m7_tdB8Goj3hXRVoemqKPV9s2x1CJR3wXGDdUEu6pJCSJCsghLspik5eNRAWGfVqltxXRC6yAYxtxdR2kI7dFB7In4jWj3NUdD_wEsBngI3OlpYE78V_qqhdVJTADkK-iOzosx_E9kHoLSyUFRiaT2F6U2PYA1uWdQtJnYv80QCycJrZt4HH28ZAJ-QE8Nzq7NI2vKzoeFhDVwOLuYUmCNBxgydgSk24pDVBdwSZui-zvRRSBwAYiIytyw4njhN73PMhFzuvehXxgWdXrbVj-GTZUH9l6qFs3bDd7uu0ZuB3Yosw685wjWdMu5hf8a8PiCpy4N99RJfA6rtaC1ywG_85wbnSiLMWwQ4spy1jNvtMR9knwv08YSAkBoxJlNcwaTBV8KTJse9_yRNLg6zIXxSRbrR6noXxcfsWusC0N7IAO2jpSVSoTVMmCWvfET4BoQxP-niaCMCRowJhit2PttqmrpjYJPed4WZSy5kReFEtwfF3wGjT5AOkoEwuGBVnddgctGv3LpmqT-BsrvtPqQW-Av9PoGp5ea7LT0KKGfdrynqV7wbZbHLO9Af8xpnMUO0nBDAw7CQw7IU4QUPcVeuZAdZP3S7PdgsEuuJCZ3vZ_KvieAc0WD9Cnhr284Y_eG2GapgDAQDhMocEfuYza0RDhnToBAHFN-Rcsx0aevJ8vvzMS4oQgpwFkmDE7nkcdkhpALoUifGvK7TJ_ZqSpmRb5SJK70yQByQzRQ1P0gOAkMh1EXvFMpcCyxgVhhvD90gwPYz2iiblTfwLSG_AiA54f2IGTGs62BbJD-VQS_BLUCxaGp0nvDSv0MEg9hOX2uWP7z3cmPrURIU6cY25mHjMh8Ea5XG9OVlj0nnmmvRu4W6MMCl6clb3DiwMNqxXaQOXsofJCWEa9hubOg17lA2yLHGfZ74yAbG3q9QrEg-b3K5EoQQ0krmF2tsOcNNDUDsJef-gZC60dXdt6AyW4bkIAn3pfFKeFArezRypgm9u5fGAGzDNXG-09x_KqFewK22CNM6NwF6P7EDgIoXFMnmEv0_5I1A5dxUuupNLUG41VQVwLzNU7qLZ6bzhAp1abOgTq69spZzunri2x1ajuM3KnGc4TitWp8JYtwGockL73kvTtEDRqqNzbPyQlyfAIzDgu7eOvrrlvigVOWbYxNPa2dRzrbBUwGCD9fbsOJkbu-v9ol3pzUWFRH3FfoQwwMPesrpkvpqmD_elB3eh4hl9kI73CjOC311E1OLQHeKPprPPFW86OwJJHEyDBYGmyx5LrB9HPsvSfMpGHKYLaaw4QD-yBXsSsrdlVWL16nXenqT_Kam-bfwO5xA_MsGfmwbbtuqFzCMj54NnIwl5Jvw4p5bjkHolWRoA1g9ZwLy9yJlOKVKb37omNmskQxTiLjQhzp6F6uabAgMsFJxgflutPv2Ejip9Jl-PDhEOJvP1UGKwQo1aW98_7YK6tML2mwY5Qd61j1hqaujWl90TqNpU2sBTDboK297TYM6_by1iOp41MXQOzntQFI8kY4oMtyXAmBFYr1Tvz7kaFrmkPatTEB-_kdA31O0v1ap-pI0tUlRJY0lV6j5OBeOdcQ_jFDL7gqijVacwM0e3BFsrlUs_cKfkv_A0um3V3uWYPD7P5B_Tw4QJd3l5f336--vgbury6vligh1tdfPbpN3R_cXd7_zDqb1fdvXZPK5TKKxy8q7VtIBjS-QTU4no75A9S8PrVEX1DwiI0Sp10TH71gHL1J7T0i3Sl7v8ZK0jn-f9eX_v3-tq_19f-B6-vgWl1sQ7coWB1I9SFAQh0uxje3wE-oacejbwIn9S8ztjpHBfgdFTIVEdvKhyqhXrobvNJI7LTt65JqySx_bLAlT9CkqgYlLJR100ug8DxJierUx-HbuBFUeB7zI-YTW3H9uyERJDNUs91TjKcsEyeqmvarluwNdJDwPMoOD_hpy7kvLbvTqFXZEdjOvGcaOJPfeI4hBBv5NsMEqRse0_4RJxqkdTlYajMYOOwu0R8AnFF3bBgejoYHzf1qhSn2sxO9MSnWvA_ALNrgt0">