blob: 422131ba4734587cb1cea905cb31cd09b4ab7b70 [file] [log] [blame]
! Verify column location information.
! See also 'c-c++-common/goacc/pr92793-1.c'.
! { dg-additional-options "-fdump-tree-original-lineno" }
! { dg-additional-options "-fdump-tree-gimple-lineno" }
! No tabs. Funny indentation/spacing for a reason.
subroutine check ()
implicit none (type, external)
integer :: i, j, sum, diff
!$acc parallel &
!$acc & & ! Fortran location information points to the last line, and last character of the directive.
!$acc && ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:18:123\\\] #pragma acc parallel" 1 "original" } }
!$acc & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:18:123\\\] #pragma omp target oacc_parallel" 1 "gimple" } }
!$acc loop &
!$acc & & ! Fortran location information points to the last line, and last character of the directive.
!$acc & & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:26:22\\\] #pragma acc loop" 1 "original" } }
!$acc & & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:26:22\\\] #pragma acc loop" 1 "gimple" } }
!$acc& reduction ( + : sum ) & ! { dg-line sum1 }
!$acc && ! Fortran location information points to the ':' in 'reduction(+:sum)'.
!$acc & & ! { dg-message "36: location of the previous reduction for 'sum'" "" { target *-*-* } sum1 }
!$acc& independent
do i = 1, 10
!$acc loop &
!$acc & & ! Fortran location information points to the last line, and last character of the directive.
!$acc & & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:36:34\\\] #pragma acc loop" 1 "original" } }
!$acc & & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:36:34\\\] #pragma acc loop" 1 "gimple" } }
!$acc & reduction(-: diff ) &
!$acc&reduction(- : sum) & ! { dg-line sum2 }
!$acc & & ! Fortran location information points to the ':' in 'reduction(-:sum)'.
!$acc& & ! { dg-warning "32: conflicting reduction operations for 'sum'" "" { target *-*-* } sum2 }
!$acc &independent
do j = 1, 10
sum &
& = &
& 1
! Fortran location information points to the last line, and last character of the statement.
! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:40:9\\\] sum = 1" 1 "original" } }
! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:40:9\\\] sum = 1" 1 "gimple" } }
end do
end do
!$acc end parallel
end subroutine check
subroutine gwv_sl_1 ()
implicit none (type, external)
integer :: i
!$acc serial loop &
!$acc & gang(num:5) & ! { dg-error "25: argument not permitted on 'gang' clause" }
!$acc & worker(num:5) & ! { dg-error "24: argument not permitted on 'worker' clause" }
!$acc & vector(length:5) ! { dg-error "28: argument not permitted on 'vector' clause" }
! { dg-message "93: enclosing parent compute construct" "" { target *-*-* } .-1 }
do i = 0, 10
end do
!$acc end serial loop
end subroutine gwv_sl_1
subroutine gwv_sl_2 ()
implicit none (type, external)
integer :: i, j, k
!$acc serial loop ! { dg-message "77: enclosing parent compute construct" }
do i = 0, 10
!$acc loop ! { dg-bogus "enclosing parent compute construct" }
do j = 0, 10
!$acc loop &
!$acc & gang(num:5) & ! { dg-error "35: argument not permitted on 'gang' clause" }
!$acc & worker(num:5) & ! { dg-error "32: argument not permitted on 'worker' clause" }
!$acc & vector(length:5) ! { dg-error "33: argument not permitted on 'vector' clause" }
do k = 0, 10
end do
end do
end do
!$acc end serial loop
end subroutine gwv_sl_2
subroutine gwv_s_l ()
implicit none (type, external)
integer :: i, j, k
!$acc serial ! { dg-message "72: enclosing parent compute construct" }
!$acc loop &
!$acc & gang(num:5) & ! { dg-error "27: argument not permitted on 'gang' clause" }
!$acc & worker(num:5) & ! { dg-error "23: argument not permitted on 'worker' clause" }
!$acc & vector(length:5) ! { dg-error "29: argument not permitted on 'vector' clause" }
do i = 0, 10
end do
!$acc loop
do i = 0, 10
!$acc loop ! { dg-bogus "enclosing parent compute construct" }
do j = 0, 10
!$acc loop &
!$acc & gang(num:5) & ! { dg-error "35: argument not permitted on 'gang' clause" }
!$acc & worker(num:5) & ! { dg-error "32: argument not permitted on 'worker' clause" }
!$acc & vector(length:5) ! { dg-error "37: argument not permitted on 'vector' clause" }
do k = 0, 10
end do
end do
end do
!$acc end serial
end subroutine gwv_s_l
subroutine gwv_r () ! { dg-message "16: enclosing routine" }
implicit none (type, external)
integer :: i, j, k
!$acc routine(gwv_r)
!$acc loop &
!$acc & gang(num:5) & ! { dg-error "23: argument not permitted on 'gang' clause" }
!$acc & worker(num:5) & ! { dg-error "26: argument not permitted on 'worker' clause" }
!$acc & vector(length:5) ! { dg-error "27: argument not permitted on 'vector' clause" }
do i = 0, 10
end do
!$acc loop
do i = 0, 10
!$acc loop
do j = 0, 10
!$acc loop &
!$acc & gang(num:5) & ! { dg-error "31: argument not permitted on 'gang' clause" }
!$acc & worker(num:5) & ! { dg-error "31: argument not permitted on 'worker' clause" }
!$acc & vector(length:5) ! { dg-error "36: argument not permitted on 'vector' clause" }
do k = 0, 10
end do
end do
end do
end subroutine gwv_r