| ! { dg-do compile } |
| |
| ! PR fortran/45776 |
| ! Variable definition context checks related to IO. |
| |
| ! Contributed by Daniel Kraft, d@domob.eu. |
| |
| module m |
| implicit none |
| integer, protected :: a |
| character(len=128), protected :: msg |
| end module m |
| |
| program main |
| use :: m |
| integer :: x |
| logical :: bool |
| |
| write (*, iostat=a) 42 ! { dg-error "variable definition context" } |
| write (*, iomsg=msg) 42 ! { dg-error "variable definition context" } |
| read (*, '(I2)', advance='no', size=a) x ! { dg-error "variable definition context" } |
| |
| ! These are ok. |
| inquire (unit=a) |
| inquire (file=msg, id=a, pending=bool) |
| inquire (file=msg) |
| |
| ! These not, but list is not extensive. |
| inquire (unit=1, number=a) ! { dg-error "variable definition context" } |
| inquire (unit=1, encoding=msg) ! { dg-error "variable definition context" } |
| inquire (unit=1, formatted=msg) ! { dg-error "variable definition context" } |
| |
| open (newunit=a, file="foo") ! { dg-error "variable definition context" } |
| close (unit=a) |
| end program main |