mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-03 18:30:49 +08:00
Handle REF_INQUIRY for dependency checking.
2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/93113 * dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch for ref types. 2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/93113 * gfortran.dg/dependency_58.f90: New test. From-SVN: r279821
This commit is contained in:
parent
cb15d1d34c
commit
ba4c5da7db
@ -1,3 +1,9 @@
|
||||
2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/93113
|
||||
* dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch
|
||||
for ref types.
|
||||
|
||||
2020-01-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Update copyright years.
|
||||
|
@ -2286,6 +2286,12 @@ gfc_dep_resolver (gfc_ref *lref, gfc_ref *rref, gfc_reverse *reverse,
|
||||
subsequent references also overlap. */
|
||||
break;
|
||||
|
||||
case REF_INQUIRY:
|
||||
if (lref->u.i != rref->u.i)
|
||||
return 0;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/93113
|
||||
* gfortran.dg/dependency_58.f90: New test.
|
||||
|
||||
2020-01-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Update copyright years.
|
||||
|
33
gcc/testsuite/gfortran.dg/dependency_58.f90
Normal file
33
gcc/testsuite/gfortran.dg/dependency_58.f90
Normal file
@ -0,0 +1,33 @@
|
||||
! { dg-do run }
|
||||
! { dg-additional-options "-ffrontend-optimize -Warray-temporaries" }
|
||||
! PR 93113 - this used to ICE, and should not generate a temporary.
|
||||
program main
|
||||
integer, parameter :: n = 10
|
||||
complex, dimension(n,n) :: a, b, c
|
||||
real, dimension(n,n) :: r
|
||||
call random_number (r)
|
||||
c%re = r
|
||||
call random_number (r)
|
||||
c%im = r
|
||||
|
||||
a = c
|
||||
b = c
|
||||
b%re = a%re - 0.5
|
||||
b%im = a%im - 0.5
|
||||
a%re = a%re - 0.5
|
||||
a%im = a%im - 0.5
|
||||
if (any (a /= b)) stop 1
|
||||
b%im = a%re
|
||||
a%im = a%re
|
||||
if (any (a /= b)) stop 2
|
||||
a = c
|
||||
b = c
|
||||
b(2:n,:)%re = a(1:n-1,:)%re
|
||||
a(2:n,:)%re = a(1:n-1,:)%re
|
||||
if (any (a /= b)) stop 3
|
||||
a = c
|
||||
b = c
|
||||
b(1:n-1,:)%im = a(2:,:)%im
|
||||
a(1:n-1,:)%im = a(2:,:)%im
|
||||
if (any (a /= b)) stop 3
|
||||
end program main
|
Loading…
x
Reference in New Issue
Block a user