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