blob: 600885c3ad54888c75343e62aaccfc31b3fdb8cc [file] [log] [blame]
! { 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