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

    <tr>
        <th>Summary</th>
        <td>
            Division by zero error for infinity BOZ literal in flang
        </td>
    </tr>

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

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

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

<pre>
    With flang on the branch release/14.x (commit 9a3e81e1f91fa8793857fdfdacfd7e70ac365bb8), if module contains a parameter equal to infinity specified via BOZ literal and the module is in the same file, the compilation works
```
$ cat test.f90
MODULE M
  USE, INTRINSIC :: ISO_FORTRAN_ENV
  REAL(REAL32), PARAMETER :: INF = REAL(Z'7F800000', REAL32)
END MODULE
PROGRAM P
  USE M
  REAL(REAL32) X
  X = INF
  PRINT *, X
END PROGRAM
$ flang -o test test.f90
$ ./test
         Infinity
```
If the module is in a separate file, then an additional error is printed (but the compilation also works):
```
$ cat test2.f90
MODULE M
  USE, INTRINSIC :: ISO_FORTRAN_ENV
  REAL(REAL32), PARAMETER :: INF = REAL(Z'7F800000', REAL32)
END MODULE
$ cat test3.f90
PROGRAM P
  USE M
  REAL(REAL32) X
  X = INF
  PRINT *, X
END PROGRAM
$ flang -c test2.f90
$ flang -o test3 test3.f90 test2.o
./m.f18.mod:48:25: division by zero
  real(4),parameter::inf=(1._4/0.)
                          ^^^^^^^
$ ./test3
         Infinity
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVVE1z2jAQ_TXmshOPLWFsDj6QAB1mEmAIaTO5ZGRbAjXCppJImv76rvwRUkinvXWq0cj6WO2-ffusrCpe0y_SbkEoVm6gKsFuOWSalfkWNFecGe6Radj3v4NHkrza7aSFIaM8CXkohqFgSTykSRSLQhQsF0XM44DldBBlWeKRoUeuQArYVcVBccir0jJZGmCwZ5rtuOUa-LcDU2ArkKWQpbSvYPY8l0LyAp4lg8vFAyiJlmjFyqJG2PqTBi_VGwadgZCKu4BuA6HupWJWYk4vlX4yXjD2gpE3CNreLEkfcmbBcmN9MWx3bxbju-sJ3DQrgLvbiXM7m69Xs_nt7Ao8OsIOs9vF43SxWq9G88fJ_HNnvpqMrpEs96Gk5WA5Wo1uJuvJ6u3ufIrTcWf84JE4niaBazh1V473a7-T-RgaYM16uVp8Qp-wfIfyCPkUA9x3J_d1WAzfbSwxqTVWd-SC3h-DtQGORDUauahqtk4oc-c-KsXtdo7bNmvL-mEBZuK8ngwMd_Kwv1QU97EXhXQlRSlwrSvtbuy1LC1qBdPNDvas-EyZqlUAUonk_0kH5D8Twnvs9Ij9n-kjP2XxTDv0iLW1rRpLp6CdL8LER0EgOf0EBxI5mgr5LI2rZ_YKP7iuOnSaM4WJ9Bt6316Vhlx8UTAZPA79R7SYBv4bi_Db5kWTD_qZyunfybxXpLQY0iHrWWkVT8cnebQ6Fk7L3fv3_sXD_6HmrnfQKt1auzcuNTLFvsGH-5D5KHZcKPXcfS72uvrKc4tLacyBo_CnURQkYW-bUkEGIaUxpUXOi4QVYZyFPB7gmIU5jXqKZVyZ1IsuPUJK_gK1C5x70bgnUxIQEvRJhEMcBX6eR2IgBmwY0aTfz4TXD_iOSeU7HH6lNz2d1pCyw8bgoZLGmuMhM0ZuSs7rcOifHey20mm-lUo-yfKpVwdPa_A_AdAK3oM">