79 lines
1.7 KiB
Fortran
79 lines
1.7 KiB
Fortran
! { dg-do compile }
|
|
! Verify that the compiler accepts the various legal combinations of
|
|
! using construct names.
|
|
!
|
|
! The correct behavior of EXIT and CYCLE is already established in
|
|
! the various DO related testcases, they're included here for
|
|
! completeness.
|
|
dimension a(5)
|
|
i = 0
|
|
! construct name is optional on else clauses
|
|
ia: if (i > 0) then
|
|
i = 1
|
|
else
|
|
i = 2
|
|
end if ia
|
|
ib: if (i < 0) then
|
|
i = 3
|
|
else ib
|
|
i = 4
|
|
end if ib
|
|
ic: if (i < 0) then
|
|
i = 5
|
|
else if (i == 0) then ic
|
|
i = 6
|
|
else if (i == 1) then
|
|
i =7
|
|
else if (i == 2) then ic
|
|
i = 8
|
|
end if ic
|
|
|
|
fa: forall (i=1:5, a(i) > 0)
|
|
a(i) = 9
|
|
end forall fa
|
|
|
|
wa: where (a > 0)
|
|
a = -a
|
|
elsewhere
|
|
wb: where (a == 0)
|
|
a = a + 1.
|
|
elsewhere wb
|
|
a = 2*a
|
|
end where wb
|
|
end where wa
|
|
|
|
j = 1
|
|
sa: select case (i)
|
|
case (1)
|
|
i = 2
|
|
case (2) sa
|
|
i = 3
|
|
case default sa
|
|
sb: select case (j)
|
|
case (1) sb
|
|
i = j
|
|
case default
|
|
j = i
|
|
end select sb
|
|
end select sa
|
|
|
|
da: do i=1,10
|
|
cycle da
|
|
cycle
|
|
exit da
|
|
exit
|
|
db: do
|
|
cycle da
|
|
cycle db
|
|
cycle
|
|
exit da
|
|
exit db
|
|
exit
|
|
j = i+1
|
|
end do db
|
|
dc: do while (j>0)
|
|
j = j-1
|
|
end do dc
|
|
end do da
|
|
end
|