<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzFV9mO2zYU_Rr5hZCh1ZIe_DAz7qADOG2zIK8DiryyGNOkQFKz_H0vRcvjJG4yRZoGECRxuyvP5WGr-fM6ynJ8yPvxcKDmOUo2UXL1oReWCGtHIIwegIwDMcBAOflMtCKdpGoXM30YhASztJKy_RKbJMrqmxsSFcknvQcTw9BjV7Mkd45IrfeWSLEH8mZ79y7KKksewIhOgEFVpKNCCrUjThMvWFKhCG316Ig2Q08V-XPASVJT52dRo0fFCc5xPZCD5qOEZbD9-A5e_aEdhI6b0ZjJgSi7wUWokaFQrdCjFtC7waAQBpw8CteT7fbjG3Lr3SSdQcd65wYb5Sj2Fp8dThlb7zE2Pg-G70jrWMqHQ4wiPwFzS3Ju2AewbtYSlddV25Vly7tVl0flBuP3I5qwC0cPwv-cCW6zoqhYkiVpQuuGlSnPVjSr8zRva5jy85cEajGOFLNjRwM-CyN2-OBGGdpy1QkTc3gIDdIaqlgfZemFkL-bQ2nOu4-Dd2rAjHZov3cxjK-S8HTaOJQbelup2Z5w6mhoE0wRlcSvyq_I09zp3cUNif5OC_A7j4Hi4efCulesOllFLnjxblQhgdMOmbbynBXCjcBt_bV3LbX9LKo4IkjBI4k7lpIYMGnxQQozxWbZNQmJNYnDgrC9CXXOiHZ0YElUXWNClhw6Okq3FwiFKN-gQxlNWcFrUcjCFNj0m93P9FMOdJhnHUf83lk6anbg7lH2gEpmMdSwflXEo9or_ahihOb4FO_U6FdWG-ItmHMQZWUyrfOKKOcGrL3XHe5lLAT3b6-PMW58EnBy6qcZ6KL85tigxtBnbBZPoo7y3_zzIjo9iWZaYWTdrM_Lql8pDpXH-P2m9ii_vaSfBd-owXx7E6yjypFgAAYVns7mZme2asOFog4wEpMbPt6zuO-a_pktuDAouuhFmPZiQ34pXtlFpWHpRaldnp2J9f07qVsE0gyd88zWHJRFQN8kkxzU9IDFSJuzHHye_S8zNKsZFQuS3x6w_E_mNuc7zRcBNxp1crfaHCF1-pnh9jrUti07AtYHR-pHMDYU_NtQjHwhDMdV8y1IezkBw91lCP80jPxahLweH78eHT8FG_8LMr6Li3NU_CMUzs_ojbBstFZoNfM9IDtQYKjnJkxz8JRMaUceqBScxP4_0AE9-Fm40uKBdGReRMIDyCX5HQHkDz_MyZ0irUasMeQVdlp4Yn3Iembi913K40-o4-eM5GB0W_zUKeNQVAVkrKSrrE5Yu2rytqoqzllXVHmdlRRqOlMn_ArF5MjhrGfrQY_f9-MwIObx7-PRuCUSnHyb5fE2T3zAB2o9KSYG6wj1J-7EhbiGKVJHZoRid4FejsNLxcABDIjnOPO575mFCyybCKS7cEByirHH4PRg4D_hgscwnajbyWcpfP-t0agSCc_L7xWbMrtkw-B9b8p42zS-9n3hBta7X-qA01paPwHtmN6zxdkqifGVvtg8va-kJIMWaCDWd4r89jCyntBhwFuN8Hs-XAqo2qPUdMHXOW_yhi7o6Hpt1i1VlPWxHSiDxWjk-l_v2Oku5S0u86poFv26SlZtWUCZrjKoimoFq6TIuqQpiiblBdQLSVuQdo3hRMrlmSGqYxoDG6jb3ImtcrP4cYvEOksyfNI0TcqyqJYrAJYWGc8aXnZlxbD-AFYfuZxIoza7hVlPIttxZ3FQCuvsyyBiRewUwOQAWuiEk7CeoTWVlvmaN93nppuev-J9UVQWk53ryci_ASfuW3U>53749</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Verifier not complaining about Ops at module level
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir:core,
            mlir
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          banach-space
      </td>
    </tr>
</table>

<pre>
    ## Summary
This issue came up recently on flang-compiler.slack.com (CC @joker-eph ). It looks like MLIR's verifier is failing to complain about orphan Ops floating around in the module.

## Note
Currently, this can only be reproduced with LLVM Flang from https://github.com/flang-compiler/f18-llvm-project. 

Tested with [7bf55bdf6f3](https://github.com/flang-compiler/f18-llvm-project/commit/7bf55bdf6f3b2447c02010a89c51d26a28313b8e). Please make sure to use the **fir-dev** branch!

## Reproducer
#### Input file:
```fortran
block data
  real :: x
  common /block/ x
end
real :: x
common /block/ x
end
``` 
#### Run with Flang's compiler driver:
```bash
$ flang-new -fc1 -emit-mlir file.f90 -o -
module attributes {fir.defaultkind = "a1c4d8i4l4r4", fir.kindmap = "", llvm.target_triple = "aarch64-unknown-linux-gnu"}  {
  %0 = fir.address_of(@_QBblock) : !fir.ref<!fir.array<4xi8>>
  %1 = fir.convert %0 : (!fir.ref<!fir.array<4xi8>>) -> !fir.ref<!fir.array<?xi8>>
  %c0 = arith.constant 0 : index
  %2 = fir.coordinate_of %1, %c0 : (!fir.ref<!fir.array<?xi8>>, index) -> !fir.ref<i8>
  %3 = fir.convert %2 : (!fir.ref<i8>) -> !fir.ref<f32>
  fir.global common @_QBblock(dense<0> : vector<4xi8>) : !fir.array<4xi8>
  func @_QQmain() {
    return
  }
}
```
#### Run with Flang's bbc driver (lowers from Fortran to MLIR):
```bash
bbc -emit-fir file.f90 -o -
%0 = fir.address_of(@_QBblock) : !fir.ref<!fir.array<4xi8>>
%1 = fir.convert %0 : (!fir.ref<!fir.array<4xi8>>) -> !fir.ref<!fir.array<?xi8>>
%c0 = arith.constant 0 : index
%2 = fir.coordinate_of %1, %c0 : (!fir.ref<!fir.array<?xi8>>, index) -> !fir.ref<i8>
%3 = fir.convert %2 : (!fir.ref<i8>) -> !fir.ref<f32>
fir.global common @_QBblock(dense<0> : vector<4xi8>) : !fir.array<4xi8>
func @_QQmain() {
  return
}
```

## Discussion
The generated code is not valid - note the operations at module level. However, In both cases the MLIR's [verifier](https://github.com/llvm/llvm-project/blob/81cde474e2c5a6280cb693b777ddcf473825ae8a/flang/include/flang/Lower/Support/Verifier.h#L23-L30) pass is run and **does not** flag this up:
* In `flang-new` this is implemented [here](https://github.com/flang-compiler/f18-llvm-project/blob/fir-dev/flang/lib/Frontend/FrontendActions.cpp#L95-L99)
* In `bbc` this is implemented [here](https://github.com/flang-compiler/f18-llvm-project/blob/fir-dev/flang/tools/bbc/bbc.cpp#L260-L261)

All pointers are much appreciated, thanks!
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFV9lu4zYU_Rr5hZCh1ZIe_JDEDRrA03YWzOuAIq8sjmlSIKksf99L0XKcqTtJ0U4HECRxuyvP5WGr-dM6ynJ8yMfxcKDmKUo2UXL1qReWCGtHIIwegIwDMcBAOflEtCKdpGoXM30YhASztJKy_RKbJMrqmxsSFclXvQcTw9BjV7Mkd45IrfeWSLEH8m579yHKKkvuwYhOgEFVpKNCCrUjThMvWFKhCG316Ig2Q08V-X3ASVJT52dRo0fFCc5xPZCD5qOEZbD9-A5e_aYdhI6b0ZjJgSi7wUWokaFQrdCjFtC7waAQBpw8CNeT7fbzO3Lr3SSdQcd65wYb5Sj2Fp8dThlb7zE2XgbDd6R1LOX9IUaRX4G5JTk37BNYN2uJyuuq7cqy5d2qy6Nyg_H7N5qwC0cPwv-cCW6zoqhYkiVpQuuGlSnPVjSr8zRva5jy84cEajGOFLNjRwM-CyN2-OBGGdpy1QkTc7gPDdIaqlgfZemFkH-YQ2nOu4-Dd2rAjHZov3cxjK-S8HTaOJQbelup2Z5w6mhoE0wRlcSvyq_I49zp3cUNif5OC_A7j4Hi4efCujesOllFLnjxYVQhgdMOmbbynBXCjcBt_VfvWmr7WVRxRJCCBxJ3LCUxYNLigxRmis2yaxISaxKHBWF7E-qcEe3owJKousaELDl0dJRuLxAKUb5BhzKasoLXopCFKbDpN7uf6acc6DDPOo74vbN01OzAfUHZAyqZxVDD-lURj2qv9IOKEZrjY7xTo19ZbYi3YM5BlJXJtM4ropwbsPaL7nAvYyH48v76GOPGJwEnp36agS7Kb44Nagx9wmbxKOoo_8U_z6LTk2imFUbWzfq8rPqN4lB5jN_vao_y20v6WfCNGsy3N8E6qhwJBmBQ4fFsbnZmqzZcKOoAIzG54eM9i3vV9Be24MKg6KIXYdqzDfmleGUXlYalF6V2eXYm1vfvpG4RSDN0zjNbc1AWAX2TTHJQ0z0WI23OcvAy-99maFYzKhYkvz9g-Z_Mbc53mi8CbjTq5G61OULq9DPD7W2obVt2BKwPjtQPYGwo-LehGPlCGI6r5nuQ9nIChrvLEP5hGPm5CHk7Pn4-On4INv4XZLyKi3NU_C0Uzs_ojbBstFZoNfM9IDtQYKjnJkxz8JRMaUfuqRScxP4_0AE9-Fm40uKBdGReRMI9yCX5FQHkDz_MyZ0irUasMeQVdlp4Yn3Iembi9yrl8SfU8XNGcjC6LX7qlHEoqgIyVtJVViesXTV5W1UV56wrqrzOSgo1nakTfoVicuRw1rP1oMfvx3EYEPP49_lo3BIJTr7N8nibJz7gA7WeFBODdYT6E3fiQlzDFKkjM0Kxu0Avx-G5YuAABsRznPnc98zCBZZNBNJdOCA5xdhjcHow8J9wwWOYTtTt5LMUvv_WaFSJhOf594pNmV2yYfC-N2W8bRpf-75xA-vdT3XAaS2tn4B2TO_Z4myVxPhKn22e3ldSkkELNBDrO0V-exhZT-gw4K1G-D0fLgVU7VFquuDrnDd5QxdOOAnreUNMgJgvJ9MtZLqf-IvJN1BYjEau__G2ni5c3q0yr4pm0a_LdJXnZcKAlrxuyzalNRQ0a6At0nRV84WkLUi7xpgjL_P0EdUxjdEP_G7uxFa5WYh1lmT4pGmalGVRLVcALC0ynjW87MqKYYkBLDByOfFCbXYLs55MbMedxUEprLPPgwgHsVMAk3qUT0fXa7NuqaKsj-1AGSwml9aTP38C9j5G0w">