diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2009-09-24 21:53:36 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2009-09-24 21:53:36 +0000 |
commit | bbffcb7eab761f5223678e7153be5d51560c33eb (patch) | |
tree | a18fbbc34372ef34d15127a85a1e198e639d0e5a /gcc | |
parent | e3d5405d071e33540d70c62c6e24a2dfa7cc7d9d (diff) | |
download | gcc-bbffcb7eab761f5223678e7153be5d51560c33eb.zip gcc-bbffcb7eab761f5223678e7153be5d51560c33eb.tar.gz gcc-bbffcb7eab761f5223678e7153be5d51560c33eb.tar.bz2 |
re PR fortran/41459 (Error not printed with -Werror and -fmax-errors=1)
2009-09-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/41459
* gfortran.dg/empty_label.f: New test.
* gfortran.dg/empty_label.f90: Ditto.
* gfortran.dg/warnings_are_errors_1.f: Fix to emit a single warning.
2009-09-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/41459
* error.c(gfc_warning_now): Move warnings_are_errors test to
after actual emitting of the warning.
* parse.c (next_free): Improve error locus printing.
(next_fixed): Change gfc_warn to gfc_warning_now, and improve
locus reporting.
From-SVN: r152147
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/fortran/error.c | 6 | ||||
-rw-r--r-- | gcc/fortran/parse.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/empty_label.f | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/empty_label.f90 | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/warnings_are_errors_1.f | 2 |
7 files changed, 35 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9c9744b..650adca 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,13 @@ +2009-09-24 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/41459 + * error.c(gfc_warning_now): Move warnings_are_errors test to + after actual emitting of the warning. + * parse.c (next_free): Improve error locus printing. + (next_fixed): Change gfc_warn to gfc_warning_now, and improve + locus reporting. + + 2009-09-16 Michael Matz <matz@suse.de> PR fortran/41212 diff --git a/gcc/fortran/error.c b/gcc/fortran/error.c index 9d5453e..88c2883 100644 --- a/gcc/fortran/error.c +++ b/gcc/fortran/error.c @@ -821,14 +821,16 @@ gfc_warning_now (const char *nocmsgid, ...) i = buffer_flag; buffer_flag = 0; warnings++; - if (warnings_are_errors) - gfc_increment_error_count(); va_start (argp, nocmsgid); error_print (_("Warning:"), _(nocmsgid), argp); va_end (argp); error_char ('\0'); + + if (warnings_are_errors) + gfc_increment_error_count(); + buffer_flag = i; } diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index e743989..93a6cfd 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -655,7 +655,7 @@ next_free (void) if (gfc_match_eos () == MATCH_YES) { gfc_warning_now ("Ignoring statement label in empty statement " - "at %C"); + "at %L", &label_locus); gfc_free_st_label (gfc_statement_label); gfc_statement_label = NULL; return ST_NONE; @@ -848,7 +848,8 @@ next_fixed (void) blank_line: if (digit_flag) - gfc_warning ("Ignoring statement label in empty statement at %C"); + gfc_warning_now ("Ignoring statement label in empty statement at %L", + &label_locus); gfc_current_locus.lb->truncated = 0; gfc_advance_line (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2511b4e..c307a0f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2009-09-24 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/41459 + * gfortran.dg/empty_label.f: New test. + * gfortran.dg/empty_label.f90: Ditto. + * gfortran.dg/warnings_are_errors_1.f: Fix to emit a single warning. + 2009-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * gcc.dg/torture/builtin-math-7.c: Test complex int division at diff --git a/gcc/testsuite/gfortran.dg/empty_label.f b/gcc/testsuite/gfortran.dg/empty_label.f new file mode 100644 index 0000000..446fe8b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/empty_label.f @@ -0,0 +1,5 @@ +C { dg-do compile } +C { dg-options "-Werror -fmax-errors=1" } +100 ! { dg-warning "empty statement" } + end +C { dg-error "count reached limit" "" { target *-*-* } 0 } diff --git a/gcc/testsuite/gfortran.dg/empty_label.f90 b/gcc/testsuite/gfortran.dg/empty_label.f90 new file mode 100644 index 0000000..6300d30 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/empty_label.f90 @@ -0,0 +1,5 @@ +! { dg-do compile } +! { dg-options "-Werror -fmax-errors=1" } +100 ! { dg-warning "empty statement" } +end +! { dg-error "count reached limit" "" { target *-*-* } 0 } diff --git a/gcc/testsuite/gfortran.dg/warnings_are_errors_1.f b/gcc/testsuite/gfortran.dg/warnings_are_errors_1.f index 2452b49..3d163bb 100644 --- a/gcc/testsuite/gfortran.dg/warnings_are_errors_1.f +++ b/gcc/testsuite/gfortran.dg/warnings_are_errors_1.f @@ -8,7 +8,7 @@ integer(kind=1) :: i real :: r1, r2(3) ! gfc_warning_now: -0 ! { dg-warning "Zero is not a valid statement label" } +0 r1 = 0 ! { dg-warning "Zero is not a valid statement label" } ! 34 5 i=0 ! gfc_notify_std(GFC_STD_F95_DEL): |