llvm-project/flang/test/Semantics/label17.f90
Peter Klausler f75033a058 [flang] Add nested scoping to label distinctness checking
Fortran defines derived type definitions and explicit interface
blocks for subroutines and functions to be nestable scopes for
statement labels, even though such labels are useless for all
purposes.  Handle these scopes in label resolution so that bogus
errors about conflicting labels in "real" code don't come out.

Note that BLOCK constructs could have also been defined as scopes
for statement labeling, but were not.

Differential Revision: https://reviews.llvm.org/D132679
2022-08-25 14:54:38 -07:00

39 lines
706 B
Fortran

! RUN: %python %S/test_errors.py %s %flang_fc1
1 program main
1 type one
2 real x
3 end type one
1 type two
2 real x
!ERROR: Label '2' is not distinct
2 real y
3 end type two
2 interface
2 subroutine sub1(p, q)
3 interface
3 subroutine p
4 end subroutine
3 subroutine q
4 end subroutine
4 end interface
5 end subroutine
2 subroutine sub2(p, q)
3 interface
3 subroutine p
4 end subroutine
3 subroutine q
4 end subroutine
4 end interface
5 end subroutine
3 end interface
4 call sub3
5 contains
1 subroutine sub3
2 continue
3 block
!ERROR: Label '2' is not distinct
2 continue
4 end block
5 end subroutine
6 end program