From: kargl Date: Sat, 24 Apr 2010 20:32:04 +0000 (+0000) Subject: 2010-04-24 Steven G. Kargl X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7f14c1e0b9577ac6b61cada410ea2aa912ccb17a;p=thirdparty%2Fgcc.git 2010-04-24 Steven G. Kargl PR fortran/30073 PR fortran/43793 * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead of mucking with a tree directly. 2010-04-24 Steven G. Kargl PR fortran/30073 PR fortran/43793 gfortran.dg/pr43793.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158692 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 82d2fe3591a1..a45ba4f80806 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2010-04-24 Steven G. Kargl + + PR fortran/30073 + PR fortran/43793 + * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead + of mucking with a tree directly. + 2010-04-24 Jerry DeLisle PR fortran/43832 diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index c3a92bc320eb..1b56189d9411 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -2336,7 +2336,7 @@ gfc_trans_array_bound_check (gfc_se * se, tree descriptor, tree index, int n, name = "unnamed constant"; } - if (descriptor->base.code != COMPONENT_REF) + if (TREE_CODE (descriptor) == VAR_DECL) name = IDENTIFIER_POINTER (DECL_NAME (descriptor)); /* If upper bound is present, include both bounds in the error message. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0133717fc204..db7d77cea8be 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-04-24 Steven G. Kargl + + PR fortran/30073 + PR fortran/43793 + gfortran.dg/pr43793.f90: New test. + 2010-04-24 Bernd Schmidt PR tree-optimization/41442 diff --git a/gcc/testsuite/gfortran.dg/pr43793.f90 b/gcc/testsuite/gfortran.dg/pr43793.f90 new file mode 100644 index 000000000000..c30f8422bea0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr43793.f90 @@ -0,0 +1,23 @@ +! { dg-do compile } +! +! PR fortran/30073 +! PR fortran/43793 +! +! Original code by Joost VandeVondele +! Reduced and corrected code by Steven G. Kargl +! +module fft_tools + implicit none + integer, parameter :: lp = 8 +contains + subroutine sparse_alltoall (rs, rq, rcount) + complex(kind=lp), dimension(:, :), pointer :: rs, rq + integer, dimension(:) :: rcount + integer :: pos + pos = 1 + if (rcount(pos) /= 0) then + rq(1:rcount(pos),pos) = rs(1:rcount(pos),pos) + end if + end subroutine sparse_alltoall +end module fft_tools +! { dg-final { cleanup-modules "fft_tools" } }