llvm / llvm-project / 74cbd71072de4f20c5cb9852dc4cf96ac7a4b5a4 / . / flang / test / Semantics / label05.f90

! RUN: not %flang_fc1 -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s | |

! CHECK: Label '50' was not found | |

! CHECK-NOT: error: Label '55' is in a construct that prevents its use as a branch target here | |

! CHECK: Label '55' is in a construct that prevents its use 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 |