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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]Crashed on ` -normalize-memrefs` with assertion failure `limitIt->hasTrait<OpTrait::SymbolTable>()'
        </td>
    </tr>

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

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

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

<pre>
    Test on commit: https://github.com/llvm/llvm-project/commit/3b4cb1e96c645bb833fe710856479c31383859bb
The same crash occurred in [LLVM 16](https://github.com/llvm/llvm-project/tree/release/16.x)

steps to reproduce:

```
mlir-opt -normalize-memrefs test.mlir
```
test case:
```
module {
  func.func @f(%arg0: f32) {
    func @g(%arg1: f32) {
      %0 = spirv.FAdd %arg1, %arg1 : f32
 return
    }
    return
  }
}
```
crash trace:
```
mlir-opt: /home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/mlir/lib/IR/SymbolTable.cpp:635: llvm::SmallVector<{anonymous}::SymbolScope, 2> collectSymbolScopes(mlir::Operation*, mlir::Operation*): Assertion `limitIt->hasTrait<OpTrait::SymbolTable>()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt -normalize-memrefs test.mlir
 #0 0x000055c6d2e75f1a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x221f1a)
 #1 0x000055c6d2e7341c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007ff9e838b980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x00007ff9e7483e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #4 0x00007ff9e74857f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #5 0x00007ff9e74753fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
 #6 0x00007ff9e7475472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
 #7 0x000055c6d48cfec1 collectSymbolScopes(mlir::Operation*, mlir::Operation*) SymbolTable.cpp:0:0
 #8 0x000055c6d48d0430 mlir::SymbolTable::getSymbolUses(mlir::Operation*, mlir::Operation*) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1c7c430)
 #9 0x000055c6d38493be (anonymous namespace)::NormalizeMemRefs::updateFunctionSignature(mlir::func::FuncOp, mlir::ModuleOp) NormalizeMemRefs.cpp:0:0
#10 0x000055c6d384bd11 (anonymous namespace)::NormalizeMemRefs::normalizeFuncOpMemRefs(mlir::func::FuncOp, mlir::ModuleOp) NormalizeMemRefs.cpp:0:0
#11 0x000055c6d384d59d (anonymous namespace)::NormalizeMemRefs::runOnOperation() NormalizeMemRefs.cpp:0:0
#12 0x000055c6d472d759 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1ad9759)
#13 0x000055c6d472e5b3 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (.constprop.495) Pass.cpp:0:0
#14 0x000055c6d472ec9d mlir::PassManager::run(mlir::Operation*) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1adac9d)
#15 0x000055c6d4721ca3 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#16 0x000055c6d47223d9 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPool*) MlirOptMain.cpp:0:0
#17 0x000055c6d4722701 mlir::LogicalResult llvm::function_ref<mlir::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&)::'lambda'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#18 0x000055c6d47e7380 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1b93380)
#19 0x000055c6d471f3e3 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1acb3e3)
#20 0x000055c6d4722ae8 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1aceae8)
#21 0x000055c6d2e42330 main (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1ee330)
#22 0x00007ff9e7466c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#23 0x000055c6d2e54fca _start (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x200fca)
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWUtz3LgR_jXQBaUpEuDzoMPoMRWnrEglKT7sZQoEmzPIggADgLaUX58COA-SltZjx6vdbJUtAkSju79-sYFh1oqNArhA6SVKr89Y77baXFwCk79At30xZ5WuXy6ewDqsFea6bYVDdIm3znUW0SUiK0RWG-G2fbXgukVkJeXn_eO8M_pfwB0iq91WsqJVwqsYyoxnSVpVBaUN5HFUpFmSl5zGtKBFWlYViq5RtHzaArasBcwNs1usOe-NgRoLhVF6-fHjp1scZyi9RqT4bpWcAUBkZUACs34UZ4tnRMpB8vDXOugsdhob6Iyuew5ewogAZdHuX5i2Uphz3Tl8rrRpmRT_gfMWWgONxQ6sW3iCV3f6Vcy9IvQN1rruJWCUXw5zjJte8YX_g1ESNYgUiKTMbCLvoIYSRMox9UDvSTcH0vgtUowRSSOM6DW2nTCfF6tlXeP9JnK1H-I9g2GnAdcbdWSD8uvjZLp4WDoOpngHjzvD-Nsm2VnbK4HIaqtb78bPYETzMvP3-clxR1bBR2QlhZ98eEBk9fjSVlo-sUrCgncdosuMpl5qiCy6RHT52DIpPwF32iB6hfJLprR6aXVvPcCBJHB55LoDb0KC6A3mWkrgbrRkESmCBmHPXQeGOaEVIku_6a2V0muztBaMf4VRFknRCvfBnSN6s2X2yTCfuVd33W50VCjAQvQmREWJSI4bJiTUi8HI9x9vlo832PZVKxxmuOo3Phu0cT4vvjvrhLW9x7jCTPk85rKvAbvtPsUrxn8NTt-Jf3SM_4rrvu0OURAtUFTeG70xrMXMbPoWlLM_OQiqXsjaP4XahcSJeY0RoRGOnqMoitKUZzWBPG1iNooV-2KHwb0RygWETyHOSXEkMuzLWltngLWIZN73QrmQqN5PvzNORC6jZ0LiJmaHiuiBxTNgNIk5fhQbxeTfmKolGESKnZ7Da7tLmCj8PzAiO0Z505RQ0KIqiwiv1was0wbWxu1gDkn4XGTrLDmXQvXP5xvVDwud2xpg9cLqRRQUjklZRBN96VhMnhQUihwbJizgEfaNFBU_v_r09y-_VIcpWZAckZUNKBBZLRZ-9mJr6Hz49ko8Dy8-B21U76eB9YIjukzjKeBkpkmaNzFmlQ5IT9PE1YM1wq4gpJgJSadC8pQ2DK_XLNSFtU_rdcVOxz7sOwwGkeVUZDYXmeTkBN9x77UseI1GSU4mXsvHUZYUvAEe_7xKib-u5rPgLKby6yih0YjfpGz6FxvYqfVP-8NKvVtWxzznCZ2mSTkGTIukpJUPkuLwDcOKtWC7UKPKAcA_9oXwFtoHaHYVre9q5mDVK-6xhRLgegMTo_g-ZBh5urtuapjb0Of4tyWey_jaXb4mRTPtqzqOf0z7Q3EfFNuv_Z7KxzPl67Ssf0x506s7NQqr4nQlyCTgc1LnaTlCVYNjQu7j9knfdffM2mXNutDt7IRPzOQJvhHz45WlYvLFCnvLFNv4j8gVrrSW_tmrcEap3_3zF7O6zNPyeCIgNKYzQ0Fa0e821L3oQAoFs0rhSQ_4s59uufEmL-qDss6E1kmbr7hOCQbJw8JO93tmQLkPqtGYa2XdsYotwrwzulskZepfemavx10yNycv65kWe1yvRtkfV0RZzXhZT2IjnYGJOaO4A9No0y5DObTfaPCsq3cN4pYZqNed82eJ0RlD94bD7cYMJ4dg9lmg3H788HCllYNn95VTb6Uwd527ZUJdadWIzYhHiUerrzsrm-EjtC5xZzQHay_7pgm930nweiX-3cNX8G6h1eZlz2pEX0PDeunWNUhw8PYeehOOMadiHtNdC-a7iwfYCOvMy279KOcptJr3IbOWJ5krn5srj-KRwI96IziTD2B76UaCmt2nc22gQfTqrQ2IFO9nzredWgYiv8KZlP7stm7URO2Rnf6E4fG6209MmYEEkVyytqoZ8j3zn8crpJBabd7XsL-h0rcTZtp155DTYtx1204Kt1T1_azi_BHo_g-T9Dcpjj3D8HzPL2lVUjo6tftIKKeREDcU6OtJ-VcrKe_ZwfCKAh3bnUTzTxaD4k2775pKvmVD-7ichtijM0JtHqA5xTrvH3WMA4Nign52t5UQ6k_9TKh3VAuA0kkuEDK9X8kyXuR4vZai4mvrmHHrnYon3ehw2--vsoZhWAx8wu0OTZJJUSZ0apQ0aTjDg-B3vIiMooYfLyJnvwKc1Re0LmnJzuAizvIiK7zZzrYXNStzSJoqymra0AZSwoDUPAfK0jgi6Zm4IBGhEY1plNAiIQuoooZmvKxo2fA0IyiJoGVCLjyohTabs3B9fZHFNMvPJKtA2vDbGSEKvuCwiAhB6fWZuQiGqPqNRUkkhXX2yMUJJ8OPbr5dR-n1lWF2CzUebu5fuWT2b78It8XscMXfMCF7A__bVf9Zb-TFj9_hBzv8NwAA__8P65Uz">