]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/33539 (Too much noise for zero-length character strings)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Thu, 4 Oct 2007 20:26:24 +0000 (20:26 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Thu, 4 Oct 2007 20:26:24 +0000 (20:26 +0000)
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.

From-SVN: r129022

gcc/fortran/resolve.c
gcc/testsuite/gfortran.dg/char_length_2.f90
gcc/testsuite/gfortran.dg/repeat_2.f90
gcc/testsuite/gfortran.dg/repeat_4.f90
gcc/testsuite/gfortran.dg/zero_length_2.f90

index 82c990d9a9d9c57981e8eabff6e7cc4504504144..536b3c5d3f751bddccf0f268225d0cfbec0d3b0b 100644 (file)
@@ -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);
index dc2efb94f77921ac4dcea552cb55c5f74c890780..a519c540fd3304d34ce7c003a0f03cfb421cc0c1 100644 (file)
@@ -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" }
index bcb70e2131c10a53cdbe4d777bb6ac2eb12b6e0a..d71f1860aa33e21ba431f30a9cd6bfdd96a98f48 100644 (file)
@@ -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
index 64d213a147fded9b993aea7ac0d8b093048f1508..e5b5acc60ce6be47887b9478e9c35190701242a5 100644 (file)
@@ -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
 
index 31b99f58fac5e33ccfc4c38706339e9881921a4e..2cc3f2938ca121f43d4c59f7524ade9cd5ae8c43 100644 (file)
@@ -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 ("")