re PR fortran/38859 (ubound and lbound treat structure component references as whole arrays)
2009-01-19 Mikael Morin <mikael.morin@tele2.fr> PR fortran/38859 * simplify.c (simplify_bound): Don't use array specification if variable or component has subsequent references. 2009-01-19 Mikael Morin <mikael.morin@tele2.fr> PR fortran/38859 * gfortran.dg/bound_5.f90: New test. From-SVN: r143501
This commit is contained in:
parent
f68211cd04
commit
9295d9eda3
@ -1,3 +1,9 @@
|
||||
2009-01-19 Mikael Morin <mikael.morin@tele2.fr>
|
||||
|
||||
PR fortran/38859
|
||||
* simplify.c (simplify_bound): Don't use array specification
|
||||
if variable or component has subsequent references.
|
||||
|
||||
2009-01-17 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/38657
|
||||
|
@ -2253,7 +2253,10 @@ simplify_bound (gfc_expr *array, gfc_expr *dim, gfc_expr *kind, int upper)
|
||||
case AR_FULL:
|
||||
/* We're done because 'as' has already been set in the
|
||||
previous iteration. */
|
||||
goto done;
|
||||
if (!ref->next)
|
||||
goto done;
|
||||
|
||||
/* Fall through. */
|
||||
|
||||
case AR_SECTION:
|
||||
case AR_UNKNOWN:
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-01-19 Mikael Morin <mikael.morin@tele2.fr>
|
||||
|
||||
PR fortran/38859
|
||||
* gfortran.dg/bound_5.f90: New test.
|
||||
|
||||
2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/38736
|
||||
|
26
gcc/testsuite/gfortran.dg/bound_5.f90
Normal file
26
gcc/testsuite/gfortran.dg/bound_5.f90
Normal file
@ -0,0 +1,26 @@
|
||||
! { dg-do run }
|
||||
!
|
||||
! PR fortran/38859
|
||||
! Wrong bounds simplification
|
||||
!
|
||||
! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
|
||||
|
||||
type x
|
||||
integer I
|
||||
end type x
|
||||
type (x) A(0:5, 2:8)
|
||||
integer ida(2)
|
||||
|
||||
ida = lbound(a)
|
||||
if (any(ida /= (/0,2/))) call abort
|
||||
|
||||
ida = lbound(a%i)
|
||||
if (any(ida /= (/1,1/))) call abort
|
||||
|
||||
ida = ubound(a)
|
||||
if (any(ida /= (/5,8/))) call abort
|
||||
|
||||
ida = ubound(a%i)
|
||||
if (any(ida /= (/6,7/))) call abort
|
||||
|
||||
end
|
Loading…
Reference in New Issue
Block a user