summaryrefslogtreecommitdiff
path: root/gcc/diagnostic.c
diff options
context:
space:
mode:
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>2012-04-19 12:51:25 +0000
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>2012-04-19 12:51:25 +0000
commite3d533cf83de1a5e9c17e7ff7a636fa3a8d53cb9 (patch)
treef9d69da45f4b091c49a739bee0c4b6c58d9b5e0a /gcc/diagnostic.c
parent8ee14c01c788aa62e6c8d827671f5f863ffc2acb (diff)
downloadgcc-e3d533cf83de1a5e9c17e7ff7a636fa3a8d53cb9.tar.gz
* diagnostic.c (emit_diagnostic): Move va_end call after user
of the va_list. (warning, warning_at, pedwarn, permerror): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186591 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r--gcc/diagnostic.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index 60773d3ac50..796a8f0620d 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -714,6 +714,7 @@ emit_diagnostic (diagnostic_t kind, location_t location, int opt,
{
diagnostic_info diagnostic;
va_list ap;
+ bool ret;
va_start (ap, gmsgid);
if (kind == DK_PERMERROR)
@@ -727,9 +728,10 @@ emit_diagnostic (diagnostic_t kind, location_t location, int opt,
if (kind == DK_WARNING || kind == DK_PEDWARN)
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
@@ -771,13 +773,15 @@ warning (int opt, const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
+ bool ret;
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_WARNING);
diagnostic.option_index = opt;
+ ret = report_diagnostic (&diagnostic);
va_end (ap);
- return report_diagnostic (&diagnostic);
+ return ret;
}
/* 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, ...)
{
diagnostic_info diagnostic;
va_list ap;
+ bool ret;
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, location, DK_WARNING);
diagnostic.option_index = opt;
+ ret = report_diagnostic (&diagnostic);
va_end (ap);
- return report_diagnostic (&diagnostic);
+ return ret;
}
/* A "pedantic" warning at LOCATION: issues a warning unless
@@ -815,12 +821,14 @@ pedwarn (location_t location, int opt, const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
+ bool ret;
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, location, DK_PEDWARN);
diagnostic.option_index = opt;
+ ret = report_diagnostic (&diagnostic);
va_end (ap);
- return report_diagnostic (&diagnostic);
+ return ret;
}
/* A "permissive" error at LOCATION: issues an error unless
@@ -835,13 +843,15 @@ permerror (location_t location, const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
+ bool ret;
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, location,
permissive_error_kind (global_dc));
diagnostic.option_index = permissive_error_option (global_dc);
+ ret = report_diagnostic (&diagnostic);
va_end (ap);
- return report_diagnostic (&diagnostic);
+ return ret;
}
/* A hard error: the code is definitely ill-formed, and an object file