From 16db2a6aa770f2e3285f3f4e9ab955a7c4cce5c1 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Sun, 23 Nov 2014 18:14:10 +0100 Subject: [PATCH] gfortran.h (gfc_option_t): Remove warn_tabs. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2014-11-23 Tobias Burnus Manuel López-Ibáñez gcc/fortran/ * gfortran.h (gfc_option_t): Remove warn_tabs. * lang.opt (Wpedantic): Add. (Wtabs): Use Var and LangEnabledBy. * options.c (gfc_init_options, gfc_post_options, set_Wall): Remove -Wtabs handling. (gfc_handle_option): Update -std=, remove OPT_Wtabs. * scanner.c (gfc_gobble_whitespace): Update for flag-variable renaming. (load_line): Ditto. Pass warn flag to diagnostic. gcc/testsuite/ * gfortran.dg/tab_continuation.f: Update dg-*. Co-Authored-By: Manuel López-Ibáñez From-SVN: r217985 --- gcc/fortran/ChangeLog | 13 +++++++++++++ gcc/fortran/gfortran.h | 1 - gcc/fortran/lang.opt | 10 +++++++++- gcc/fortran/options.c | 19 +++++-------------- gcc/fortran/scanner.c | 10 +++++----- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gfortran.dg/tab_continuation.f | 13 +++++++++---- 7 files changed, 45 insertions(+), 25 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index db650e3f90c..ddccf96e72c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,16 @@ +2014-11-23 Tobias Burnus + Manuel López-Ibáñez + + * gfortran.h (gfc_option_t): Remove warn_tabs. + * lang.opt (Wpedantic): Add. + (Wtabs): Use Var and LangEnabledBy. + * options.c (gfc_init_options, gfc_post_options, + set_Wall): Remove -Wtabs handling. + (gfc_handle_option): Update -std=, remove OPT_Wtabs. + * scanner.c (gfc_gobble_whitespace): Update for + flag-variable renaming. + (load_line): Ditto. Pass warn flag to diagnostic. + 2014-11-22 Tobias Burnus * trans-expr.c (gfc_caf_get_image_index): Fix image calculation. diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index b0f15b40080..1ee7dd49795 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -2452,7 +2452,6 @@ typedef struct int warn_implicit_procedure; int warn_line_truncation; int warn_surprising; - int warn_tabs; int warn_underflow; int warn_intrinsic_shadow; int warn_intrinsics_std; diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt index d6fe60308b0..5da0453b9be 100644 --- a/gcc/fortran/lang.opt +++ b/gcc/fortran/lang.opt @@ -269,6 +269,10 @@ Wopenmp-simd Fortran ; Documented in C +Wpedantic +Fortran +; Documented in common.opt + Wreal-q-constant Fortran Warning Warn about real-literal-constants with 'q' exponent-letter @@ -294,9 +298,13 @@ Fortran Warning Warn about \"suspicious\" constructs Wtabs -Fortran Warning +Fortran Warning Var(warn_tabs) LangEnabledBy(Fortran,Wall) Permit nonconforming uses of the tab character +Wtabs +LangEnabledBy(Fortran,Wpedantic) +; + Wunderflow Fortran Warning Warn about underflow of numerical constant expressions diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index bbbd6abaca1..dee1af48a7c 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -104,7 +104,6 @@ gfc_init_options (unsigned int decoded_options_count, gfc_option.warn_implicit_interface = 0; gfc_option.warn_line_truncation = 0; gfc_option.warn_surprising = 0; - gfc_option.warn_tabs = 1; gfc_option.warn_underflow = 1; gfc_option.warn_intrinsic_shadow = 0; gfc_option.warn_intrinsics_std = 0; @@ -430,10 +429,7 @@ gfc_post_options (const char **pfilename) gfc_option.flag_max_stack_var_size = 0; if (pedantic) - { - gfc_option.warn_ampersand = 1; - gfc_option.warn_tabs = 0; - } + gfc_option.warn_ampersand = 1; /* Optimization implies front end optimization, unless the user specified it directly. */ @@ -461,7 +457,6 @@ set_Wall (int setting) gfc_option.gfc_warn_conversion = setting; gfc_option.warn_line_truncation = setting; gfc_option.warn_surprising = setting; - gfc_option.warn_tabs = !setting; gfc_option.warn_underflow = setting; gfc_option.warn_intrinsic_shadow = setting; gfc_option.warn_intrinsics_std = setting; @@ -720,10 +715,6 @@ gfc_handle_option (size_t scode, const char *arg, int value, gfc_option.warn_surprising = value; break; - case OPT_Wtabs: - gfc_option.warn_tabs = value; - break; - case OPT_Wtarget_lifetime: gfc_option.warn_target_lifetime = value; break; @@ -1038,7 +1029,7 @@ gfc_handle_option (size_t scode, const char *arg, int value, gfc_option.max_continue_free = 39; gfc_option.max_identifier_length = 31; gfc_option.warn_ampersand = 1; - gfc_option.warn_tabs = 0; + warn_tabs = 1; break; case OPT_std_f2003: @@ -1047,7 +1038,7 @@ gfc_handle_option (size_t scode, const char *arg, int value, gfc_option.warn_std = GFC_STD_F95_OBS; gfc_option.max_identifier_length = 63; gfc_option.warn_ampersand = 1; - gfc_option.warn_tabs = 0; + warn_tabs = 1; break; case OPT_std_f2008: @@ -1056,7 +1047,7 @@ gfc_handle_option (size_t scode, const char *arg, int value, gfc_option.warn_std = GFC_STD_F95_OBS | GFC_STD_F2008_OBS; gfc_option.max_identifier_length = 63; gfc_option.warn_ampersand = 1; - gfc_option.warn_tabs = 0; + warn_tabs = 1; break; case OPT_std_f2008ts: @@ -1066,7 +1057,7 @@ gfc_handle_option (size_t scode, const char *arg, int value, gfc_option.warn_std = GFC_STD_F95_OBS | GFC_STD_F2008_OBS; gfc_option.max_identifier_length = 63; gfc_option.warn_ampersand = 1; - gfc_option.warn_tabs = 0; + warn_tabs = 1; break; case OPT_std_gnu: diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c index 2c0d4c3cf21..e0b9a3bbbb8 100644 --- a/gcc/fortran/scanner.c +++ b/gcc/fortran/scanner.c @@ -1382,7 +1382,7 @@ gfc_gobble_whitespace (void) /* Issue a warning for nonconforming tabs. We keep track of the line number because the Fortran matchers will often back up and the same line will be scanned multiple times. */ - if (!gfc_option.warn_tabs && c == '\t') + if (warn_tabs && c == '\t') { int cur_linenum = LOCATION_LINE (gfc_current_locus.lb->location); if (cur_linenum != linenum) @@ -1534,12 +1534,12 @@ load_line (FILE *input, gfc_char_t **pbuf, int *pbuflen, const int *first_char) { found_tab = true; - if (!gfc_option.warn_tabs && seen_comment == 0 - && current_line != linenum) + if (warn_tabs && seen_comment == 0 && current_line != linenum) { linenum = current_line; - gfc_warning_now_2 ("Nonconforming tab character in column %d " - "of line %d", i+1, linenum); + gfc_warning_now_2 (OPT_Wtabs, + "Nonconforming tab character in column %d " + "of line %d", i+1, linenum); } while (i < 6) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3d6062fd801..d4d13c50030 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-11-23 Tobias Burnus + + * gfortran.dg/tab_continuation.f: Update dg-*. + 2014-11-23 Andrew Pinski * gcc.c-torture/compile/20120927-1.c: New testcase. diff --git a/gcc/testsuite/gfortran.dg/tab_continuation.f b/gcc/testsuite/gfortran.dg/tab_continuation.f index 65cb7b4a31e..85d230774b1 100644 --- a/gcc/testsuite/gfortran.dg/tab_continuation.f +++ b/gcc/testsuite/gfortran.dg/tab_continuation.f @@ -4,12 +4,17 @@ ! ! Allow 1 to 9 as continuation marker, which is a very common ! vendor extension. +! +! Note: The test suite is run with -pedantic-errors, which both enables +! the tab warning (-pedantic implies -Wtabs) and turns it into errors +! (-pedantic-errors hence implies -Werror=tabs). ! PARAMETER (LUMIN=11,LUMAX=20,MAPMAX=256,NPLANEMAX=999) INTEGER NAXIS(0:MAPMAX,LUMIN:LUMAX),NAXIS1(0:MAPMAX,LUMIN:LUMAX), 1NAXIS2(0:MAPMAX,LUMIN:LUMAX),NAXIS3(0:MAPMAX,LUMIN:LUMAX) end -! { dg-warning "Nonconforming tab character in column 1 of line 8" "Nonconforming tab" { target *-*-* } 0 } -! { dg-warning "Nonconforming tab character in column 1 of line 9" "Nonconforming tab" { target *-*-* } 0 } -! { dg-warning "Nonconforming tab character in column 1 of line 10" "Nonconforming tab" { target *-*-* } 0 } -! { dg-warning "Nonconforming tab character in column 1 of line 11" "Nonconforming tab" { target *-*-* } 0 } +! { dg-error "Nonconforming tab character in column 1 of line 12" "Nonconforming tab" { target *-*-* } 0 } +! { dg-error "Nonconforming tab character in column 1 of line 13" "Nonconforming tab" { target *-*-* } 0 } +! { dg-error "Nonconforming tab character in column 1 of line 14" "Nonconforming tab" { target *-*-* } 0 } +! { dg-error "Nonconforming tab character in column 1 of line 15" "Nonconforming tab" { target *-*-* } 0 } +! { dg-excess-errors "some warnings being treated as errors" } -- 2.30.2