diff options
| author | domob <domob@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-02-09 10:44:33 +0000 |
|---|---|---|
| committer | domob <domob@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-02-09 10:44:33 +0000 |
| commit | 7c96794044ca6038994331cf975e1825ca2b4433 (patch) | |
| tree | 5bcd189f3e87b31375c8012f64334e51a3ff2214 /gcc/fortran | |
| parent | 38307b082b8f0b14f873f69ebc5cf8b0a1d9f903 (diff) | |
| download | gcc-7c96794044ca6038994331cf975e1825ca2b4433.tar.gz | |
2010-02-09 Daniel Kraft <d@domob.eu>
PR fortran/39171
* resolve.c (resolve_charlen): Change warning about negative CHARACTER
length to be correct and issue only with -Wsurprising.
* invoke.texi (Wsurprising): Mention this new warning that is
turned on by -Wsurprising.
2010-02-09 Daniel Kraft <d@domob.eu>
PR fortran/39171
* gfortran.dg/char_length_2.f90: Change warning expectations accordingly
and pass -Wsurprising as necessary.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156620 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
| -rw-r--r-- | gcc/fortran/ChangeLog | 8 | ||||
| -rw-r--r-- | gcc/fortran/invoke.texi | 3 | ||||
| -rw-r--r-- | gcc/fortran/resolve.c | 6 |
3 files changed, 15 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index cd0c1be8a6a..3c6d0095dcf 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,13 @@ 2010-02-09 Daniel Kraft <d@domob.eu> + PR fortran/39171 + * resolve.c (resolve_charlen): Change warning about negative CHARACTER + length to be correct and issue only with -Wsurprising. + * invoke.texi (Wsurprising): Mention this new warning that is + turned on by -Wsurprising. + +2010-02-09 Daniel Kraft <d@domob.eu> + PR fortran/41507 * intrinsic.texi (MAXVAL): Remove wrong claim that array argument can be CHARACTER type. diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index 21db29339bc..88a395d04d0 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -792,6 +792,9 @@ A TRANSFER specifies a source that is shorter than the destination. @item The type of a function result is declared more than once with the same type. If @option{-pedantic} or standard-conforming mode is enabled, this is an error. + +@item +A @code{CHARACTER} variable is declared with negative length. @end itemize @item -Wtabs diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index d0aa6adf9c3..b525e32b166 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -8559,8 +8559,10 @@ resolve_charlen (gfc_charlen *cl) value, the length of character entities declared is zero." */ if (cl->length && !gfc_extract_int (cl->length, &i) && i < 0) { - gfc_warning_now ("CHARACTER variable has zero length at %L", - &cl->length->where); + if (gfc_option.warn_surprising) + gfc_warning_now ("CHARACTER variable at %L has negative length %d," + " the length has been set to zero", + &cl->length->where, i); gfc_replace_expr (cl->length, gfc_int_expr (0)); } |
