-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Open
Description
In our testing system, we identifed another issue that appears to be related to #168884 change of OpenMP behavior - tagging @kparzysz here again.
In the following test, we expect the compilation to fail with an error message complaining about the OMP ENDDO.
SUBROUTINE WORK_SAN(IVAR, JVAR)
INTEGER IVAR,JVAR
END SUBROUTINE WORK_SAN
SUBROUTINE DO_OMP_ISSUE
INTEGER IVAR, JVAR
DO 100 IVAR = 1,10
!$OMP DO
DO 100 JVAR = 1,10
CALL WORK_SAN(IVAR,JVAR)
100 CONTINUE
!$OMP ENDDO
END SUBROUTINE DO_OMP_ISSUE
However, after that recent change, this no longer fails - it actually compiles. It fails as expected with nvfortran and gfortran.
[scamp]$ nvfortran test.F90 -c -fopenmp
NVFORTRAN-S-0155-ENDDO must immediately follow a DO loop (test.F90: 13)
0 inform, 0 warnings, 1 severes, 0 fatal for do_omp_issue
[scamp]$ gfortran test.F90 -c -fopenmp
test.F90:10:28:
10 | DO 100 JVAR = 1,10
| 1
Warning: Fortran 2018 deleted feature: Shared DO termination label 100 at (1)
test.F90:13:13:
13 | !$OMP ENDDO
| 1
Error: Unexpected !$OMP END DO statement at (1)
[scamp]$ flang test.F90 -c -fopenmp
[scamp]$
Prior to this change, we would get a warning in line with:
./test.F90:13:9: error: The ENDDO directive must follow the DO loop associated with the loop construct
!$OMP ENDDO