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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Tosa-infer-shape triggers segmentation fault when allowing unregistered dialect
        </td>
    </tr>

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

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

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

<pre>
    MLIR built at commit https://github.com/llvm/llvm-project/commit/cb37cf6161
Reproduced with: 
`mlir-opt --tosa-infer-shapes --allow-unregistered-dialect temp.mlir`

temp.mlir:
```
module {  
  func.func @func() { 
    %cs0 = shape.const_shape [8, 1] : !shape.shape
    %cs1 = shape.const_shape [1, -9223372036854775808] : !shape.shape
    %cs2 = shape.const_shape [8, -9223372036854775808] : !shape.shape
    %0 = shape.cstr_broadcastable %cs0, %cs1, %cs2 : !shape.shape, !shape.shape, !shape.shape
    "consume.witness"(%0) : (!shape.witness) -> ()
 return
  } 
}
```
 
trace:
```console  
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 --tosa-infer-shapes --allow-unregistered-dialect 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 0x00000001025e77f4 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x00000001025e685c llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x00000001025e7e8c SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001aad414c4 _sigtramp + 56
4  mlir-opt 0x000000010354720c (anonymous namespace)::propagateShapesInRegion(mlir::Region&) + 352
5  mlir-opt 0x0000000103546f28 (anonymous namespace)::TosaInferShapes::runOnOperation() + 128
6  mlir-opt 0x0000000103bf6bf8 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 428
7 mlir-opt                 0x0000000103bf7128 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
8  mlir-opt                 0x0000000103bfb1ac mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_14::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const + 176
9  mlir-opt                 0x0000000103bfb028 mlir::LogicalResult mlir::failableParallelForEach<std::__1::__wrap_iter<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_14&>(mlir::MLIRContext*, std::__1::__wrap_iter<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*>, std::__1::__wrap_iter<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_14&) + 360
10 mlir-opt                 0x0000000103bf7df0 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) + 1396
11 mlir-opt                 0x0000000103bf6d28 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 732
12 mlir-opt 0x0000000103bf7128 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
13 mlir-opt                 0x0000000103bf8aa4 mlir::PassManager::run(mlir::Operation*) + 1148
14 mlir-opt 0x0000000103bf1e68 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
15 mlir-opt                 0x0000000103bf1a38 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
16 mlir-opt                 0x0000000103c5cfac 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
17 mlir-opt 0x0000000103befe60 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
18 mlir-opt                 0x0000000103bf0354 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
19 mlir-opt 0x000000010248a2b8 main + 108
20 dyld 0x0000000107441088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWdtP8zgW_2vcF6tV4lz70IdCQYNERQVopd2XyklOUu84dtZ2Pqb716_sJL3SoR9iVmj0VagJ8fG5_M41LtWaVQJghqIbFC1GtDUbqWa3knPZSGVa7Y0yWWxny8eHZ5y1jBtMDc5lXTODN8Y0GgVzRO4Rua-Y2bTZJJc1Ivec_xgu40bJf0NuELnv9tmbLEjyMvZjH3kL5M2foVGyaHMo8BszGxTMcbeAYq_mTI1lY_B4bKSmYyZKUGO9oQ1oPB5TzuXbuBUKKqYNKCjGBaMccoMN1M3Ebkex17Nz3_vnwXwnpv9z_9ayaDlglNzgXg-My1bkE_uFUejZKyIpIlNHNNBgjEiUaw-jYIGdhpNcCm3W7h6j6CZF5Bb7KFpgZyPxOyr3fcLFv8zFt1zGU0KCICFeEKdRmCRR6qVXMSYfqPdJxkdWa6PWmZK0yKk2NLNgOmQs_8663R15j7Fb_ODJgXBi7WhrmLwxI0BrRIhzT-Q5Fzn-6W77jmiKxyi469amPT8FplViYI6SxRCJyeLdWOmXjaI5nMeT1UtyGMJo9Xg3f7nDus1s_lCctRVWYDMNG_nz-cS0bkEjco-pKDATOW8LwGYDOFdUb3BG89-dYpNO_Iuh-e-4aOtmp6k3Qd50pWSlaI2pqtoahLFK4K_IuxOpLrlla7De1pnkWNAatIUfhG4V4K1s8Yb-AOzs7IjYf0FhJuyawqv5629YKqzBODNB_GBKCqsz_kEVRrH3-PiP5frln8ubp8eHf909r-0WFHsW30Yy4YC2NWi6hwDvbfX-8LqP75EIkqQMnS6WNpjrre5uVooJ48x6dW4n6Z5I0be11EYBrRGJbdgyYVwUkhscxZ1I_0Dk6edYhTiN8vdUeG7FC6sE5b9RUXBQeihH5Ab7PunEkMuWQZrjIwaIpAeKBmHYsQgw5izTW22gXjecmlKqelJsOcsOWFJahH6Yh3itWWUUrZsjc8P39QiiMCFebgOACim2tWx1FxONQ3Xamdoo2dCKGnhxsfcgnqFiUiCSDjU8mA-P4p0BUY9BdFF2XJL0I9mvUtMHG_id7N7FrXgSTw0oajo9dsCTtBMaXxCalXFWpnivdwGGMt7dPzWv8qlZUa3nBW2MVDtpR6ZaAkTmNrL2Dw-0OVmZC8q3muklFbSybr7FmZTcXlvhun9xGKHhYEJyVYQGWZn45OctWrEGOBNwZFlHulM0_nITDzdZUQ9CG-UqnlRnXI8JOsndQq_7iioQ5kGUErs26jj00Uf67pBel-hBVmY-zX8axoMwnOutyB_qhiOSdtb3IYxIuPbD7l46amus63iH4H-dwKdmtbSo9NnosOnSI-nrwfR6VLyj4HqUFcspfwbdcnPwvKSM2yljRRXlHPi9VHc036DgVpuiI1mv_eHmTdFmzQwoFNz-tQDMUXB3HFVf7lcSOxkHnrSz-q0UBv4wfVB_DxC-hxZ_rSuG_B-mQ9-7uowWpffFynVJF0yHocO_Vpe4-ERJ_z82qSTom7tPLvXZX13pT7qSH1wbCSml4Yn0wZ53_X4MxzCOhv1M4YeX3OVDnOIGlJ0u57lloD-Yqgcsh-t5ddEbqqBYN8YWlz2rF9mqHJaVsq9-PUQnTj2voPvt9tXf6rdWUB4VrePedJYNhwE07WvRsQ39K4LXT95-dK2TfBpcbpKf0fwcy1aw_7RwhuUSaqm2N21ZdgF-vrGAkrbcrAvgYODy5uCux-Syzx1qbiWnnNt323UpjgxZcqaeGrOkTHwQPd_Dwq-MpT3FonsNf3Yv5mp7IV-uux40OK-bM7gU1fdB8CxGuv6wy6H4uhzKo7w8Gr91w5mZi2KlZA5aD9p_k8z4W2Tyn1K8Xxvj3flJcqGRQAnx4Rj1qyJ8eUVwniD-4In02i7lBVF40TP9IJRvaDfynDTdF6OYqJ6hvN6u4UTGG2aP6ftnYWFKSZbimjLR7Rg2EA8XW14cEidh6HtpirWhqnuljQYcTs59R8UsKKbBlI5g5sdJkKZRGESjzSyGfJoEWZzEQCM_iklCE78IE1pkcTCFYsRmxCOB5_uxH_teEE3CKCn9MMn8qAyzgOYo9KCmjE8sPBOpqpE7Bp7FnpfEI04z4Nr9nkOIgDfsFhEhKFqM1MwdrGZtpVHocaaN3nMxzHD3Q5DDN1rg15NTX2wUqypQGmuodtMndrGO3zYgsDsTZqLCh8fCuD8WHrWKzz5_xO3M-18AAAD__5gEFJY">