diff options
author | Richard Henderson <rth@cygnus.com> | 2000-04-22 11:41:05 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-04-22 11:41:05 -0700 |
commit | 6f81b1ade69b0a968ba6fe5ea1e633cb75a11db4 (patch) | |
tree | 1cdfebb14f928bf66cf2dcec028f0342806d1b1e /gcc/diagnostic.c | |
parent | d9490f2f4ebedc6c568b963b230f20b298a22159 (diff) | |
download | gcc-6f81b1ade69b0a968ba6fe5ea1e633cb75a11db4.zip gcc-6f81b1ade69b0a968ba6fe5ea1e633cb75a11db4.tar.gz gcc-6f81b1ade69b0a968ba6fe5ea1e633cb75a11db4.tar.bz2 |
diagnostic.c (init_output_buffer): Don't initialize format_args.
* diagnostic.c (init_output_buffer): Don't initialize format_args.
(output_clear): Likewise.
(output_printf): Use va_copy.
(vline_wrapper_message_with_location): Likewise.
(v_message_with_decl): Likewise.
(line_wrapper_printf): VA_START infor buffer.format_args directly.
* system.h (va_copy): Provide default implementation.
From-SVN: r33341
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r-- | gcc/diagnostic.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index 28b6998..93678ac 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -198,7 +198,6 @@ init_output_buffer (buffer, prefix, maximum_length) output_set_prefix (buffer, prefix); buffer->cursor = NULL; - buffer->format_args = NULL; } /* Reinitialize BUFFER. */ @@ -209,7 +208,6 @@ output_clear (buffer) obstack_free (&buffer->obstack, obstack_base (&buffer->obstack)); buffer->line_length = 0; buffer->cursor = NULL; - buffer->format_args = NULL; } /* Finishes to construct a NULL-terminated character string representing @@ -493,7 +491,7 @@ output_printf VPARAMS ((struct output_buffer *buffer, const char *msgid, ...)) msgid = va_arg (ap, const char *); #endif - buffer->format_args = ap; + va_copy (buffer->format_args, ap); output_notice (buffer, msgid); va_end (buffer->format_args); } @@ -510,17 +508,15 @@ line_wrapper_printf VPARAMS ((FILE *file, const char *msgid, ...)) const char *msgid; #endif output_buffer buffer; - va_list ap; - VA_START (ap, msgid); + init_output_buffer (&buffer, NULL, output_maximum_width); + VA_START (buffer.format_args, msgid); #ifndef ANSI_PROTOTYPES - file = va_arg (ap, FILE *); - msgid = va_arg (ap, const char *); + file = va_arg (buffer.format_args, FILE *); + msgid = va_arg (buffer.format_args, const char *); #endif - init_output_buffer (&buffer, NULL, output_maximum_width); - buffer.format_args = ap; output_notice (&buffer, msgid); output_flush_on (&buffer, file); @@ -538,9 +534,9 @@ vline_wrapper_message_with_location (file, line, warn, msgid, ap) { output_buffer buffer; - init_output_buffer - (&buffer, build_location_prefix (file, line, warn), output_maximum_width); - buffer.format_args = ap; + init_output_buffer (&buffer, build_location_prefix (file, line, warn), + output_maximum_width); + va_copy (buffer.format_args, ap); output_notice (&buffer, msgid); output_flush_on (&buffer, stderr); @@ -681,9 +677,9 @@ v_message_with_decl (decl, warn, msgid, ap) { if (doing_line_wrapping ()) { - buffer.format_args = ap; + va_copy (buffer.format_args, ap); output_notice (&buffer, p); - ap = buffer.format_args; + va_copy (ap, buffer.format_args); } else vfprintf (stderr, p, ap); |