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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]-one-shot-bufferize="allow-return-allocs-from-loops test-analy triggers Assertion Failure `idx < size()'
        </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/6548b6354d1d990e1c98736f5e7c3de876bedc8e
steps to reproduce:
```
mlir-opt test.mlir -one-shot-bufferize="allow-return-allocs-from-loops test-analy
```
test case:
```
module attributes {llvm.data_layout = ""} {
  func.func @main(%arg0: tensor<13x21x3xf32> {bufferization.access = "read"}, %arg3: tensor<3x2xi32> {bufferization.access = "read"}) -> () {
    %0 = "tosa.const"() <{value = dense<0.000000e+00> : tensor<f32>}> : () -> tensor<f32>
    %1 = tosa.tanh %arg0 {__inplace_operands_attr__ = ["false"]} : (tensor<13x21x3xf32>) -> tensor<13x21x3xf32>
    %3 = tosa.pad %1, %arg3, %0 {__inplace_operands_attr__ = ["false", "false"]} : (tensor<13x21x3xf32>, tensor<3x2xi32>, tensor<f32>) -> tensor<13x21x3xf32>
    return
  }
}
```
crash trace:
```
mlir-opt: /home/workdir/llvm-project-19/llvm/include/llvm/ADT/SmallVector.h:291: reference llvm::SmallVectorTemplateCommon<llvm::StringRef>::operator[](size_type) [T = llvm::StringRef]: Assertion `idx < size()' 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 "-one-shot-bufferize=allow-return-allocs-from-loops test-analysis-only analysis-fuzzer-seed=91 bufferize-function-boundaries"
 #0 0x0000618ef84ea3b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./mlir-opt+0x10723b8)
 #1 0x0000618ef84e7ede llvm::sys::RunSignalHandlers() (./mlir-opt+0x106fede)
 #2 0x0000618ef84eadc8 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007e1b65e64520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007e1b65eb89fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x00007e1b65e64476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007e1b65e4a7f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x00007e1b65e4a71b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x00007e1b65e5be96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x0000618ef8a575c5 void llvm::function_ref<void (mlir::Operation*)>::callback_fn<annotateOpsWithBufferizationMarkers(mlir::Operation*, mlir::bufferization::OneShotAnalysisState const&)::$_0>(long, mlir::Operation*) OneShotAnalysis.cpp:0:0
#10 0x0000618ef85f871e void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (./mlir-opt+0x118071e)
#11 0x0000618ef8a50d90 mlir::bufferization::analyzeOp(mlir::Operation*, mlir::bufferization::OneShotAnalysisState&, mlir::bufferization::BufferizationStatistics*) (./mlir-opt+0x15d8d90)
#12 0x0000618ef8a59831 mlir::bufferization::analyzeModuleOp(mlir::ModuleOp, mlir::bufferization::OneShotAnalysisState&, mlir::bufferization::BufferizationStatistics*) (./mlir-opt+0x15e1831)
#13 0x0000618ef8a6852b mlir::bufferization::insertTensorCopies(mlir::Operation*, mlir::bufferization::OneShotBufferizationOptions const&, mlir::bufferization::BufferizationStatistics*) (./mlir-opt+0x15f052b)
#14 0x0000618ef8a5c1a2 mlir::bufferization::runOneShotModuleBufferize(mlir::ModuleOp, mlir::bufferization::OneShotBufferizationOptions const&, mlir::bufferization::BufferizationStatistics*) (./mlir-opt+0x15e41a2)
#15 0x0000618ef8a2447f (anonymous namespace)::OneShotBufferizePass::runOnOperation() Bufferize.cpp:0:0
#16 0x0000618efb7666df mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (./mlir-opt+0x42ee6df)
#17 0x0000618efb766ec2 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (./mlir-opt+0x42eeec2)
#18 0x0000618efb76966e mlir::PassManager::run(mlir::Operation*) (./mlir-opt+0x42f166e)
#19 0x0000618efb762192 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#20 0x0000618efb761dfb 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
#21 0x0000618efb80bae5 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+0x4393ae5)
#22 0x0000618efb75cff2 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (./mlir-opt+0x42e4ff2)
#23 0x0000618efb75d2a3 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (./mlir-opt+0x42e52a3)
#24 0x0000618efb75d4b2 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (./mlir-opt+0x42e54b2)
#25 0x0000618ef84c95d7 main (./mlir-opt+0x10515d7)
#26 0x00007e1b65e4bd90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#27 0x00007e1b65e4be40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#28 0x0000618ef84c9145 _start (./mlir-opt+0x1051145)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWV1v2zjW_jXMDWFDor4vfOE4Nd4CEyRogncuDUo8srmhSS1JtU5__YKUHUuKldbTmd3ZDZLYkshznvP18IikxvCtBFig5BYldze0tTulFwduqNwGN6Vir4tnMBYriSu133OLoiXeWdsYFC0RWSOy3nK7a8t5pfaIrIX4evqYNVr9AyqLyPo4lazTJM7LNEpiFrKiCCCsijyL0jqBrIoY5FlaAqtyQMEdCpbGQmOwVVhDoxVrK3BK_SOUBsdff7kXXM9UY7EFY-fuCs-UhJnZKTsr27oGzb8Diu4QIVQI9W2mwbZaztxFZWa1VvuZUMqpA2NnVFLxelGTe4wraqahKNYKwNRazcvWgsEou3X-mDNq6UbQV9VajKI7jAhxv9mdG9FNxrhuZTV3_zCKgz3lEpEckYTqbeBcb0EapVG0CqMDCQ_RoY4Iij45CSczqeVKzmlVgTEnPRoo63QhssKdvGggLzqQA79aVoFnfobDWPTNwE5JcJpilaHzSkljvc3d4GiFstuvVLTghzGQzqmrYB74H0DkNgi89D7Ozl6n_PjkKM7jGI_qgwm9Fo_EUrk7OiFwoDcbLhtBK9ioBjSVzGxc-DabDn9yiwipqTDg0Cd3PmKd5olwvAc0et4HFp2BNZR5qP0gdV-vx-nnXQt7dSkhBrevNbCrs9O1i1tXNG9fhtVTaWp22Gr641rvbFnv1B4QWX9T-oVxPeKeWVicSYnLSrQMzjeWd8-IrJ_2VIj_h8oqPd-haEmK0InWUIMGWQH2o6Mlipa9oc-wbwS1sFL7vZIoWvVGWc3l9gvUzhH-jg-XVbpjWURyw7_Dxr424CshuX32EbwkIrlzYJbGgHa1iFEacHZw1YOdkC77EclwTbkANu989Pjbp-XTJ2zacs8tprhst45ElbaOTq_mb25MCwaRNaaS4aMfsd0B7uJV0urFx-yo_snS6gWzdt-8BTGYY__zqNVW0z2metvuQVqHA88RWb9R-KWYnmkdEXKZ2X-a1g03MyXFK367qtvv30HPDABD0V0R4je5M8fEzu-zUrWSUc2dG8gxnRGJAhwcHFulYQ51HgONyrwXR_Nqui-Pmkvr3fLsc5vk50GaftsoYzXQPSKpqzYurU8Mkvc94wjxEAYZiUof9DcQ4QhEBgwugfjSyie-lVT8H5VMgDYnKr6oJ63BFUtPDxkby6ocDyQikh-xd7fNvGpcDgT-701QdBSUQVimCaRxQoKOyNeCl4isD3m6SeOZ4LI9zLay7R5Uc6PmqYcXk4QEA3DxUGaZF3WFG7tzy9XmhQtxnYIiLepqoCAZg46zFG-Nt_Na8HGWDmSnQ9kxzeoI09LV61WSSZ7V0UBy9k5yWF4tMywHMvOhzKSEIr1OZlRAMfRAMcgtmmRJleCvirNeIp-KcaMdt678U0Ryl7fdgAfPs1xJRJZO-ol_KyqE46hN7ZiaSqkstfDQmN-53d32e517ql-6wpiSusLnJ4M26ThYwtNO2eWRW56cInxsfbzFfhQi8Sbw62gulNwOpY6swCOR70vKUcCQiJI6z0Lo_HcWzMBSLrrv36h4QdHq_HCt9Deq2Wd7XKo8uGkn_FpUBvb-TsXLg2aOPSa4KMyDLDxzkbM3HOVLwIrg48h4uv8OD82fG9wjZX84b5BibhY3llfmGN-LJicsZ0UwMJmMTC7yKPwpk-_9K8nI8PPNv5HREOZRODA6Ghqd5gkpP9bLpeuVnn1julKNX7F_MeADUx4a99_0ivovcEQdJKQcOCIeRb8KKflYr27lEX8X69u3bulX8uDf7wuIQ0oGvkiGviBxnNVuMpVKvu5Va7CkezCN77SKi_DhkRrT81MvLXxP9DbuMt2mfQRllqYpqyeY9qF5Vg-NU7dktPHUetQ6iIPHM07J6WQ9leM9lXTrqHOFS6WE-2yl39RhH7WRMQFIWT3waja2CSpytU2PvAHBJYxqzg19g5r-6Ub2JzlVn6Wx2r9fKP1O6nBALzlP2B-pBmk_y1qdEnsyO50foRpmZz7yY5GmMFJ_MuhiJozX_8t66zBNh0tiMdJLwoLgBnSt9H7pl2jzg_cOY9nxlWFHNbBNY_XwzVa1uoL7resOJmr-_rfPX1ZKWjjYd46_F1w_NPaecrlSsubbfmOEe08v1hwJRvaFrC57fchvassrKr6AaYWd7k-mJri38pP5reT_bOGd-fewV_q1Y4aBuxjUtBV2w0CAhek5rh_9NOyexkGYalovevFnw_mX23NGd8epgMp-gS03Vr--z4-PcmCyOf5bRObHGTpoSss8KCkkPdtNI7hdSvaoVQXGnOD-R_Luv7AqPhyxurh7NnV7glSjIqKQ9EmVkCHpJFVdk8vp_L9WjFPrXVzXg_WORCMXMUKjSRcdl-tqR7uFeXlt6H5k3yTuhNBogDse447L6dBeg_uPAozLoWOHbW5cFQnL8J5yObFjl4QJywYSxvtKpXtLvm73pxi9hpLxjlIJcYA3GzdtYyzVdnOCeI0WiIda8rHtYZzgTv6k9WF8rt1lqbQFvxNRKQ1-MxrYWcXpTOGGLSJWRAW9gUWYRWGaBnEa3ewWKaRVXqaEhlkeBmnGqqSoahrWdRSWpA5u-IIEJA7DMAnyOIujeUVzRllICEAdpVGA4gD2lIu5P_1Tenvj99EXYZhGcXEjaAnCLLpjG58y_pjmRi_87nvZbg2KA8GNNWcJllvhT2tdn4WSu18_5cRW8-0WtOkdMqwpF62GycOGm1aLxR8_RTg64OuC_CsAAP__9qdAaQ">