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

    <tr>
        <th>Summary</th>
        <td>
            [flang] Inconsistency when use BOZ constant to initialize a real(8) type array or scalar
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang:frontend
      </td>
    </tr>

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

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

<pre>
    Consider the following reducer:
```
    implicit none

    real(8) vreal1(2), r1, r2

    vreal1 = (/ z'3FF4003D80049C48', z'3FF4003D80049C47'/)
    r1 = z'3FF4003D80049C48'
    r2 = z'3FF4003D80049C47'

print*, vreal1(1)
print*, vreal1(2)

print*, r1
print*, r2
  end
```

Flang outputs
```
> a.out
 -2147181496.
 -2147181497.
 1.2500586510375502
 1.25005865103755
```

It seems inconsistent as the same BOZ constant result differently between array and scalar.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0U09vuzgQ_TTmMiqyBxybA4c0WaSe9r43A0PilWNHtmmVfvqVSbRV82slBJp58_cxz6RkT56oZ_KVyWNl1nwOsT8ab8kdDmfy1RjmW38IPtmZIuQzwRKcCx_WnyDSvE4UWbNnfM92_PHwPQCAvVydnWwGHzwV_O6OZBxDrRl28F4MwVAjw47hAaLY3vgVfg8B1hyBoWY4wCdD1QxDy3lz1Jy33aHVDFVJ_AFSGzSU-o_-92K_VXkE4W9B6h7E-P4arc8M96Xx_4uIe6MfMbxjT3AUzw7chiA_P5HK-H5wxp8grPm65vQMN3-BqcOaS_oLilYJLdpuV3-31WaLGiXnUu-k4I2SkuNP3j8HeMuQiC4JrJ_KTaRMPoNJ22EkcyF4_fsfKFA2PkOktLoMs10WiuSzu8FI-YPIg4nR3MD4GdJknIl1NffN3DWdqagXSkrZYsd31blvFzVJjmIcNYlWyW6neDsSn1HNO9wtle2Ro-RaaKFbjbJWZsHJzMvULaOQZmEtp4uxrnbu_VKHeKpsSiv1QrZC6cqZkVzaNIC4FIpZs19i8Ln8BMSijNiX3JdxPSXWcmdTTl_Vss1u09A9WR7h7Yue6QYfZ_KwpidycgDrbbbG2U8C800Z-XalB0UhPhiq1uj6c87XVARXbno42Xxex3oKF4ZDGefxebnG8C9NmeGwbZoYDo9l33v8LwAA__8SqSI8">