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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] -test-lower-to-llvm -one-shot-bufferize="bufferize-function-boundaries" crashes
        </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: 65688274b14f5d0e7d

system: `Ubuntu 18.04.6 LTS`

reproduce with: `mlir-opt -test-lower-to-llvm -one-shot-bufferize="bufferize-function-boundaries" a.mlir`


a.mlir:
``` 
func.func @addi() {
  %false = arith.constant 0 : i1
  %true = arith.constant 1 : i1
  func.call @addi_i1(%false, %true) : (i1, i1) -> ()
  %true_based_on_non_zero_val = arith.constant -1 : i1
  func.call @addi_i1(%false, %true_based_on_non_zero_val) : (i1, i1) -> ()
  return
}
func.func @addi_i1(%v1 : i1, %v2 : i1) {
  return
}


``` 
stack trace:

``` 
mlir-opt: /data/szy/MLIR/llvm-release/llvm-project/llvm/include/llvm/Support/Casting.h:566: decltype(auto) llvm::cast(const From &) [To = mlir::LLVM::LLVMFunctionType, From = mlir::Type]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible 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: /data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt a.mlir -test-lower-to-llvm -one-shot-bufferize=bufferize-function-boundaries
 #0 0x00005643084ecf68 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1107f68)
 #1 0x00005643084eaa7e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1105a7e)
 #2 0x00005643084ed8fd SignalHandler(int) Signals.cpp:0:0
 #3 0x00007fd5c0501420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007fd5bfb3e00b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007fd5bfb1d859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
 #6 0x00007fd5bfb1d729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
 #7 0x00007fd5bfb1d729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
 #8 0x00007fd5bfb2efd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #9 0x000056430987383d (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x248e83d)
#10 0x000056430e20f410 mlir::function_interface_impl::setFunctionType(mlir::FunctionOpInterface, mlir::Type) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x6e2a410)
#11 0x0000564308a5d203 mlir::bufferization::bufferizeModuleOp(mlir::ModuleOp, mlir::bufferization::OneShotBufferizationOptions const&, mlir::bufferization::BufferizationStatistics*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1678203)
#12 0x0000564308a5d719 mlir::bufferization::runOneShotModuleBufferize(mlir::ModuleOp, mlir::bufferization::OneShotBufferizationOptions const&, mlir::bufferization::BufferizationStatistics*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1678719)
#13 0x0000564308a26334 (anonymous namespace)::OneShotBufferizePass::runOnOperation() Bufferize.cpp:0:0
#14 0x000056430b6c6d16 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42e1d16)
#15 0x000056430b6c7680 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42e2680)
#16 0x000056430b6c9c72 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42e4c72)
#17 0x000056430b6c2501 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#18 0x000056430b6c215b 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
#19 0x000056430b76e7e5 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-release/llvm-project/build/bin/mlir-opt+0x43897e5)
#20 0x000056430b6bd585 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42d8585)
#21 0x000056430b6bd82f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42d882f)
#22 0x000056430b6bdb5e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42d8b5e)
#23 0x00005643084cda37 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10e8a37)
#24 0x00007fd5bfb1f083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#25 0x00005643084cd5be _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10e85be)

``` 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWVtz4yoS_jXkhbILga4PeXCcuHaqkkpqkj2vKiRaMntk0ALKxPPrt5B8kTxO5rLjPbW7p84olmjo7_u6aRDi1spaAVyj6AZFt1e8c2ttru82stnyN7gqtNhe19LhVzBWaoXYAsdRnKY0CYsgrCJBIBGI3CKyGK52ax1svB2Kyd-LTrkOB-mchPMY3788o5iMrQ20RouuBPxFuvWu16aRZqZbh2cOrJs1-guYmdOzpnnd4JlWMLNr7WZFV1Vg5FdA7BZReridVZ0qndRqVuhOCW4kWEQp5nM_8AmA4bprYvuHMRn-x8O9H3DuLxiFhAshEU0RzTBKbgYDjBGNKt5YwIjdYm6kW89LrazjymGCPTEZjGyd6c6aBiemveeSN83ecy6D3vngDdHlfrQej9ePpt5k6QehGZ4hdocHuCfu84JbELlWudIq_wpG56-8OQdq9uuozjv5cawGXGfULirJ7TvhOLh_PSAdILzSw_0kWmeHnVxPMsA6Xv6JneElHLPkrOU-eQd-K8EdR3Rlv24RXT3cf_qM6Mrn8cxAA9xrNdy2Rv8DSre7RXQlVdl0Ao4Pnru21cZbLLl1UtVzP1-iOPaeBJSN27aAaMo7pz3dvhtbILYouXWIpn088croDUY07hWJbl50H_F9-rPF_f0fD8dfq91UeunHXu56Tzr0TdGtR7GwFow397NYWo7Y8kUjdodo-scu6t5xjBGlPSi2fNkO7b6Rm7rbgHJYV1iqUm9a7mTRAB6YBYhSRBNccdmAmA9yP93fLZ7vsO2KjXSY46KrsQEvFHYar51rrYdJV4iuaunWXTEv9eao6on40trOV4sV5krgXQywWwMuDbdrXPDyzz4Ldu6f-7wQ3aY9pAWZ4_6_J6NrwzcHVvaXM6LoZCP8X6kQXR2q41C0fqJIflwhh6mBKCOYvBFCSBSHjKQhlFWcjrLJbu3w48lI5XoBXvp5QdOjkeFfcm2dAb7pQ77EUrkhAdLfqAGiN-QtCEhSxaOqgSgLTjhwnsA5Dp879SxrxZu_cSUaMHZf2S8CM-IJTGDSE5girQSeAPIlclBueGznZetzjfT_DgOx3UBJJaKSRCQIKcF5bsA6bSA3bseokQWiq7c0zuNw1kjVvc1q1Q0NrVsb4GJu9ZwMiMOQkgnecOSmqAoGhBTYcOnXvSP5upFFObsvP1HydrilcxZ4LXsWiK7mc3-3tQJaP986Jd-GB689GtX5237oeenrXIDYIjgiiaZIApFGGeaF7pn-GBInBjX6Xr2T1DtJjk7iUycJzXANLh9w5xZqP7P9ktb9sAJSOc-_0VxsbF3ywXVEMg_g6Ds55ztXTe475kJvuFT_nsss8UnEwqPPdOqTQiXiH0ic0qdM3KcMY5WIJymTjVM8SxOWMnGJ6UXDFFImDr59EZhUMqCkCgMyWrn2VTCXyoGpeAm53LTNrkSAmy5-6bHjvuGx_bTv6UvcyZp4mTISA-VhQCY8p9WOR4ISNkKzr_vcDTv40SN40KJr4LGd8Ds-XH48zKOC57V2N-OWx9ZfLe63G7vi_-Egk97PjjtpnSwtootLVeI4SSlhEwnpqYRJkH0M23RqR3-Q6-aw0v6fSZkE2URKNpWSxoyF3jdXWm03urNY8Q3Ytp812Vn28MStHcn82IIZaA7L88Hu29XQIwjHCIq4jEUQj4QT4LjcTfPH9kU_tt7dQvDWaXPwOgljj8erOA7ACNVJy0LxZmulfeCK134RX-JC68b_7VT_xi0uuCEKKQQiiCdBiU4kSeKU_LQkT7KFRqpphg-mB6bxb9do3Mm7-qSsM_2WWptvRp0ajKbGHvsTN6DcJ1Xp_bS61NwIKdA4nVbq-CQMWZnQE_R7Pc7m4VTOS8EOy4ROYCcnsGlEAtyCqbTZLPql0H5n-2-d2K2ra25A5K0ziC2PPZ51Z0p4qA1id-_UO09sqZWDN_dN2B8aaR5b98ClWmpVyXo0RoZHrecLRnrKL4iK0evCva5lyZvPYLvGjZ4fNhAGqgmbaQdE0wP9Tsl_dvAN_QfYaLMdytpELgEV7xqXC2jAwft92F3_Hr3E7wch642GA4Gm8W-yeaUQW55V8UfDeXE-R3S3kjdQus9QS-vM9tv8-CgHBhNEw5wMBw6NVvV_lskHkfl-hk620UUSQwLRiLttG-kWSjwZXYK1e7h_Sd79F86KDy3Gbc_OSFV_hurdx5epySzNEojGNZmSac0qRJRG52fD_9pcvsyqJ9IonSocnCqc0updhXdblXLNh03J4mcT53vyXIx2SqsJbXpKu4jgt9D-i_gVEUz4Td9PwlJwluDdccrvf0EikHKWTACcnKIFFUkZzvNGFmVuHTcu_5nDndJ2--O04Wff2I_TH_OwkPrr0X10yj8qAA-OL6VAVIxCcPLZ5EpcM5GxjF_BdZDQNI5YlmRX62uSpGkUiSxLi5hFYRhzmpRRSEUlUg5ReiWvKaFhQIIgYCxj2TwLWCKiNEjjqsqSpEAhgQ2XzdyjnWtTX_Xn-9dBEGRZfNXwAhrbf_qktE9OSlF0e2Wue3ZFV1sUkkZaZ48jOOma_nNp3yG6_c0fKfvPDGCvOtNc__rXix3B12v6rwAAAP__w2MoGQ">