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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]`-test-func-erase-result` triggers Assertion Failure `results.size() == 1 && "expected a single result type"'
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir
      </td>
    </tr>

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

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

<pre>
    Test on commit: https://github.com/llvm/llvm-project/commit/a9882bda96228ca23e166a817f93a7dbc99763cb
steps to reproduce:
```
mlir-opt test.mlir -test-func-erase-result
```
test case:
```
module {
  llvm.func @test_slice_invalid_start() { }
}
```
crash trace:
```
mlir-opt: /home/workdir/llvm-project-19/mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp:235: LLVMFunctionType mlir::LLVM::LLVMFunctionType::clone(TypeRange, TypeRange) const: Assertion `results.size() == 1 && "expected a single result type"' failed.
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 /home/workdir/test.mlir -test-func-erase-result
 #0 0x000060e47e21d998 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./mlir-opt+0x108a998)
 #1 0x000060e47e21b4be llvm::sys::RunSignalHandlers() (./mlir-opt+0x10884be)
 #2 0x000060e47e21e3a8 SignalHandler(int) Signals.cpp:0:0
 #3 0x0000732c870b2520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x0000732c871069fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x0000732c870b2476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x0000732c870987f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x0000732c8709871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x0000732c870a9e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x000060e47f751836 mlir::LLVM::LLVMFunctionType::clone(mlir::TypeRange, mlir::TypeRange) const (./mlir-opt+0x25be836)
#10 0x000060e47f62ba2e mlir::detail::FunctionOpInterfaceInterfaceTraits::Model<mlir::LLVM::LLVMFuncOp>::cloneTypeWith(mlir::detail::FunctionOpInterfaceInterfaceTraits::Concept const*, mlir::Operation*, mlir::TypeRange, mlir::TypeRange) (./mlir-opt+0x2498a2e)
#11 0x000060e4813c87b6 mlir::FunctionOpInterface::getTypeWithoutResults(llvm::BitVector const&) (./mlir-opt+0x42357b6)
#12 0x000060e4813c84b0 (anonymous namespace)::TestFuncEraseResult::runOnOperation() TestFunc.cpp:0:0
#13 0x000060e4814ee3bf mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (./mlir-opt+0x435b3bf)
#14 0x000060e4814eeba2 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (./mlir-opt+0x435bba2)
#15 0x000060e4814f134e mlir::PassManager::run(mlir::Operation*) (./mlir-opt+0x435e34e)
#16 0x000060e4814e9e6b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#17 0x000060e4814e9acb llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#18 0x000060e481592df5 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (./mlir-opt+0x43ffdf5)
#19 0x000060e4814e49b2 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (./mlir-opt+0x43519b2)
#20 0x000060e4814e4c63 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (./mlir-opt+0x4351c63)
#21 0x000060e4814e4e72 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (./mlir-opt+0x4351e72)
#22 0x000060e47e1fcc27 main (./mlir-opt+0x1069c27)
#23 0x0000732c87099d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#24 0x0000732c87099e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#25 0x000060e47e1fc795 _start (./mlir-opt+0x1069795)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWF1v4yz2_zTkBjVywK8XufC0jf6VWrVqq-d_GQE-dthxwAt4nnY__Qrbqe006UxGz-5qdzRNHOD8zu-8gmHWykoBrFH0DUU3C9a6nTbrN2mZqoIF18X7-hWsw1phofd76RDN8c65xiKaI7JBZFNJt2v5Uug9Ipu6_nH4umqM_hsIh8hmECUblqUp4QXLYkJSwQiFVRyzdJWUGWVJwUWWJTEVHAW5ddBY7DQ20BhdtAK8xiBHcTD8D_J9Lc2Vbhx2YN3S_8JX_vGqbJW4AsMsXBmwbe2OBP0iLJg9hamLtgaMkm8oyDH2liw9HEZh4MW2tpYCtlL9YLUsttYx4xBJEcm8DEbJjQfsPyewwjC7w86wr-zwzkVks9N7QGTzpzbfC2mO3Hm1yhDZeAk_ITkimxvJ6t7R9_d_PNw9I7LpPvyv1_cG7FI0DaI5oZHX4Ic3rRJOauWncQdGc0RzPzU-TRf1o6LWChBJ_cgzUxUgco0nPzIstLKdHbm1YLw0RnHQB8EurfwHHJxFbxC9wSuMSIxIjBEh8NaAcFBghq1UVQ24l8POEyAEkQSXTNZQLFGQP93f5i-32LZ8Lx1mmLeVzxVtnM-ai3NUWtuCRWSDmSqwVKJuC8BuB7gPHWfiexc-r_vFMfEdF-2-6YMZLHH378noyrA9ZqZq96CcZ4CXQ7y6TD0V3l_JXowIDXDwFgRBEAcQJkBWRZalXYL2wbHvtn94MlK5juJrl28kHRcZ9udWW2eA7TvHX2OpXBcPkk6JIvIteFsFKcsyH66BweqIAQ85nGLw3KoXWSlW_x9TRQ3GHoJ-WkkachiVkCMlQFmKZ3CIpAPrfviQ4EH316PQASWhRKRJwElEAtzRGKrmLY23cXhVS9W-XVWq7SfE0upl3BELvchIK5wBroI4KwVu3M4AK7bfZV1fhp55-RE9OqYbJjGubGfepbTDJB6B4zlwliYlxYz7MrkIlnjBETb5BLviFwOu-AiYzgFZBll8GSD1IiNgNk2jMolWKY1_o9WNErOmd3J4aH8n05xEHFI68POlNKvmMiackWkrLsAxWffPB3aPzZ1yYEom4OPh1TDphrJ70AXUiF5_ZeVjg-jtxERP__-l281M_R3l11oJaNywA5B87qXHBgzzMJ9mfsWtJx0aZikjMDp02pzSFRVpwqcBP2FHP1GBOzhBt-6536pmTfObdH-AcNocjIvPkQoJjRI-iTI5JhXyrg0xpdX7XrcWK7YH23R9OhtMB-s821u_BfR8hubdqkc18WTXUw-rj3qgV05nykMAysszKfbYvOrH5olZmxescdp8aJwlhl9wQWxzxep3K-0DU6zyffsac61r_92q7uhZfLX_hDTilJejN8NjgzgjFxv0JBuo5VFx90s_eMZ_uYVTIa_qTllnukOCNp9Q5wt6zf3EwP2JGVDuTpV6Um_nncgZGZ0YzZ1YrmgIR7oP1pzMgbkzzioFGk6KMz6KXAYxxw2YUpt93tWl_ck5xbpiOGXsmIFi2ziD6PUo8aJbI-ChMojeTup06taH-7vna60cvH1uUA-1NI-Ne2BSXWtVympW65PZE3WWHBvHBJ8ci-51JQWr-0qejJdDR9oaKGemzAUQST9sb5X8ewufbH-AvTbv39qy7FPwY30BJWtrty2gBgfnZfyWcOslz0cgG_cNVtf-OLwt1WyzmTjpV2P5L7dnZDe8JT1DJa0z75-T46sE6JcgEm6DDjittar-vZZ8EZmfpGc6S88oI0UZTQy3TS1droonowVYe-D6H0m6_8KS-HLFdO7FGamqZyjPDp_rpWVZlNHYS7OjdhNmnJxO5P-1Mjy316wyPm5wJDj2j4jpWf8Mm7PYsX4bzi8N2s-MO09axHQkvTomDcn5oF5C-nfZQTJx6fydfFUKQRK8Z1KdeaWPM0GSUfzoZTzLiuzCl3HiRUbA8BgQwgBvt16mv5LbHshdogLCiYro2OQki3APftboJBvKNPcv2FD4hUIb6K6KoBjADzd_i2JNi4xmbAHrVRIGZEUpCRe7NStZmsQJ5zzjLCg55bSEIBa8CAoecb6QaxKQKCCEBCmNSLgMKFAe0pAWGYlYEaEwgD2T9bK7v9SmWnT3W-sVSSkhi5pxqG1360tIf5dIUHSzMOvuVoy3lUVhUEvr7IjgpKu7m2J_jELRDYqDc_dVcYCdkVUFxk4uAjdM1q2Bv_RCcNGaev37l32DP36syT8DAAD__0Xb-nI">