aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2009-09-24 21:53:36 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2009-09-24 21:53:36 +0000
commitbbffcb7eab761f5223678e7153be5d51560c33eb (patch)
treea18fbbc34372ef34d15127a85a1e198e639d0e5a /gcc
parente3d5405d071e33540d70c62c6e24a2dfa7cc7d9d (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/fortran/error.c6
-rw-r--r--gcc/fortran/parse.c5
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gfortran.dg/empty_label.f5
-rw-r--r--gcc/testsuite/gfortran.dg/empty_label.f905
-rw-r--r--gcc/testsuite/gfortran.dg/warnings_are_errors_1.f2
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):