diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and document its semantics.

* diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
	document its semantics.
	(diagnostic_report_diagnostic): Adjust accordingly.

From-SVN: r201574
This commit is contained in:
Eric Botcazou 2013-08-07 17:15:25 +00:00 committed by Eric Botcazou
parent 6cb784b639
commit 3c8ca1abde
4 changed files with 27 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
* diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
document its semantics.
(diagnostic_report_diagnostic): Adjust accordingly.
2013-08-07 David Malcolm <dmalcolm@redhat.com>
* config/sparc/sparc.c (insert_pass_work_around_errata): Move

View File

@ -554,7 +554,8 @@ default_diagnostic_finalizer (diagnostic_context *context ATTRIBUTE_UNUSED,
/* Interface to specify diagnostic kind overrides. Returns the
previous setting, or DK_UNSPECIFIED if the parameters are out of
range. */
range. If OPTION_INDEX is zero, the new setting is for all the
diagnostics. */
diagnostic_t
diagnostic_classify_diagnostic (diagnostic_context *context,
int option_index,
@ -563,7 +564,7 @@ diagnostic_classify_diagnostic (diagnostic_context *context,
{
diagnostic_t old_kind;
if (option_index <= 0
if (option_index < 0
|| option_index >= context->n_opts
|| new_kind >= DK_LAST_DIAGNOSTIC_KIND)
return DK_UNSPECIFIED;
@ -695,9 +696,8 @@ diagnostic_report_diagnostic (diagnostic_context *context,
/* This tests for #pragma diagnostic changes. */
if (context->n_classification_history > 0)
{
int i;
/* FIXME: Stupid search. Optimize later. */
for (i = context->n_classification_history - 1; i >= 0; i --)
for (int i = context->n_classification_history - 1; i >= 0; i --)
{
if (linemap_location_before_p
(line_table,
@ -709,7 +709,9 @@ diagnostic_report_diagnostic (diagnostic_context *context,
i = context->classification_history[i].option;
continue;
}
if (context->classification_history[i].option == diagnostic->option_index)
int option = context->classification_history[i].option;
/* The option 0 is for all the diagnostics. */
if (option == 0 || option == diagnostic->option_index)
{
diag_class = context->classification_history[i].kind;
if (diag_class != DK_UNSPECIFIED)

View File

@ -1,3 +1,7 @@
2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/warn9.adb: New test.
2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/46206

View File

@ -0,0 +1,10 @@
-- { dg-do compile }
-- { dg-options "-Wuninitialized" }
pragma Warnings (Off);
function Warn9 return Integer is
I : Integer;
begin
return I;
end;