diff options
author | tkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-04 20:26:24 +0000 |
---|---|---|
committer | tkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-04 20:26:24 +0000 |
commit | a6eea7cab481b74e411c92c2533c989f4f138bb6 (patch) | |
tree | 5c4da28c82571183db8296f69b54b10292eec205 /gcc | |
parent | dd508a0080f1b5ad9643d260f133353b50aec173 (diff) | |
download | gcc-a6eea7cab481b74e411c92c2533c989f4f138bb6.tar.gz |
2007-10-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/33539
* resolve.c: Only warn if the string length is
less than zero.
2007-10-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/33539
* zero_length_2.f90: Omit warning for zero-length string.
* repeat_2.f90: Likewise.
* repeat_4.f90: Likewise.
* char_length_2.f90: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129022 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/resolve.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/char_length_2.f90 | 2 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/repeat_2.f90 | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/repeat_4.f90 | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/zero_length_2.f90 | 2 |
5 files changed, 7 insertions, 7 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 82c990d9a9d..536b3c5d3f7 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -6558,7 +6558,7 @@ resolve_charlen (gfc_charlen *cl) /* "If the character length parameter value evaluates to a negative value, the length of character entities declared is zero." */ - if (cl->length && !gfc_extract_int (cl->length, &i) && i <= 0) + if (cl->length && !gfc_extract_int (cl->length, &i) && i < 0) { gfc_warning_now ("CHARACTER variable has zero length at %L", &cl->length->where); diff --git a/gcc/testsuite/gfortran.dg/char_length_2.f90 b/gcc/testsuite/gfortran.dg/char_length_2.f90 index dc2efb94f77..a519c540fd3 100644 --- a/gcc/testsuite/gfortran.dg/char_length_2.f90 +++ b/gcc/testsuite/gfortran.dg/char_length_2.f90 @@ -3,7 +3,7 @@ ! CHARACTER lengths weren't reduced early enough for all checks of ! them to be meaningful. Furthermore negative string lengths weren't ! dealt with correctly. -CHARACTER(len=0) :: c1 ! { dg-warning "CHARACTER variable has zero length" } +CHARACTER(len=0) :: c1 ! This is OK. CHARACTER(len=-1) :: c2 ! { dg-warning "CHARACTER variable has zero length" } PARAMETER(I=-100) CHARACTER(len=I) :: c3 ! { dg-warning "CHARACTER variable has zero length" } diff --git a/gcc/testsuite/gfortran.dg/repeat_2.f90 b/gcc/testsuite/gfortran.dg/repeat_2.f90 index bcb70e2131c..d71f1860aa3 100644 --- a/gcc/testsuite/gfortran.dg/repeat_2.f90 +++ b/gcc/testsuite/gfortran.dg/repeat_2.f90 @@ -22,10 +22,10 @@ end subroutine bar program test implicit none - character(len=0), parameter :: s0 = "" ! { dg-warning "zero length" } + character(len=0), parameter :: s0 = "" character(len=1), parameter :: s1 = "a" character(len=2), parameter :: s2 = "ab" - character(len=0) :: t0 ! { dg-warning "CHARACTER variable has zero length" } + character(len=0) :: t0 character(len=1) :: t1 character(len=2) :: t2 integer :: i diff --git a/gcc/testsuite/gfortran.dg/repeat_4.f90 b/gcc/testsuite/gfortran.dg/repeat_4.f90 index 64d213a147f..e5b5acc60ce 100644 --- a/gcc/testsuite/gfortran.dg/repeat_4.f90 +++ b/gcc/testsuite/gfortran.dg/repeat_4.f90 @@ -3,10 +3,10 @@ ! { dg-do compile } program test implicit none - character(len=0), parameter :: s0 = "" ! { dg-warning "zero length" } + character(len=0), parameter :: s0 = "" character(len=1), parameter :: s1 = "a" character(len=2), parameter :: s2 = "ab" - character(len=0) :: t0 ! { dg-warning "CHARACTER variable has zero length" } + character(len=0) :: t0 character(len=1) :: t1 character(len=2) :: t2 diff --git a/gcc/testsuite/gfortran.dg/zero_length_2.f90 b/gcc/testsuite/gfortran.dg/zero_length_2.f90 index 31b99f58fac..2cc3f2938ca 100644 --- a/gcc/testsuite/gfortran.dg/zero_length_2.f90 +++ b/gcc/testsuite/gfortran.dg/zero_length_2.f90 @@ -1,6 +1,6 @@ ! { dg-do run } character(len=1) :: s - character(len=0) :: s0 ! { dg-warning "CHARACTER variable has zero length" } + character(len=0) :: s0 s = " " s0 = "" call bar ("") |