mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 04:10:29 +08:00
Further improve Fortran column location information [PR92793]
Building on top of commit 9c81750c5bedd7883182ee2684a012c6210ebe1d "Fortran] PR 92793 - fix column used for error diagnostic", there is another place where we have to use 'gfc_get_location' returning column-corrected locations. For example, this improves column location information for OMP constructs. gcc/fortran/ PR fortran/92793 * trans.c (gfc_set_backend_locus): Use 'gfc_get_location'. (gfc_restore_backend_locus): Adjust. gcc/testsuite/ PR fortran/92793 * gfortran.dg/goacc/pr92793-1.f90: Adjust.
This commit is contained in:
parent
528507fa03
commit
5677444f7e
@ -1829,7 +1829,7 @@ void
|
||||
gfc_set_backend_locus (locus * loc)
|
||||
{
|
||||
gfc_current_backend_file = loc->lb->file;
|
||||
input_location = loc->lb->location;
|
||||
input_location = gfc_get_location (loc);
|
||||
}
|
||||
|
||||
|
||||
@ -1839,7 +1839,10 @@ gfc_set_backend_locus (locus * loc)
|
||||
void
|
||||
gfc_restore_backend_locus (locus * loc)
|
||||
{
|
||||
gfc_set_backend_locus (loc);
|
||||
/* This only restores the information captured by gfc_save_backend_locus,
|
||||
intentionally does not use gfc_get_location. */
|
||||
input_location = loc->lb->location;
|
||||
gfc_current_backend_file = loc->lb->file;
|
||||
free (loc->lb);
|
||||
}
|
||||
|
||||
|
@ -13,22 +13,22 @@ subroutine check ()
|
||||
integer :: i, j, sum, diff
|
||||
|
||||
!$acc parallel &
|
||||
!$acc & & ! Fortran location information points to the last line of the directive, and there is no column location information.
|
||||
!$acc && ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:18:0\\\] #pragma acc parallel" 1 "original" } }
|
||||
!$acc & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:18:0\\\] #pragma omp target oacc_parallel" 1 "gimple" } }
|
||||
!$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 of the directive, and there is no column location information.
|
||||
!$acc & & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:26:0\\\] #pragma acc loop" 1 "original" } }
|
||||
!$acc & & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:26:0\\\] #pragma acc loop" 1 "gimple" } }
|
||||
!$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 of the directive, and there is no column location information.
|
||||
!$acc & & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:36:0\\\] #pragma acc loop" 1 "original" } }
|
||||
!$acc & & ! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:36:0\\\] #pragma acc loop" 1 "gimple" } }
|
||||
!$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)'.
|
||||
@ -38,9 +38,9 @@ subroutine check ()
|
||||
sum &
|
||||
& = &
|
||||
& 1
|
||||
! Fortran location information points to the last line of the statement, and there is no column location information.
|
||||
! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:40:0\\\] sum = 1" 1 "original" } }
|
||||
! { dg-final { scan-tree-dump-times "pr92793-1\\\.f90:40:0\\\] sum = 1" 1 "gimple" } }
|
||||
! 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
|
||||
|
Loading…
x
Reference in New Issue
Block a user