summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/duplicate_labels.f90
blob: 7523d0c41b51915a5aa0de3a143cfde366c9df66 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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