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

    <tr>
        <th>Summary</th>
        <td>
            error in backend: Broken tailcalled function
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:crash
      </td>
    </tr>

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

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

<pre>
    Source code:
```
__attribute__((noinline, noreturn)) void bar() {
 __builtin_trap();
}

void foo() {
  [[clang::musttail]] return bar();
}
```

$ clang++ test.cc -c
```
musttail call must precede a ret with an optional bitcast
  musttail call void @_Z3barv() #3
in function _Z3foov
fatal error: error in backend: Broken function found, compilation aborted!
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: clang++ /tmp/test.cc -c
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '/tmp/test.cc'.
4.      Running pass 'Module Verifier' on function '@_Z3foov'
 #0 0x0000555c5503fe07 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build/bin/clang-16+0x21bee07)
 #1 0x0000555c5503ddfe llvm::sys::RunSignalHandlers() (build/bin/clang-16+0x21bcdfe)
 #2 0x0000555c54fc5f68 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
 #3 0x0000555c54fc5eff llvm::CrashRecoveryContext::HandleExit(int) (build/bin/clang-16+0x2144eff)
 #4 0x0000555c5503a6d7 llvm::sys::Process::Exit(int, bool) (build/bin/clang-16+0x21b96d7)
 #5 0x0000555c53d186c2 (build/bin/clang-16+0xe976c2)
 #6 0x0000555c54fcb75b llvm::report_fatal_error(llvm::Twine const&, bool) (build/bin/clang-16+0x214a75b)
 #7 0x0000555c54fcb636 (build/bin/clang-16+0x214a636)
 #8 0x0000555c549f8c8f (build/bin/clang-16+0x1b77c8f)
 #9 0x0000555c54963788 llvm::FPPassManager::runOnFunction(llvm::Function&) (build/bin/clang-16+0x1ae2788)
#10 0x0000555c5496b751 llvm::FPPassManager::runOnModule(llvm::Module&) (build/bin/clang-16+0x1aea751)
#11 0x0000555c5496419c llvm::legacy::PassManagerImpl::run(llvm::Module&) (build/bin/clang-16+0x1ae319c)
#12 0x0000555c55384ecb 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>>) (build/bin/clang-16+0x2503ecb)
#13 0x0000555c5610e929 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (build/bin/clang-16+0x328d929)
#14 0x0000555c56e9e800 clang::ParseAST(clang::Sema&, bool, bool) (build/bin/clang-16+0x401d800)
#15 0x0000555c55add4f0 clang::FrontendAction::Execute() (build/bin/clang-16+0x2c5c4f0)
#16 0x0000555c55a4d84f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (build/bin/clang-16+0x2bcc84f)
#17 0x0000555c55bb0673 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (build/bin/clang-16+0x2d2f673)
#18 0x0000555c53d181a4 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (build/bin/clang-16+0xe971a4)
#19 0x0000555c53d1487b ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#20 0x0000555c558bffe2 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::$_1>(long) Job.cpp:0:0
#21 0x0000555c54fc5e9b llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (build/bin/clang-16+0x2144e9b)
#22 0x0000555c558bf830 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (build/bin/clang-16+0x2a3e830)
#23 0x0000555c55882c0e clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (build/bin/clang-16+0x2a01c0e)
#24 0x0000555c55882ebe clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (build/bin/clang-16+0x2a01ebe)
#25 0x0000555c558a1690 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (build/bin/clang-16+0x2a20690)
#26 0x0000555c53d13e67 clang_main(int, char**) (build/bin/clang-16+0xe92e67)
#27 0x00007f66a4a4618a __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#28 0x00007f66a4a46245 call_init ./csu/../csu/libc-start.c:128:20
#29 0x00007f66a4a46245 __libc_start_main ./csu/../csu/libc-start.c:368:5
#30 0x0000555c53d10a01 _start (build/bin/clang-16+0xe8fa01)
clang-16: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 16.0.0 (https://github.com/llvm/llvm-project.git c3f0efe753e27105b519ae9283796d41fe574741)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: build/bin
clang-16: note: diagnostic msg: 
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWV1zI6fS_jX4hrKKgfm88IUsW2-SSipba7-5yM0UAz0yZ0egA4zX_venYPSFLK-UpOrcnCqvdjQ03U8_3TQN4s6plQa4Q8U9Kh5u-OhfjL2Tr-_jN_N60xn5fvdkRisACyMBsTkiD4jMUUm2f_Fr23LvrepGD22LaI1orY3Sg9KA6AJrY8GPViPaINrgV6Mk7riNgg1G1f2kBbdtN6rBK916yzfTMGLbUVQ9bB_iZ1TSG_NBCY6u3IuB61XAy-br0XnP1YCKB1Q84AnLAcAZC6l320-a40kpvUf0HntwfiYEvhVnJ-2MYsGHAYdveGNBgATMAwT8XfkXzDU2G6-M5gPulBfc-Z0bqYLoLspJ-yfruH3deU0Zm-SVxv2oRVCF2z9Zb8zrNNBzzwcM1hqL2Hx6wCq4L76BluHdvTXf4Gh-b0YtQ9yEWW_UwONL3hnrQSKaTXq__Po4f3rEbuzWymOOu3GFLWyM9dgb_OL9xgX26RLR5Ur5l7GbCbNGdDkMr7v_bjfW_AuER3SpnBvBIbrEXEustBhGCdi_ABaWu5cI11suYj5tLGysEeAcSOxieobXYSZ3zgjFPUhsR42dsGrjZxPkJ8_FNyzH9Wafx2SGSPPFmpXla8ztalyD9gF4EmpEl369CZ8nMc_CdMQWYHrEHvGGWwcWc49BS2x63KsBJkkaJBdGAl6BBhs5nUZYGPk6aq30Cm-4cxjRarmLxZfw4jeu-QosohU2Gq-NHAcIUqe4EK22rubnlP42TfwDrOrVXt0-7EFhTLCYPLTaJiKijGDyRgghRVGIoiCsB1LhGMe4vty7mx6-WKV9ZPl5ClV9ELL8e2uct8DXiJYhXEr7KYfrsOolostOaUSXkfnbrET0nrzRrAMgVVimezjZCRwpezgH5-uon9RK8-EnruUA1u1XzQWLQvaQWKTHFvNeFH1ZBzVcG_2-NqPDmq_BbaLTzWR9EfL2KwjzCvZ9YbSHN__zejNMoxOkKINoHalY4FHHaizxYELuNficjpnYhPwl8d8eITtFCH1_xMk5RcdAHt-U3-G4TFCeQ98nBOUnIeGl_CRD4rKdvhwbXeDOmOGq6DSlTPOhODbOZFaXgl5QA01VCppoKU8Y7KqiO3Jhqm1tLKftVE6P0_v5u9Jhj9TOb9P7Wn9yXhVdgqQ6RVKy8go1JSsTNXWipulrUfcX1GRdVYk6DW2TqilZVddHvCy_hBK1q1ATVaP-Xe8qWMLS4WV5mZqMA63qeg8mrHxyAqariuwKMFPlS6DsXl0HhFdFlgDJToDkWSOOgAyw4uJ9m_MHSIf1b0f9D-CwrBEJnKRAFazOQXT4qAV6XCt_P-34v49-M4Z1dzT8oPhKG-eVcI96Fbu2mMNHIj8Bl2CfgFvx8ntsWVyS7keiYZv7P9AXpJ65XYG_IPQr16tzIgfinrxVevUV-vT1js_5icItCfNtGi6w83IaGbX69wjtxlvEFum-tflulYd2t3sdTZLQ83HwrYQBPFyYyB7D3-WSUBAGokvim5T3MiPQ0OaMWwuj3bjepf5U2p8t125q4v5fq5PAz5-ed7vBNanHaC2b2MQfoCWlv4QGakKOoX0JTdH86Tk1_ARrnhTKawtmTjJZE5JASDaAgkuZ9wmEpQ0-7qO-3XxAjB6uawlEIfI-tVmmNnNZ5326CELvDPZn7TzXAhKru_SrPwd5TThoJ0Sd9wmuZPMouo6UFUsqwYTgAO_VCP4RzQf4YSVdxCNpX1YswVOfbs4Zz7EQWbvmKi2Bc2v5e1jIbCFeuN2t93lcNAucvqOLeCS6ChY0VcbzBFVzgiqvqw7vqFlkzzEVj7A9rfkw_AHCm20NPwMxBkxa9Qr2Y48Wmsi0ja67vgc6HewOhnbdeGsjEdOxb3tMfZxEwnkwHIfaXgcch5hNtrfxW2QLs15zLU_T_Szh-4K2O40mpexQY7cl7KgCtq14e8uy6UvHnRKh3KmAKXKUCIcX4WyvwhlrGj5Rx4ch5GM4rO7Hg8j8UCFixCfm4xRE8zaLQvWub_7FdOdDkH1ok5vuqjY5nCV4D8N7wuCPo3VdJ90klZ7S0ySpWVLL_ueCfIlDzqBmSW2mLOWwpoLApxwe7jhOC2QkNqmKJxODwGedyw9E5ycnhOvcJJkgkLiZn7oJ3V928xfTuc99_MV0vyrnP2u9PhTFfYQ3XIXgbo9219KyTYO_RQ50KTlpT1DzrGw-XUcPR8_J_nhmY_yM1P8iORfLCqekbNIlUZ5seAzKajK924h3cOJynl-5sVIoq8TOrv2o-rLkOc_LrOa4bQfVhZLBrW_D9hVt4lnQ50ZEl7Pw6N6dhI1DdKk3fkB0eW7S7AWxeZUjNmcHo_WpUZoX8dq0VVr5UzvTY1B-G5XPBGLzjNaIzenRVtGcU5p4cs6Js8pZGZQXe93phRqTGeEkw5PWS5TXPSeHo-h-bHe1u7-6xP22n8Rim0k9VwPI6d4Z3pSPN_q4IsHi6ADfvmJvsAPA6qgpPDaEX8E6ZTTOyhmZxYl_7aJ3tgpmWU-gh6pgQKuMFF2RNRwaWrOqKWWe9VBUeZUfnJxOisGzt7psy_x21N-0-a5vB6XHt9uVHrdyLxa4xGsjIZyy8cY49TYNxTZ2GEA-qEjRMcMfiNQmHOXmWO5PxXjtwhLFuwj-g7_0t4Ibecdkwxp-A3dZWeWU5DUrb17uSFNUBat6QbqsziCTfV13NZeiZDIveXaj7iihjGSUkLpgRTmr-kzUUjRSENrVfYVyAmuuhlkIwMzY1U28Y78rSVbSm4F3MLj4sw-l26olpttIioqHG3sX49aNK4dyMijn3UGRV36Aux_8lOC5GkTke3-9fDPa4e7v_ywQUf8nAAD__-xR68I">