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

    <tr>
        <th>Summary</th>
        <td>
            clang crash when compiling to wasm32 with multi-value
        </td>
    </tr>

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

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

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

<pre>
    Minimal repro C source:

```c
struct a {
  int b;
};
int c;
double d;
long double e() {
  struct a f;
  if (d)
    return 0;
  if (c)
    f.b = d;
  return f.b;
}
```

Minimal repro command-line:

```sh
/usr/lib/llvm-15/bin/clang --target=wasm32-wasi -O1 -mmultivalue -c /tmp/nextafterl.c
```

Error message:

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /usr/lib/llvm-15/bin/clang --target=wasm32-wasi -O1 -mmultivalue -c /tmp/nextafterl.c
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/tmp/nextafterl.c'.
4.      Running pass 'WebAssembly Register Coloring' on function '@e'
 #0 0x00007f37c8b1a451 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf04451)
 #1 0x00007f37c8b1818e llvm::sys::RunSignalHandlers() (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf0218e)
 #2 0x00007f37c8b19801 llvm::sys::CleanupOnSignal(unsigned long) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf03801)
 #3 0x00007f37c8a3d70f (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe2770f)
 #4 0x00007f37c76ef520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007f37cb4287df (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x38127df)
 #6 0x00007f37cb4274cd (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x38114cd)
 #7 0x00007f37c8eaa00c llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x129400c)
 #8 0x00007f37c8c56d72 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x1040d72)
 #9 0x00007f37c8c5e333 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x1048333)
#10 0x00007f37c8c57916 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x1041916)
#11 0x00007f37d05298b5 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x19228b5)
#12 0x00007f37d0889701 (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c82701)
#13 0x00007f37cf693ebb clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0xa8cebb)
#14 0x00007f37d0885775 clang::CodeGenAction::ExecuteAction() (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c7e775)
#15 0x00007f37d12bb0a7 clang::FrontendAction::Execute() (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x26b40a7)
#16 0x00007f37d122e1b6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x26271b6)
#17 0x00007f37d133904a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x273204a)
#18 0x000055c44e1939e0 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-15/bin/clang+0x139e0)
#19 0x000055c44e191bab (/usr/lib/llvm-15/bin/clang+0x11bab)
#20 0x00007f37d0e929b2 (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x228b9b2)
#21 0x00007f37c8a3d46e llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe2746e)
#22 0x00007f37d0e92478 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x228b478)
#23 0x00007f37d0e5486a clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x224d86a)
#24 0x00007f37d0e54abe clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x224dabe)
#25 0x00007f37d0e718ff clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x226a8ff)
#26 0x000055c44e191311 clang_main(int, char**) (/usr/lib/llvm-15/bin/clang+0x11311)
#27 0x00007f37c76d6d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#28 0x00007f37c76d6e40 call_init ./csu/../csu/libc-start.c:128:20
#29 0x00007f37c76d6e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#30 0x000055c44e18e3b5 _start (/usr/lib/llvm-15/bin/clang+0xe3b5)
clang: error: clang frontend command failed with exit code 139 (use -v to see invocation)
Ubuntu clang version 15.0.2-++20221003113220+5f620d003fda-1~exp1~20221003113231.72
Target: wasm32-unknown-wasi
Thread model: posix
InstalledDir: /usr/lib/llvm-15/bin
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/tmp.tTiXXhik2w/nextafterl-3d9fcd.c
clang: note: diagnostic msg: /tmp/tmp.tTiXXhik2w/nextafterl-3d9fcd.sh
clang: note: diagnostic msg: 

********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9WVlz4roS_jXwooKy5f2BB0LIzJxKLqmEs7xRsiyD7ni7kpyQf39bXsAiMEuGMynKsbV0f_rU6m5JcZm8zR54wXOSIcEqUaIFkmUtKBs585F1O7L6p2-1P9p-SyVqqhBBo-CmLUGIFwrFI6f7HgW3h3ddQw9fSVnHGUPJoSAriy3qStkIhyMcDeUedKWHHqAsRdAygaZ9CYIRqFoUyHrXjBrN0mmMRs7tAMChK1QZAzDHPiTEZI2WeU6KZJLx4iJzctcV4LtaCnhmPNbP7CWf2B68xbyAJ80IsDGZKCK2TAHOVyJzB0_gH0eTlY0meV5nir-QrGZoQmF8dyqv4FmwvSKpYiKb0m8gXwpRCpQzKcn2Itj28_F-OX9eIlnHOdcTENdbPeBSKKRKtFOqkloAvoPflqtdHU-BiW5Q_diAn_8yquCTS1kzCS8IuAJzoVmdMKR2DFFB5A7FhH5VgoDx4QWqGmYpwGRJb5NQrHsSKUvKiYIKURdIUsErNW0hPysQgpIaGOmHZk1R8_coyq0gOQJi65wVSmNHv3E27A7HyFmwEmx5iSoiJBOIKMRgWGWKUp6xtjHuGi9KoGjLCiaI4mXRVjpd5VNdFBzwVcAIaA7u6oLqVuhRFzyQAmYYxhYgKMrLpIb1BV_nIeKgY9C9IPxvFs9hMvI4e0NPbMsldAR4WSmgVack7QFoNa7F9L92hY2wYyFrb8FfkDoBDWObuJ6NGkuBmXLm8k22L48gUDXzuG6NITw2EuR1U4JDYATsy9cGAW0bf6Hdxjencjo9VvH4_v6vB6idynJqj_CNtU8tF_AcHQUAtk8Ah3bIzgEGpp75tiDZZ7DOjAnZ-7Bfx4RBpYEJn2CKQussiYuMkaKuVh0ygFIXEl5hzWh3eyV4Dmg34DkGPOIkgZX-uiKGA5BjKHKHigKfpR62OkWtnH3ob3xXe-R6P9kWdVtBtVC_Eepi6GLI9IYyYxeHQXIF8E5oYxBkaPJPNAUuTa6iyQZBhqbAmBBGiGXRgb08ELqDmNU7Du03uoVWF6uiLzaW4LHQv4oV2ThyAZSBOjRQU89PAjxAffeogfb-7XfjtVwL4Bh4oxO8zIGV8H28D41PNtD2RVfDGgKUA1bt1KwTrEFk-wOsGdsS-tZ54iPqL3mVHZD_u4htAGQgHvrhxPJwFMYeaiJzi2AJ2ckNhAsIoqtaVbXSKd-x-paTbQFBg1O5LLY6Q2sjx6DJZ0YSJp4ZEXS3qrS1SMjpCqneN9UB-RMrvtNq3eQL32l0D2_nmhy5fVY6uD6x1CzuKZ-fCOxImHf2Drm8StqauuD_q9mmUmB-CzOcVq-CK7bpg-qgU8JSAsnNJmEZU-w7HZ2l_n3ABBr8E1pVjRF4rRVEGMMkG1aADSsIwyiAyHcVZTTEwSCOaWVGHEv9yGFxPGT6UWdu8-e1aWnPLCfdHMZlmR3_X4cVElKAYeB0T0jxgsA7Y62dRbSrZc9orVhvJB_KVM7TGDDQbsAbRtTExnFskWAI706UhTpa7BDfFZFhP3ZBsYHMN5FhZse-SVxeQTIuvsCyJEW7H37P3eWhfMwdnkePAwBnoA8M9I4TWS4xPGKL8ziIl5KS95jfDVJ7lCuhDhwMoAzUfVT3POq6zI6ciFmIUnuTE27GlLkQ5E27PWdBd0T03nHeuBhweUYZFLyUPPlh8C0BjclqBAbE6ASiHZP450TqHkOR2DKWKItwFOPrUAwuEmQZyuzT_Nv1h1uWhd5nPzFavjDxttAGu1fHPQxJWfZmzEO_n9uIZi40zS306IPO_lxqDxCNMeBTwtwgHBp3IvhLn0YtFvaiPXs5dR5njelY2MZd2BgNC4_htotmg2C42dA9zG77EcP2n-rIp7e-rY0ajXXBRgnC9SFDW30ijmSZXpKlGNTrJvNj0GjMubHyq5kLMGlQ7ZhUe27ok4tUN86CvHPUPf-GZznpqBtcyoK-0XRuBNPrkuEmMFaDDPeUDBKznyXjjzKWl5mA2nsOI7iQ7OVgFH8xCkbRZtuLg7VUhGtDac46fpy8zqT-RQqBIYNCz6QwsMM0vQT3dvBuxKszgeoS9b-RwiuFRewT4MQgzT-NOXrH03TuA2MPunEz848EOi3TUBqY5yeJn0QW2mw0bPBrRKgNBSobAEiPisq6H6B8kwmr9DluUamsG-tpp-kO6PRCeMBm7qA1PNXKXMgAdB9ecHWqqH3V0ieN9CnV4rAWiq2j0OicUGMo50ZxVrgTRBr2QfbhzLKbm5A5sPVspf7UBOh-B_5740NMH8Xrl_aYOe1SyP46AaUEsrMEvXK1Q2zPteNIGIKsReuuJUOTF30QLxlDfJDidWr-jOtC1Z1sMHGpD2Yh9lpTPAFQ8MMWxrZlgW1A1IVE6MZLfWwlUJImZGKPgiXbV_rfsKFjTwPcalh3p-Jz1B2L18XXonwtmuPxrskOdoeJPn1m-vwAVaXk-7aqyTozGOAtb0j4JpkmcUWp96NzlBy29iiXTU0_db_wG9yHdBcg8_V6vviM1p-X6G51f7_6-8t_PqG7L_fLZ7ReNcU3f35CT8vH1dN61F87PJ67wAilXroXLzEODQRkbXo-oZaog8gfGX9_uA_PqVrzf_7Z8a_4dTQ87Z84SZTSpL-XuLLU_p7rxyfrWlPWX16N2cz2fc-zIj_yx8kMgDkRGSuuMjZrl0N74fS6Y4VebBBP9E0HLKXWjtsV11zsTJqbnXEtstnH77u8EEfBeDfziOPChiC07CCMEsdPbdiXxp4XhtgNbcseZxBQMzkbebA6ccFeUSMC3kfe7ZjP2mVo23bguJ4_jUPX8dKYJnaAWUAtfeMCri6bahzTUmzHYtZAiuuthMoMcg95rAQL1BcCrFEH8kmtdqWYrRuv9AehX8eN9lmD_v_Fo8d7">