+2003-06-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * diagnostic.h (output_host_wide_integer): Declare.
+ * diagnostic.c (output_long_long_decicaml): New function.
+ (output_host_wide_integer): Likewise.
+ (output_format): Use them. Handle "%ll" and "%w".
+
2003-06-21 Jason Thorpe <thorpej@wasabisystems.com>
* config.gcc (*-*-netbsd*): Add t-libgcc-pic to tmake_file.
output_formatted_scalar (buffer, "%lx", i);
}
+static inline void
+output_long_long_decimal (output_buffer *buffer, long long int i)
+{
+ output_formatted_scalar (buffer, "%lld", i);
+}
+
+void
+output_host_wide_integer (output_buffer *buffer, HOST_WIDE_INT i)
+{
+ output_formatted_scalar (buffer, HOST_WIDE_INT_PRINT_DEC, i);
+}
+
static inline void
output_pointer (output_buffer *buffer, void *p)
{
%o: unsigned integer in base eight.
%x: unsigned integer in base sixteen.
%ld, %li, %lo, %lu, %lx: long versions of the above.
+ %ll: long long int.
+ %w: and integer of type HOST_WIDE_INT.
%c: character.
%s: string.
%p: pointer.
(buffer, va_arg (*text->args_ptr, unsigned int));
break;
+ case 'l':
+ if (long_integer)
+ output_long_long_decimal
+ (buffer, va_arg (*text->args_ptr, long long));
+ else
+ /* Sould not happen. */
+ abort();
+ break;
+
case 'm':
output_add_string (buffer, xstrerror (text->err_no));
break;
}
break;
+ case 'w':
+ output_host_wide_integer
+ (buffer, va_arg (*text->args_ptr, HOST_WIDE_INT));
+ break;
+
default:
if (!buffer->format_decoder
|| !(*buffer->format_decoder) (buffer, text))
extern void output_append (output_buffer *, const char *, const char *);
extern void output_add_character (output_buffer *, int);
extern void output_decimal (output_buffer *, int);
+extern void output_host_wide_integer (output_buffer *, HOST_WIDE_INT);
extern void output_add_string (output_buffer *, const char *);
extern void output_add_identifier (output_buffer *, tree);
extern const char *output_finalize_message (output_buffer *);