| Issue |
159127
|
| Summary |
[flang][runtime] DTIO failure with namelist input
|
| Labels |
flang:runtime
|
| Assignees |
|
| Reporter |
DanielCChen
|
Consider the following code:
```
module m
type base
character(7) :: c(3) = (/ 'xxxxxxx', 'xxxxxxx', 'xxxxxxx' /)
end type
type nodtio
character(7) :: c(3) = (/ 'xxxxxxx', 'xxxxxxx', 'xxxxxxx' /)
end type
end module
program character002
use m
interface read(formatted)
subroutine readformatted(dtv, unit, iotype, v_list, iostat, iomsg )
import base
class(base), intent(inout) :: 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
integer :: stat
character(150) :: msg = ''
type(base) :: b1
type(nodtio) :: b2
namelist /n1/ b1, b2
open (1, file='character002.1', form='formatted', access='sequential' )
read (1, n1, iostat = stat, iomsg = msg)
print*, b2%c(1), "<"
print*, b2%c(2), "<"
print*, b2%c(3), "<"
end program
subroutine readformatted (dtv, unit, iotype, v_list, iostat, iomsg)
use m, only: base
class(base), intent(inout) :: dtv
integer, intent(in) :: unit
character(*), intent(in) :: iotype
integer, intent(in) :: v_list(:)
integer, intent(out) :: iostat
character(*), intent(inout) :: iomsg
type(base) :: dummy
namelist /dtio/ dummy
read( unit, dtio, iostat = iostat)
dtv%c = dummy%c
end subroutine
```
Flang outputs
```
> a.out
xxxxxxx<
xxxxxxx<
xxxxxxx<
```
Where both gfortran and XLF outputs
```
> a.out
ABCDEFG<
abc <
xxxxxxx<
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs