OSDN Git Service

* gfortran.dg/duplicate_labels.f90: New test.
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Jun 2005 19:20:10 +0000 (19:20 +0000)
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Jun 2005 19:20:10 +0000 (19:20 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101215 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/duplicate_labels.f90 [new file with mode: 0644]

index baeae27..18935f5 100644 (file)
@@ -1,3 +1,7 @@
+2005-06-20  Steven G. Kargl  <kargls@comcast.net>
+
+       * gfortran.dg/duplicate_labels.f90: New test.
+
 2005-06-20  Jan Beulich  <jbeulich@novell.com>
 
        * g++.old-deja/g++.jason/thunk2.C: On NetWare, also account for
diff --git a/gcc/testsuite/gfortran.dg/duplicate_labels.f90 b/gcc/testsuite/gfortran.dg/duplicate_labels.f90
new file mode 100644 (file)
index 0000000..7523d0c
--- /dev/null
@@ -0,0 +1,59 @@
+! { dg-do compile }
+! PR 21257
+program dups
+
+  integer i,j,k
+
+  abc: do i = 1, 3
+  abc:    do j = 1, 3    ! { dg-error "Duplicate construct label" }
+              k = i + j
+          end do abc
+       end do abc        ! { dg-error "Expecting END PROGRAM" }
+
+  xyz: do i = 1, 2
+          k = i + 2
+       end do xyz
+  xyz: do j = 1, 5      ! { dg-error "Duplicate construct label" }
+          k = j + 2
+       end do loop      ! { dg-error "Expecting END PROGRAM" }
+
+  her: if (i == 1) then
+  her:    if (j  == 1) then  ! { dg-error "Duplicate construct label" }
+               k = i + j
+          end if her
+       end if her            ! { dg-error "Expecting END PROGRAM" }
+
+  his: if (i == 1) then
+           i = j
+        end if his
+  his: if (j === 1) then    ! { dg-error "Duplicate construct label" }
+           print *, j
+        end if his          ! { dg-error "Expecting END PROGRAM" }
+
+  sgk: select case (i)
+       case (1)
+  sgk:   select case (j)    ! { dg-error "Duplicate construct label" }
+          case (10)
+             i = i + j
+          case (20)
+             j = j + i
+          end select sgk
+        case (2)             ! { dg-error "Unexpected CASE statement" }
+            i = i + 1
+            j = j + 1
+        end select sgk       ! { dg-error "Expecting END PROGRAM" }
+
+  apl: select case (i)
+         case (1)
+            k = 2
+         case (2)
+            j = 1
+         end select apl
+  apl: select case (i)  ! { dg-error "Duplicate construct label" }
+         case (1)       ! { dg-error "Unexpected CASE statement" }
+            j = 2
+         case (2)       ! { dg-error "Unexpected CASE statement" }
+            k = 1
+         end select apl ! { dg-error "Expecting END PROGRAM" }
+
+end program dups