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

    <tr>
        <th>Summary</th>
        <td>
            Pass Sequence `--mlir-print-ir-module-scope --mlir-print-ir-before-all` crashes on module op with empty region.
        </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/a0138390
Reproduced with: 
`mlir-opt --mlir-print-ir-module-scope --mlir-print-ir-before-all temp.mlir`

temp.mlir:
```mlir    
module {
}
```
 
trace:
```console 
LLVM ERROR: IR printing can't be setup on a pass-manager without disabling multi-threading first.
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 --mlir-print-ir-module-scope --mlir-print-ir-before-all 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                 0x000000010480c7b4 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt 0x000000010480b81c llvm::sys::RunSignalHandlers() + 112
2 mlir-opt                 0x000000010480ce4c SignalHandler(int) + 344
3 libsystem_platform.dylib 0x00000001867854c4 _sigtramp + 56
4 libsystem_pthread.dylib  0x000000018676dee0 pthread_kill + 288
5 libsystem_c.dylib        0x00000001866a8340 abort + 168
6  mlir-opt 0x00000001047d33ec llvm::report_fatal_error(llvm::Twine const&, bool) + 468
7  mlir-opt                 0x00000001047d3218 llvm::report_fatal_error(llvm::Twine const&, bool) + 0
8  mlir-opt 0x0000000105a13d38 (anonymous namespace)::IRPrinterInstrumentation::~IRPrinterInstrumentation() + 0
9 mlir-opt                 0x0000000105a20ae8 mlir::applyPassManagerCLOptions(mlir::PassManager&) + 840
10 mlir-opt 0x0000000105a12754 performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 440
11 mlir-opt                 0x0000000105a12364 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
12 mlir-opt                 0x0000000105a7cf80 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
13 mlir-opt 0x0000000105a1078c 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
14 mlir-opt                 0x0000000105a10c80 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
15 mlir-opt 0x00000001046af298 main + 108
16 dyld 0x0000000109225088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWE2P4jwS_jXmUgI5zgfhwIH-0ttSo2nRo5V2L8hxKsE7jp3XdmaGPexvXzkJDXQ3s-xoVhqtFrUaiMtPVT1V5XLBnZO1RlyS9IakdxPe-Z2xy1ujlGmN9Z2jk8KU--X66XEDRSeVB-5BmKaRHnbet47EK8IeCHuopd91xUyYhrAHpb4e3qatNX9H4Ql7GPYR9sBpFOfxghJ6R-hqg601ZSewhG_S70i8gmGBZLRR0k5N62E67T-2Vmo_lXbamLJTOHXCtPhuscDKWJxypcBj087CKslGdcP_4_N49apt-AtPAWA0YlAEZH4zis3v3sgPX0dxb7nA95jCaGcCTP_46ekva7jfbD5tgrOPG-gtl7oGwTVhcw8FgkPftWA0cGi5c9OGa16j7TkynYdSOl6osKnplJdTv7PIy_C9ktb52aDq-el-9XIPritCyDgUXQ0WQ3DBm_88hNK5Dh1hD8B1CVIL1ZUIfocgLHc7KLj40lMwqn_xXHyBsmvaV07ojNDFszW15Q1wW3cNah-MgF8Y7DfKX0lz-6YwCjRv0AFhOWrXWYS96WDHvyL07g5C8h9oQeqwZuF59fkPMDYEpfcW9VdpjQ6mw1dugWQ0BHX78tf1zaenx7_db7ZhC8looLk1Uvd8h-xfHJk4evz2Rb_T4RXRJKdiXiS9aWFrvHJ7N3x4Dhz0Xn7u047lRyHLv22N8xZ5Q1hG2C1IHbQDYTeQZoMFERxNOFdZ5JH4SOWm0y-y1lz9wXWp0DrC8gNqFLEBll3tGCYCzvAIy0_sjJNkQIxBycLtncdm2yruK2ObWblXsjhBzLN5niYiga2Ttbe8ac-cTU4xhmoZIc4xshKRwiix_SKV6mFYng846QmOOCC89S7PMp7HCQVehFrr6clGgOwC6_MyjvGU9aFQtxX3XG3RWmPPQvz5m9QI4WjxY4gLY9SBu-Sgbg7XhWNexizKf5X68VjMP_Y15VFcxnkoQa6N3jemc0NVtn0iLwYVj5s-xdE-audtf1JwL40eVv95cfmYk6MZi6soSDmjHHM49IV4xdtW7Z-5c-vh9L19-tQGDSHtj1InAj0Tg-o8GZVH9BIHbJ4m0KIN6bwSB-AfFfFA8fHd-XIQ3W6jsVR33GK5bb0l8e0R6sV0VuC6tiS-Pwva0Y3Q5W-N9vjdE7YKa8ftVad7-7YWKxLfHjc9mVoKrjboOhXy_Ee0kPj-vQ9jtr6SFV0ZqojFWQKXDPkZy99z2Wn5Z4fvuFxjY-z-pquq4NlHQSix4p3y2xIVery8Ob4fObkc8561fkVwpUKD3Vb6zJG1kvZT69dc6n-TPb-Hh78yl44Sd5IrFH6DtXTe7i_Uy3Xv4_FDWLKlvaJcGV3_Pgy-y5G-huZ07JbRdQ045XNR5fSEQ9cq6Ve6fLZGoHMH63-TyvifqOQfSnx8Nmav17X4UiOh81zA_0-E_-KJMNwBo0Mkkmu7FBVnFXYemf6qewtix23fcd803Rdvpa43WF3v13gTZ3S8_EXpx3fNjFdskUPDpR52vG7IoNyr8lR4wVhK8xyc5-NVNj3w8GbMnZTLuFzECz7BZZTN4zSh6SKa7JZFmhRYpDFdLEqRRVUSUUajhahoIpCLZCKXjLKYRhGLMhZH0YxlgkXFPC55RVEUEUkoNlyqWaBnZmw96WfRZbpYzNlE8QKV63_HYEzjN-gXCWMkvZvYZT_WFV3tSEKVdN4dUbz0CpchmeAF_-xQCwzT3E-OoGHg6ydhdGF0H388MMMACti0fg8Wa2n0bNJZtfz5Abz3-18BAAD__yn3aOM">