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

    <tr>
        <th>Summary</th>
        <td>
            [Mlir] -one-shot-bufferize crashes in OneShotModuleBufferize.cpp:137: aliasingFuncOpBBArgsAnalysis
        </td>
    </tr>

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

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

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

<pre>
    git version: 881447fe443

system: `Ubuntu 18.04.6 LTS`

reproduce with: `/data/szy/MLIR/llvm-debug/llvm-project/build/bin/mlir-opt a.mlir -one-shot-bufferize`


a.mlir: 
``` 
  func.func private @main() {
 llvm.return
  }

``` 
stack trace:

``` 
mlir-opt: /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp:137: LogicalResult (anonymous namespace)::aliasingFuncOpBBArgsAnalysis(FuncOp, OneShotAnalysisState &, FuncAnalysisState &): Assertion `!returnOps.empty() && "expected at least one ReturnOp"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /data/szy/MLIR/llvm-debug/llvm-project/build/bin/mlir-opt a.mlir -one-shot-bufferize=bufferize-function-boundaries
 #0 0x0000558d7dfe9919 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:11
 #1 0x0000558d7dfe9dcb PrintStackTraceSignalHandler(void*) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x0000558d7dfe7fff llvm::sys::RunSignalHandlers() /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x0000558d7dfea49e SignalHandler(int) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007f78827bf420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #5 0x00007f7881dfc00b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #6 0x00007f7881ddb859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
 #7 0x00007f7881ddb729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
 #8 0x00007f7881ddb729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
 #9 0x00007f7881decfd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#10 0x0000558d7ea29f63 (anonymous namespace)::aliasingFuncOpBBArgsAnalysis(mlir::func::FuncOp, mlir::bufferization::OneShotAnalysisState&, mlir::bufferization::func_ext::FuncAnalysisState&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp:140:37
#11 0x0000558d7ea29754 mlir::bufferization::analyzeModuleOp(mlir::ModuleOp, mlir::bufferization::OneShotAnalysisState&, mlir::bufferization::BufferizationStatistics*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp:504:16
#12 0x0000558d7ea4777f mlir::bufferization::insertTensorCopies(mlir::Operation*, mlir::bufferization::OneShotBufferizationOptions const&, mlir::bufferization::BufferizationStatistics*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/TensorCopyInsertion.cpp:37:16
#13 0x0000558d7ea2b14c mlir::bufferization::runOneShotModuleBufferize(mlir::ModuleOp, mlir::bufferization::OneShotBufferizationOptions const&, mlir::bufferization::BufferizationStatistics*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp:616:18
#14 0x0000558d7e9c6d39 (anonymous namespace)::OneShotBufferizePass::runOnOperation() /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp:187:18
#15 0x0000558d82f3cc04 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:0:17
#16 0x0000558d82f3cba5 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#17 0x0000558d7e00d9d9 llvm::function_ref<void ()>::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#18 0x0000558d82f3f96b void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#19 0x0000558d82f387e7 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:532:17
#20 0x0000558d82f38d07 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:592:16
#21 0x0000558d82f3a618 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:905:10
#22 0x0000558d82f3a54d mlir::PassManager::run(mlir::Operation*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:885:60
#23 0x0000558d82f2bd65 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:474:17
#24 0x0000558d82f2b956 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:542:12
#25 0x0000558d82f2b71c mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:625:12
#26 0x0000558d82f2b6b6 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&) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#27 0x0000558d830ab062 llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#28 0x0000558d830aa675 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) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Support/ToolUtilities.cpp:27:12
#29 0x0000558d82f28203 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:628:10
#30 0x0000558d82f285a5 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:669:14
#31 0x0000558d82f28778 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:685:10
#32 0x0000558d7df72f63 main /data/szy/MLIR/llvm-debug/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:325:33
#33 0x00007f7881ddd083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#34 0x0000558d7df72b6e _start (/data/szy/MLIR/llvm-debug/llvm-project/build/bin/mlir-opt+0x2713b6e)
``` 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWltz4yjT_jXkhooLgY4XuVAOri9VSSWVZK5dSEIy38qgF1A23l__FgjbsnIY5zB5Z3enpmJZILqfp5umW26qNW8EYycgOgXR-RHtzVKqk4sVb9f0iR0VslqfNNzAR6Y0lwKQHKZpEIZJzcKQAJQDlOu1Nmxlh0CMfhS9MD0M0hkKZzG8ergHMRrmKdYpWfUlg39ys_TzAZ5X1FCA5_qvNcDz66vLO4Dnbfu4Oq5Y0TebL52S_89KA_C86Hlb2U8uAJ6vWq6OZWcgndlLeCwFO9ZLaY6Lvq6Z4n-xrQYA5cMsJxzldsD9t18grHtRzuwf2Cn-SA2DIEQrasWkAGcQJKd2nlVnppjplXCPgeTcLz9eThta_gGNoiUDJH9hwkZxp8v7WXAw8LzlBcDzc07b4fapB02NNReePygqdC3VSgM8vxHsfinNtaz6lm1mslnZdYDkAUmsKley4SVt75juWwMBTqmQYr2SvYaCrpjuLCCcWUwkpy2nmotm3ovypjs9zVWjc0HbteYa4HS4DfAZ9JI3Y_fGsYtjO2ZnvTBgRcBca6YslMFXgoH2m07P2Koz641h7PwYAozZU8dKwypIDWwZ1QZKweCdfwpgDHACa8pbVs0Aym-vLvL7C6j7YsUNpLDoG6hYJ5WBRsKlMZ22QPEc4HnDzbIvZqVceWM8twnXumeWaEhFBbko275i0CwZLBXVS1jQ8g_nEVb2vXOQql91g3-gGXT_bpVsFF1Bqpp-xYTRH3SQ928Tcr69PrbbwPJ-XMheVFRxpq2zA0wQRE8IIRRFaZVUNcuyIHN7YnAJvdbDxa3iwjiQD24T4HQ3SdE_F1IbxejKOwEXZrDku3FuTOE2wn3fWesBPP8h-JO9wRtBWz3jogQkTzCxnh54KMEUSlUWcKL3sMD_UVG1TAGcPkpeAZx_h7JZapX1uuKJrkld1y_RfteLPZX1do98lbIbLX3YQBEgeeS1JBMtaZgxOKXwe2wdBmREX-gVS-okTXFS1CFGcLFQTBup2EK5ULdd-imNF3F43HLRPx03oh8GOrNUjFYzLWcI4FP0FIQhRjZSDTKisYygqkuECqgo1zaibfdj0_KiPL4qLzF62n7FMxJYIhwCgOezmf221hXrbDzpB4B6rR-dKqK3X93SM4s1CkZQ4301qiKNMkgL6TAepoapBh7cU05CaiUkXkIylZDgDDbMLAaNF5o1NnItHmnbH4ydC2ORt5JWK92UdJAbIXsOpF5w-pLghWgX9qlFJe1h_Tl5WYIAyUnoBWb7AllZV_EBnlJaH4mdjxBSV_HgIzbi7EVPRnFWx-STp6xPaADJbdAernYn72602EsN3K2XjmUfkN98zgpasCezE_Z8iQ9t8K_PakJnz8TTH0zpT6LwbajUAvuLDatbSkd8727-Ip73cNunuDa81B8_f76c3wiFluXY84v3-Q2TJKnfhsiFzfAemNBSncnO5hljim86prxW-aE076G56exfDUsptPnbcL7lY30pfAbsCXdZ-pZvMvHnIgjLt-GpXrxs0E959j-A8jfdPA5iS3vqaQ_3aM_KuCLZz6L4hCl2S7UemWTk6B_N1z6C-lm8TJMx0GgENMU1KUs0jpcVM5S3m536IG86iyqvaGek2oLb8ywHe7qXX9_lm5B5TQVtbPZ4BgspW_vZC_fyovK1wzAf4HARDJfSLSrVQKin1fnkp8kdQLgPz5s9ZYLNKRNPWStoBG3hMErYNwXWQrEakDM36jUlF8OUkratLRkXtQDk7G_A-oUt8qRoPpfd-7p5dyM_f7DZ_cPV3HNG24sno6ieLW2eH_v6wzKf7G1MhKqsyt5H-td6zccgxdkIUjpxpjqLi8GZRuH66vLuTAqzTcnYEyt7w_JyCLJn-55w4Ua5FH58z_aDq8TemgdSh89GLOdK0fWdm7Zb9vLuh-DGz30u7VMRb0evv-EeHJHiWMWuhiGe1mxCa5qw5DeNbL8gXEUEjwIWRlMyKvR-Mm55x1ou2CR_s1O3GOMvZ2fqTJdCG-VenNk9nL81YZSBbHS_pYoJcylqucleviQFecEAGR7lcTiYGIDGQTrRe8PElm6q9cHJ8jM6fwWmzL0KCpDHhKeYorD6CaY30PwKhdPUKhxvFCb7CuOiiiPYMWVzpSFS6p-8xdSm8q_jllSxatEZBcjZ7ol72auSXTcKkItX0uNxKJ9a8brl6qYz15SLMylq3ozW-Dw_D1K2evSq2C6xE-gpC5NwHDjCKWVZFMNOyZJpPaSWhzLWC_6fnj1j7JqtpFpvlhrNr1hN-9YsKtYyw15_xp7rF4fTOJ7nU-g71nBt1NqP7-Q8uNeBt1K2l8IwVbts_0tc9SBTRKELIdibIpqaIgnKl0H_hiZ5meoDPX-Xg6JXcrjvg_Q6sV9VexzkGzGOxr4RT30jLuKRqvu_-b2a8732wO9C8E8Lp3_LHtjVYd-J5C3X_95qcOv343IwJYgWKMb_AP_-p8W3T1TJW1OnE1PTOIlGm0d3LTe5qG4nucn_grm_odu9OWM8dm8UF40t_l-7_fnsaPfDrz0LfxjecsPZJqnHydgtJmU-TjEi_46s6LsSjXRU8xE0pTui0at0-_q9XNKhUs_f60o_4-q7OBgiUeg5CKYcJEn6JRz8HmDTcZE_bUtJcB0TuPkZ_oPamOd6bC43P4K59Jb4d3nbrpNNW0CFUgIXi5YX5UIbqsziPY0Bpe43HRjDpRt067gWAeLqro3scEpAETM4SPWNAl_TuOWaCXASkCJmvp1g2014VJ2QKiMZPWInQULCKEtChI6WJ2mKClqkUZalLAmiKE3SOikzFpA4CRBKjvgJRjgMcJChlMQhmqGClEWIEspSWkeMgRCxFeXtzCo5k6o5ck1uJwFGEYmOWlqwVrv2UYwH82EQnR-pEweq6BsNQtRybfRuBcNN61pOrXeB6PylZrShY45pyAU8pG3xrR6Jo161Jx9v5vNQH0_wfwMAAP__Cb-XkA">