diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2007-12-22 17:43:54 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2007-12-22 17:43:54 +0000 |
commit | 62ee27a4694a9dcd8a9470217dd03900ef7c8ba3 (patch) | |
tree | 41607f39362975ca67ecae602468bdef090337fd | |
parent | a507baad28f59b247787b3e5c05e855838182186 (diff) | |
download | gcc-62ee27a4694a9dcd8a9470217dd03900ef7c8ba3.zip gcc-62ee27a4694a9dcd8a9470217dd03900ef7c8ba3.tar.gz gcc-62ee27a4694a9dcd8a9470217dd03900ef7c8ba3.tar.bz2 |
re PR fortran/34549 (cshifting by a real value)
2007-12-22 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/34549
* check.c (gfc_check_cshift): Add check that shift is
type INTEGER.
2007-12-22 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/34549
* cshift_shift_real_1.f90: New test.
From-SVN: r131136
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/check.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/cshift_shift_real_1.f90 | 8 |
4 files changed, 22 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index c67dca5..a5bf542 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-12-22 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/34549 + * check.c (gfc_check_cshift): Add check that shift is + type INTEGER. + 2007-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/34540 diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index 511dce6..9cc4d85 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -853,6 +853,9 @@ gfc_check_cshift (gfc_expr *array, gfc_expr *shift, gfc_expr *dim) if (array_check (array, 0) == FAILURE) return FAILURE; + if (type_check (shift, 1, BT_INTEGER) == FAILURE) + return FAILURE; + if (array->rank == 1) { if (scalar_check (shift, 1) == FAILURE) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5bc4828..f079ae6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-12-22 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/34549 + * cshift_shift_real_1.f90: New test. + 2007-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/34540 diff --git a/gcc/testsuite/gfortran.dg/cshift_shift_real_1.f90 b/gcc/testsuite/gfortran.dg/cshift_shift_real_1.f90 new file mode 100644 index 0000000..93f4a1c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/cshift_shift_real_1.f90 @@ -0,0 +1,8 @@ +! { dg-do compile } +! PR 34549 - a real value was accepted for shift. +program main + implicit none + real, dimension(2,2) :: r + data r /1.0, 2.0, 3.0, 4.0/ + print *,cshift(r,shift=2.3,dim=1) ! { dg-error "must be INTEGER" } +end program main |