diff gcc/testsuite/gfortran.dg/goto_5.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gfortran.dg/goto_5.f90	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,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