diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2014-12-03 17:50:06 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2014-12-03 17:50:06 +0000 |
commit | 48749dbcc461753861059d1fc48c40d2e0aefaa2 (patch) | |
tree | ffa63d8c289a7c4e01689478d728abff9b4c33ab /gcc/fortran/trans-decl.c | |
parent | d6d34aa9133afdee0ca74b354a72cb720f431c1a (diff) | |
download | gcc-48749dbcc461753861059d1fc48c40d2e0aefaa2.zip gcc-48749dbcc461753861059d1fc48c40d2e0aefaa2.tar.gz gcc-48749dbcc461753861059d1fc48c40d2e0aefaa2.tar.bz2 |
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)
gcc/testsuite/ChangeLog:
2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* gfortran.dg/warnings_are_errors_1.f90: Update warnings to errors.
* gfortran.dg/warnings_are_errors_1.f: Likewise.
gcc/fortran/ChangeLog:
2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* gfortran.h (gfc_warning): Now returns bool. Add overload that
accepts opt.
(gfc_warning_1): Declare.
* error.c
(pp_warning_buffer,warningcount_buffered,werrorcount_buffered): New.
(gfc_buffer_error): Set pp_warning_buffer.flush_p.
(gfc_clear_pp_buffer): New.
(gfc_warning_1): Renamed from gfc_warning.
(gfc_warning): Add three new overloads. One that takes just a
format string and ellipsis, another that takes also a warning
option, and another that takes also va_list instead of ellipsis.
(gfc_clear_warning): Clear pp_warning_buffer.
(gfc_warning_check): Flush pp_warning_buffer and update warning
and werror counters.
(gfc_diagnostics_init): Init pp_warning_buffer.
* Update all gfc_warning calls that do not multiple
locations to use %qs and OPT_W*, otherwise use gfc_warning_1.
gcc/ChangeLog:
2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
(pp_flush): Flush only if flush_p.
(pp_really_flush): New.
* pretty-print.h (struct output_buffer): Add flush_p.
(pp_really_flush): Declare.
From-SVN: r218326
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r-- | gcc/fortran/trans-decl.c | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 713f969..780d350 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -3795,7 +3795,8 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) } /* TODO: move to the appropriate place in resolve.c. */ if (warn_return_type && el == NULL) - gfc_warning ("Return value of function '%s' at %L not set", + gfc_warning (OPT_Wreturn_type, + "Return value of function %qs at %L not set", proc_sym->name, &proc_sym->declared_at); } else if (proc_sym->as) @@ -4430,7 +4431,8 @@ gfc_create_module_variable (gfc_symbol * sym) if (warn_unused_variable && !sym->attr.referenced && sym->attr.access == ACCESS_PRIVATE) - gfc_warning ("Unused PRIVATE module variable '%s' declared at %L", + gfc_warning (OPT_Wunused_value, + "Unused PRIVATE module variable %qs declared at %L", sym->name, &sym->declared_at); /* We always want module variables to be created. */ @@ -4992,12 +4994,14 @@ generate_local_decl (gfc_symbol * sym) if (warn_unused_dummy_argument && sym->attr.intent == INTENT_OUT) { if (sym->ts.type != BT_DERIVED) - gfc_warning ("Dummy argument '%s' at %L was declared " + gfc_warning (OPT_Wunused_dummy_argument, + "Dummy argument %qs at %L was declared " "INTENT(OUT) but was not set", sym->name, &sym->declared_at); else if (!gfc_has_default_initializer (sym->ts.u.derived) && !sym->ts.u.derived->attr.zero_comp) - gfc_warning ("Derived-type dummy argument '%s' at %L was " + gfc_warning (OPT_Wunused_dummy_argument, + "Derived-type dummy argument %qs at %L was " "declared INTENT(OUT) but was not set and " "does not have a default initializer", sym->name, &sym->declared_at); @@ -5006,8 +5010,9 @@ generate_local_decl (gfc_symbol * sym) } else if (warn_unused_dummy_argument) { - gfc_warning ("Unused dummy argument '%s' at %L", sym->name, - &sym->declared_at); + gfc_warning (OPT_Wunused_dummy_argument, + "Unused dummy argument %qs at %L", sym->name, + &sym->declared_at); if (sym->backend_decl != NULL_TREE) TREE_NO_WARNING(sym->backend_decl) = 1; } @@ -5020,7 +5025,8 @@ generate_local_decl (gfc_symbol * sym) { if (sym->attr.use_only) { - gfc_warning ("Unused module variable '%s' which has been " + gfc_warning (OPT_Wunused_variable, + "Unused module variable %qs which has been " "explicitly imported at %L", sym->name, &sym->declared_at); if (sym->backend_decl != NULL_TREE) @@ -5028,7 +5034,8 @@ generate_local_decl (gfc_symbol * sym) } else if (!sym->attr.use_assoc) { - gfc_warning ("Unused variable '%s' declared at %L", + gfc_warning (OPT_Wunused_variable, + "Unused variable %qs declared at %L", sym->name, &sym->declared_at); if (sym->backend_decl != NULL_TREE) TREE_NO_WARNING(sym->backend_decl) = 1; @@ -5076,10 +5083,12 @@ generate_local_decl (gfc_symbol * sym) && !sym->attr.referenced) { if (!sym->attr.use_assoc) - gfc_warning ("Unused parameter '%s' declared at %L", sym->name, + gfc_warning (OPT_Wunused_parameter, + "Unused parameter %qs declared at %L", sym->name, &sym->declared_at); else if (sym->attr.use_only) - gfc_warning ("Unused parameter '%s' which has been explicitly " + gfc_warning (OPT_Wunused_parameter, + "Unused parameter %qs which has been explicitly " "imported at %L", sym->name, &sym->declared_at); } } @@ -5094,7 +5103,8 @@ generate_local_decl (gfc_symbol * sym) && !sym->attr.use_assoc && sym->attr.if_source != IFSRC_IFBODY) { - gfc_warning ("Return value '%s' of function '%s' declared at " + gfc_warning (OPT_Wreturn_type, + "Return value %qs of function %qs declared at " "%L not set", sym->result->name, sym->name, &sym->result->declared_at); @@ -5121,7 +5131,8 @@ generate_local_decl (gfc_symbol * sym) if (!sym->attr.referenced) { if (warn_unused_dummy_argument) - gfc_warning ("Unused dummy argument '%s' at %L", sym->name, + gfc_warning (OPT_Wunused_dummy_argument, + "Unused dummy argument %qs at %L", sym->name, &sym->declared_at); } @@ -5801,7 +5812,8 @@ gfc_generate_function_code (gfc_namespace * ns) { /* TODO: move to the appropriate place in resolve.c. */ if (warn_return_type && sym == sym->result) - gfc_warning ("Return value of function '%s' at %L not set", + gfc_warning (OPT_Wreturn_type, + "Return value of function %qs at %L not set", sym->name, &sym->declared_at); if (warn_return_type) TREE_NO_WARNING(sym->backend_decl) = 1; |