Commit 80f24351 by Michael Matz Committed by Michael Matz

diagnostic.c (emit_diagnostic): Move va_end call after user of the va_list.

	* diagnostic.c (emit_diagnostic): Move va_end call after user
	of the va_list.
	(warning, warning_at, pedwarn, permerror): Ditto.

From-SVN: r186591
parent d0a854af
2012-04-19 Michael Matz <matz@suse.de>
* diagnostic.c (emit_diagnostic): Move va_end call after user
of the va_list.
(warning, warning_at, pedwarn, permerror): Ditto.
2012-04-19 Richard Guenther <rguenther@suse.de> 2012-04-19 Richard Guenther <rguenther@suse.de>
* ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
......
...@@ -714,6 +714,7 @@ emit_diagnostic (diagnostic_t kind, location_t location, int opt, ...@@ -714,6 +714,7 @@ emit_diagnostic (diagnostic_t kind, location_t location, int opt,
{ {
diagnostic_info diagnostic; diagnostic_info diagnostic;
va_list ap; va_list ap;
bool ret;
va_start (ap, gmsgid); va_start (ap, gmsgid);
if (kind == DK_PERMERROR) if (kind == DK_PERMERROR)
...@@ -727,9 +728,10 @@ emit_diagnostic (diagnostic_t kind, location_t location, int opt, ...@@ -727,9 +728,10 @@ emit_diagnostic (diagnostic_t kind, location_t location, int opt,
if (kind == DK_WARNING || kind == DK_PEDWARN) if (kind == DK_WARNING || kind == DK_PEDWARN)
diagnostic.option_index = opt; diagnostic.option_index = opt;
} }
va_end (ap);
return report_diagnostic (&diagnostic); ret = report_diagnostic (&diagnostic);
va_end (ap);
return ret;
} }
/* An informative note at LOCATION. Use this for additional details on an error /* An informative note at LOCATION. Use this for additional details on an error
...@@ -771,13 +773,15 @@ warning (int opt, const char *gmsgid, ...) ...@@ -771,13 +773,15 @@ warning (int opt, const char *gmsgid, ...)
{ {
diagnostic_info diagnostic; diagnostic_info diagnostic;
va_list ap; va_list ap;
bool ret;
va_start (ap, gmsgid); va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_WARNING); diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_WARNING);
diagnostic.option_index = opt; diagnostic.option_index = opt;
ret = report_diagnostic (&diagnostic);
va_end (ap); va_end (ap);
return report_diagnostic (&diagnostic); return ret;
} }
/* A warning at LOCATION. Use this for code which is correct according to the /* A warning at LOCATION. Use this for code which is correct according to the
...@@ -789,12 +793,14 @@ warning_at (location_t location, int opt, const char *gmsgid, ...) ...@@ -789,12 +793,14 @@ warning_at (location_t location, int opt, const char *gmsgid, ...)
{ {
diagnostic_info diagnostic; diagnostic_info diagnostic;
va_list ap; va_list ap;
bool ret;
va_start (ap, gmsgid); va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, location, DK_WARNING); diagnostic_set_info (&diagnostic, gmsgid, &ap, location, DK_WARNING);
diagnostic.option_index = opt; diagnostic.option_index = opt;
ret = report_diagnostic (&diagnostic);
va_end (ap); va_end (ap);
return report_diagnostic (&diagnostic); return ret;
} }
/* A "pedantic" warning at LOCATION: issues a warning unless /* A "pedantic" warning at LOCATION: issues a warning unless
...@@ -815,12 +821,14 @@ pedwarn (location_t location, int opt, const char *gmsgid, ...) ...@@ -815,12 +821,14 @@ pedwarn (location_t location, int opt, const char *gmsgid, ...)
{ {
diagnostic_info diagnostic; diagnostic_info diagnostic;
va_list ap; va_list ap;
bool ret;
va_start (ap, gmsgid); va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, location, DK_PEDWARN); diagnostic_set_info (&diagnostic, gmsgid, &ap, location, DK_PEDWARN);
diagnostic.option_index = opt; diagnostic.option_index = opt;
ret = report_diagnostic (&diagnostic);
va_end (ap); va_end (ap);
return report_diagnostic (&diagnostic); return ret;
} }
/* A "permissive" error at LOCATION: issues an error unless /* A "permissive" error at LOCATION: issues an error unless
...@@ -835,13 +843,15 @@ permerror (location_t location, const char *gmsgid, ...) ...@@ -835,13 +843,15 @@ permerror (location_t location, const char *gmsgid, ...)
{ {
diagnostic_info diagnostic; diagnostic_info diagnostic;
va_list ap; va_list ap;
bool ret;
va_start (ap, gmsgid); va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, location, diagnostic_set_info (&diagnostic, gmsgid, &ap, location,
permissive_error_kind (global_dc)); permissive_error_kind (global_dc));
diagnostic.option_index = permissive_error_option (global_dc); diagnostic.option_index = permissive_error_option (global_dc);
ret = report_diagnostic (&diagnostic);
va_end (ap); va_end (ap);
return report_diagnostic (&diagnostic); return ret;
} }
/* A hard error: the code is definitely ill-formed, and an object file /* A hard error: the code is definitely ill-formed, and an object file
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment