<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/148638>148638</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Runtime DTIO lacking support for `-fdefault-integer-8`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:runtime
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanielCChen
</td>
</tr>
</table>
<pre>
Consider the following code
```
module m
type base
sequence
integer(4) :: i
end type
end module
program scalar007
use m
type(base), allocatable :: b1
integer :: stat = 0
character(150) :: msg = "original"
interface write(formatted)
subroutine writeformatted(dtv, unit, iotype, v_list, iostat, iomsg )
import base
type(base), intent(in) :: dtv
integer, intent(in) :: unit
character(*), intent(in) :: iotype
integer, intent(in) :: v_list(:)
integer, intent(out) :: iostat
character(*), intent(inout) :: iomsg
end subroutine
end interface
open (1, file = 'scalar007.1', form='formatted', access='sequential' )
allocate ( b1, source = base(4) )
write ( 1, *, iostat = stat, iomsg = msg ) b1
end program
subroutine writeformatted (dtv, unit, iotype, v_list, iostat, iomsg)
use m!, only: base, data
type(base), intent(in) :: dtv
integer, intent(in) :: unit
character(*), intent(in) :: iotype
integer, intent(in) :: v_list(:)
integer, intent(out) :: iostat
character(*), intent(inout) :: iomsg
print*, unit
!write ( unit=unit, fmt=* ) ' Data not using DTIO: v_list is:', v_list
end subroutine
```
When compile the code with `-fdefault-integer-8`, Flang failed at runtime as
```
> a.out
4563402751
fatal Fortran runtime error(t.f:48): UNIT number 4563402751 is out of range
IOT/Abort trap(coredump)
```
It worked fine if I removed the `-fdefault-integer-8` option.
It seems the runtime routine `_FortranAioCheckUnitNumberInRange64` isn't expecting a `i64` UNIT number.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycltFu6jgTx5_G3IyKjJMQuOAiH3xI3JwjHfVoL48cZxK8deys7bTbt1_ZDhC6ZbXbqhLE9sz8Z-Y3ONw52WnEHSn-R4rDgo_-bOzuwLVEtd-fUS9q07zv9kY72aAFf0ZojVLmTeoOhGmQ0Iqs6fRPq940o0LowzKtAMC_Dwg1d5geAcDhHyNqERek9tihJWyTE7YFklUkq0Cms6ibaJ58hafkPT0P1nSW9-AEV9xSWhJaje4WOlqyTQzNtoTtgStlBPe8VniJVK-uQicplx3nuQeSHYCmbXHmlgsfta4KOlPbuy4eJIwZKzupuSKM3fm1LRcIb1b6IKk1tufeYxN0Xasy1taMXurp3OzQpvGvQf-opQ-f0qTc9vD6S0k3rQXB6VsUNHMdRPSDsf6-D1Nz7msU1GpP2EbqWYpBwNzbpWt7eGAQpc4s5tUjrPrHYFN6n8f7YBL-JrNLLTbh-UP2n-k1o78LGutHqwdS54E_Wvauu0YLlN5aeeP4SsGVCzOghgBTcN_KyGSAqLwCvVwRVsZdY3uSHQgrZ1TEHS4EOpf20lx5GfArJwBSqAl8DOEC8mwPzoxWpJCp-9MAzqwihtEkWsRaXECLhh-Iyw4wkZfGKqQ9DWny-RBx-BLjSWsaeRYlGq3e41THjPbQcM_vfoj-E-uPqfsb5F_F--tgf2b5iOh_oe9zpJPxYGU4VV3bE1cJW90AicvZ4dK8tvcRyQoSUyUcuOegjYfRhYvj8Hz6fksNpIuplbN2J3zuJml-zRBa_XZGDcL0QxidcC-F2wjepD8DWdOntsGWj8o_TZV62gRLtoej4rqDlkuFDXAPdtRe9gjcfYyR_R_4MlSGVpAX6yynrCymC6Plnis4Gust11cfaK0JNfbLlmRVvgmFzir4-e30DHrsa7QzRyAdmNGDacFy3YUUT9-fCTtWdfit9pYPhG2EsdiM_TBN5n0NTh7ejH3BBtowVbKFE1jszSs2sSQPCwFm8NLoJSQnDrF30eKSyWVQyZr-mrKspNmfUbz81NJ_i8mc9I8gfJ0Hj9JpwkoP-OeAwocu82At0-6sBEtCq0Wzy5pttuUL3K3KghU0KxhbnHdls8Y6F1nBVk3Z0LJYl6KsBctEwXnbrhdyxygraLnKV3m2KrbLDLdtXnLOGppniDXJKfZcqqVSr_3S2G4hnRtxt8o362yzULxG5eILD2NtYIFk1ZR1uLaLw8LugulTPXaO5DTg6G7OvPQqvi8l2-IAP6aSBahBcfEScnfjEG_c1tjHXViMVu3O3g-J_yNhx07681gvhekJO4ag08fTYM3vKDxhx5iOI-w4ZfS6Y38FAAD__8Mf7As">