Commit a6eea7ca authored by tkoenig's avatar tkoenig
Browse files

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
parent dd508a00
......@@ -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);
......
......@@ -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" }
......
......@@ -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
......
......@@ -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
......
! { 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 ("")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment