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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Inline func.func that terminated with llvm.return crashes with "UNREACHABLE executed" 
        </td>
    </tr>

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

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

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

<pre>
    MLIR built at commit https://github.com/llvm/llvm-project/commit/159cac50
Reproduced with: 
`mlir-opt --inline temp.mlir`

temp.mlir:
``` 
func.func @func() { 
  llvm.return
}
func.func @func1() {
  call @func() : () -> ()
  return

```
 
trace:
```console  
must implement handleTerminator in the case of one inlined block
UNREACHABLE executed at /Users/haoyu/workspace/mlir-fuzz/mlir/include/mlir/Transforms/InliningUtils.h:119!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: mlir-opt --inline temp.mlir
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  mlir-opt 0x0000000102890d04 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x000000010288fd6c llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x000000010289139c SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001a56894c4 _sigtramp + 56
4  libsystem_pthread.dylib 0x00000001a5671ee0 pthread_kill + 288
5  libsystem_c.dylib 0x00000001a55ac340 abort + 168
6  mlir-opt 0x0000000102857c4c llvm::install_out_of_memory_new_handler() + 0
7 mlir-opt                 0x00000001028d913c mlir::DialectInlinerInterface::materializeCallConversion(mlir::OpBuilder&, mlir::Value, mlir::Type, mlir::Location) const + 0
8  mlir-opt 0x0000000103b0a364 inlineRegionImpl(mlir::InlinerInterface&, mlir::Region*, mlir::Block*, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void>, false, false>, mlir::IRMapping&, mlir::ValueRange, mlir::TypeRange, std::__1::optional<mlir::Location>, bool, mlir::Operation*) + 1320
9  mlir-opt                 0x0000000103b0ad54 mlir::inlineCall(mlir::InlinerInterface&, mlir::CallOpInterface, mlir::CallableOpInterface, mlir::Region*, bool) + 1440
10 mlir-opt 0x0000000103ada6a4 (anonymous namespace)::InlinerPass::inlineSCC((anonymous namespace)::Inliner&, (anonymous namespace)::CGUseList&, (anonymous namespace)::CallGraphSCC&, mlir::MLIRContext*) + 3264
11 mlir-opt                 0x0000000103ad3c18 (anonymous namespace)::InlinerPass::runOnOperation() + 1240
12 mlir-opt 0x0000000103ab7384 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 420
13 mlir-opt 0x0000000103ab78b4 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
14 mlir-opt                 0x0000000103ab9230 mlir::PassManager::run(mlir::Operation*) + 1148
15 mlir-opt 0x0000000103ab26e8 performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 504
16 mlir-opt                 0x0000000103ab22b8 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) + 704
17 mlir-opt                 0x0000000103b1d834 mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) + 656
18 mlir-opt 0x0000000103ab06e0 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool) + 216
19 mlir-opt                 0x0000000103ab0bd4 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
20 mlir-opt 0x00000001027337a4 main + 108
21 dyld 0x000000010707d088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWF9v4joW_zTmxSpK7BCSBx4oLfdWarcV7Vxp9wU5yQG849hZ2-kM8-lXtgMECjPM1TyMVltVxLJ9_v3OP9vMGL6WABM0ukWjuwFr7UbpyQwEGMslvNbcbgaFqraTp8eHBS5aLixmFpeqrrnFG2sbg-gUkTki8zW3m7YYlqpGZC7E--5z02j1bygtIvNAh8g8HuUlK0cRiu5QNF1Ao1XVllDhL9xuEJ3isIDSqBZc36jG4psbLgWXgC3UzdBNo7SjD7-HeTrdk4f_jt2qleXQ_WCURO6LSIZIjtH4ttuBsdN4qMG2WnZMxncXqOMD-Y66ZEKcMnfWhOENovfdeEdwIgmfKN5t6wzUrISPxpVKGiUAd7vq1ljM60ZADdLiDZOVgDfQNZfMKo25xHYDuGQGsFphJQEHYCtcCFV-Dlw-_WNxP539Ob19vMfwFcrWQuU8j8j8kwFtEJlvmNq2iMy_KP3ZNE41MvfeWrXfvnVjROZclqKt4DDxppk0K6Vrx-TBieZy_clyYYbO9XGcIxIHLV4e76ev99i0hQs3hot2jTU0Slts1c-HHzemBScVM1nhTrGAhmZmgwtWfvYgD4P4V8vKz7hq62aPejREUf6i1VqzGjO9bh3ITgn8vUA94eajXLUWm21dKIElq8G4wABpWg14q1q8Ye_gg_EmbOLfwPtuq1qNX6Zvf2KlsQHr1Qf5zrWS3uHvTGOURo-Pfz0tX__5dPv8-PCv-8XSkbhMsAo3iksPoEvF_GAaPtgQfY3CXxyRLI-qKPG6uL10arYmDF40l9ab9eZDk2SHTZp9WSpjNbAakRSRGebS-nwgt3iUBpFxT-Tp35EK2apKy3MqLFr5yteSiT99nLvAzHZS4pgEMeSiZTHNS3zEAJGspyhNksCCYix4YbbGQr1sBLMugIfVVvCix5KN0ixPygQvDV9bzermyNzkiIndaGDVOR7jGCDC3YblZ-5qCrnFJMsCn1GfT3mGw4iVNIkwK1ymeCjSjjS9BMVoXCZ9hLk0lgmxVK1dqtWyhlrp7VLCl-VmD9QOpa5Mja90ZpXHtMS7Sk2nd5wJKK0vBaAfpAW96iodndbMgubMxf-MCTFT8h204Uoikh1YPDe3LReV08rH2mHlLyZaOJ562zYnM4-qZNbzzLErp7ZvVnYeMlpEjKZJVzwXsOZKPtSNONLrg02n6gU6RKbH07e-EofZnk8EN3bJLWhXyRGdnS5VYBkXYUaqCpaqcWYZRGd9rBy9lzrDVgd0VkwYP3hXvEL0_mguDMJkz7bFE2saLtfnMV8wuT4D_H7a2CrMLpdxGARlmTjSdu-aIL5QShwz7Zkz3Wc-JZ3z8usqjHNmNUp6bINbXcj9nEMdxXPTWz9dZIWAixuOwiHY2lmUJJ1FcXQ-HFnFUpa4LsKkkttatSY0ltCa8yP9X5gxfTtfZzOfz9fQdib_YPPsj08GHrmxV25nQvyhWbPxmpxg6g6fMyUtfLU9J1OSdsU5jq9zMqtoGWc_DZFu5bPshdmhwZC9U8gFpxRjmvXDqp-hz82bem6cnGnFGp_RnbijkPOKnBaI46jvr0wlE1vDzROTbO28dUiaVvrzftVvxckuU2J60YSs-HkTXngDDseTMu227jVLf7lNfSIn6kEaq_0ZTekPXI83dFXGL3S6vzAN0j7IlQpd4Sj4drAlV8ZekRManUjf2XPW72cLW5x0jTweXXIXSSHDDWh3QpmWof5__2S2w3L3_ViazYZpqJaNPe46r6rVJTyttbvYdBD9IHf7_czdkpx-Sw2rk6K_5iUTCzCtcL04Ow-bk5WfNIZ-0RxFuwKRXuskQooMX1Lk72j-EctW8v-08AHLJ3_Cum1XqxDgHwkrWLFWuC4vwMJlYnrfYXLZ5x41v-JurO7es1zJI0OeBNfPjX1iXP4gen4PC39lLH04mrq2bKzeXsiX675de0EkWUZeUCaUOzz9Lgh-iBGfQ-N9Dl13vKdFXGW03y9MI7idyupFqxKM2Wn_m2TG_0Qmf3fH-dqY7u_g2aVGEqXQb1j_rwi_vCKEa32880R-bZeKiiq56JnuIFRuWDjynDTdV6u5XC9gdb1du9Nu1J09yPkrCBlTOmYJrhmXgWJPEONqK6r-5nE0rqIsw8ay7o1itMPh5H1zUE1oldOcDWASp2Oak1FE8sFmQsdRmcZFMlplQHMoCRRAaJaTikblOEsGfEIiQqM4Hkc0jkg-JElGq3G6SoCmNEsKlERQMy6G_tVX6fXAPxFO0ijK6UCwAoTxj-OESPiC_SIiBI3uBnriH-eKdm1QErnbtzlwsdwK_6ru8R3d4XCnwIcnZLthFtvuVbZ79-6_PYcXSTBhARFy7kEWEYIHrRaTv_8S6i39bwAAAP__RXBIyA">