summaryrefslogtreecommitdiff
path: root/flang/test/Semantics/label05.f90
blob: 944bb438f28d6627d7be040020f01cea345f0825 (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
60
! RUN: not %flang_fc1 -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s
! CHECK: Label '50' was not found
! CHECK: warning: Label '55' is in a construct that should not be used as a branch target here
! CHECK: Label '70' is not a branch target
! CHECK: Control flow use of '70'
! CHECK: error: Label '80' is in a construct that prevents its use as a branch target here
! CHECK: error: Label '90' is in a construct that prevents its use as a branch target here
! CHECK: error: Label '91' is in a construct that prevents its use as a branch target here
! CHECK: error: Label '92' is in a construct that prevents its use as a branch target here

subroutine sub00(a,b,n,m)
  real a(n,m)
  real b(n,m)
  if (n .ne. m) then
     goto 50
  end if
6 n = m
end subroutine sub00

subroutine sub01(a,b,n,m)
  real a(n,m)
  real b(n,m)
  if (n .ne. m) then
     goto 55
  else
55   continue
  end if
60 n = m
end subroutine sub01

subroutine sub02(a,b,n,m)
  real a(n,m)
  real b(n,m)
  if (n .ne. m) then
     goto 70
  else
     return
  end if
70 FORMAT (1x,i6)
end subroutine sub02

subroutine sub03(a,n)
  real a(n)
  forall (j=1:n)
80  a(n) = j
  end forall
  go to 80
end subroutine sub03

subroutine sub04(a,n)
  real a(n)
  where (a > 0)
90  a = 1
  elsewhere (a < 0)
91  a = 2
  elsewhere
92  a = 3
  end where
  if (n - 3) 90, 91, 92
end subroutine sub04