aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/iomsg_2.f90
blob: 29500ed01aea474e62a200435cbcb6f003117f03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
! { dg-do compile }
subroutine foo1
   implicit none
   integer i
   open(1, iomsg=666)      ! { dg-error "IOMSG must be" }
   open(1, iomsg='sgk')    ! { dg-error "IOMSG must be" }
   open(1, iomsg=i)        ! { dg-error "IOMSG must be" }
   close(1, iomsg=666)     ! { dg-error "IOMSG must be" }
   close(1, iomsg='sgk')   ! { dg-error "IOMSG must be" }
   close(1, iomsg=i)       ! { dg-error "IOMSG must be" }
end subroutine foo1

subroutine foo
   implicit none
   integer i
   real :: x = 1
   write(1, *, iomsg='sgk') x   ! { dg-error "IOMSG must be" }
   write(1, *, iomsg=i)     x   ! { dg-error "IOMSG must be" }
   read(1,  *, iomsg='sgk') x   ! { dg-error "IOMSG must be" }
   read(1,  *, iomsg=i)     x   ! { dg-error "IOMSG must be" }
   flush(1,    iomsg='sgk')     ! { dg-error "IOMSG must be" }
   flush(1,    iomsg=i)         ! { dg-error "IOMSG must be" }
   rewind(1,   iomsg='sgk')     ! { dg-error "IOMSG must be" }
   rewind(1,   iomsg=i)         ! { dg-error "IOMSG must be" }
   backspace(1,iomsg='sgk')     ! { dg-error "IOMSG must be" }
   backspace(1,iomsg=i)         ! { dg-error "IOMSG must be" }
   wait(1,     iomsg='sgk')     ! { dg-error "IOMSG must be" }
   wait(1,     iomsg=i)         ! { dg-error "IOMSG must be" }
end subroutine foo

subroutine bar
   implicit none
   integer i
   real :: x = 1
   character(len=20) s(2)
   open(1, iomsg=s)         ! { dg-error "must be scalar" }
   close(1, iomsg=s)        ! { dg-error "must be scalar" }
   write(1, *, iomsg=s) x   ! { dg-error "must be scalar" }
   read(1,  *, iomsg=s) x   ! { dg-error "must be scalar" }
   flush(1,    iomsg=s)     ! { dg-error "must be scalar" }
   rewind(1,   iomsg=s)     ! { dg-error "must be scalar" }
   backspace(1,iomsg=s)     ! { dg-error "must be scalar" }
   wait(1,     iomsg=s)     ! { dg-error "must be scalar" }
end subroutine bar