summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/goto_5.f90
blob: 44ba697249246670543d20ad7ba589d824ede6cd (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 }
! PR 38507
! Verify that we correctly flag invalid gotos, while not flagging valid gotos.
integer i,j

do i=1,10
   goto 20
20 end do   ! { dg-warning "is not in the same block" }

goto 20   ! { dg-warning "is not in the same block" }
goto 25   ! { dg-warning "is not in the same block" }
goto 40   ! { dg-warning "is not in the same block" }
goto 50   ! { dg-warning "is not in the same block" }

goto 222
goto 333
goto 444

222 if (i < 0) then
25 end if      ! { dg-warning "is not in the same block" }

333 if (i > 0) then
   do j = 1,20
      goto 30
   end do
else if (i == 0) then
   goto 30
else
   goto 30
30 end if

444 select case(i)
case(0)
   goto 50
   goto 60  ! { dg-warning "is not in the same block" }
case(1)
   goto 40
   goto 50
   40 continue  ! { dg-warning "is not in the same block" }
   60 continue    ! { dg-warning "is not in the same block" }
50 end select   ! { dg-warning "is not in the same block" }
continue 

end