1! { dg-do compile } 2 3! PR fortran/45776 4! Variable definition context checks related to IO. 5 6! Contributed by Daniel Kraft, d@domob.eu. 7 8module m 9 implicit none 10 11 integer, protected :: a 12 character(len=128), protected :: str 13end module m 14 15program main 16 use :: m 17 integer, parameter :: b = 42 18 integer :: x 19 character(len=128) :: myStr 20 21 namelist /definable/ x, myStr 22 namelist /undefinable/ x, a 23 24 ! These are invalid. 25 read (myStr, *) a ! { dg-error "variable definition context" } 26 read (myStr, *) x, b ! { dg-error "variable definition context" } 27 write (str, *) 5 ! { dg-error "variable definition context" } 28 read (*, nml=undefinable) ! { dg-error "contains the symbol 'a' which may not" } 29 30 ! These are ok. 31 read (str, *) x 32 write (myStr, *) a 33 write (myStr, *) b 34 print *, a, b 35 write (*, nml=undefinable) 36 read (*, nml=definable) 37 write (*, nml=definable) 38end program main 39