aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@codesourcery.com>2001-06-26 14:06:07 +0000
committerGabriel Dos Reis <gdr@gcc.gnu.org>2001-06-26 14:06:07 +0000
commitf68fc4db625bf32c800bbc49e1b62fd736b78090 (patch)
tree2c4cb21103202d0c4940fa8b9d5fb916a80a23ba /gcc
parentd7f4934bc700a83c75393b1647fcfc4abbca799b (diff)
downloadgcc-f68fc4db625bf32c800bbc49e1b62fd736b78090.zip
gcc-f68fc4db625bf32c800bbc49e1b62fd736b78090.tar.gz
gcc-f68fc4db625bf32c800bbc49e1b62fd736b78090.tar.bz2
diagnostic.h (struct diagnostic_context): Add new field.
* diagnostic.h (struct diagnostic_context): Add new field. (lang_diagnostic_starter, lang_diagnostic_finalizer): Remove declaratons. (global_dc): Declare. * diagnostic.c (global_diagnostic_context): New variable. (global_output_buffer): Remove. (global_dc): Define. (lang_diagnostic_starter, lang_diagnostic_finalizer): Remove definitions. (initialize_diagnostics): Adjust initialization. (set_diagnostic_context): Adjust setting. cp/ * error.c (init_error): Adjust settings. From-SVN: r43581
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/error.c9
-rw-r--r--gcc/diagnostic.c21
-rw-r--r--gcc/diagnostic.h9
5 files changed, 38 insertions, 19 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d2db699..03e0015 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * diagnostic.h (struct diagnostic_context): Add new field.
+ (lang_diagnostic_starter, lang_diagnostic_finalizer): Remove
+ declaratons.
+ (global_dc): Declare.
+ * diagnostic.c (global_diagnostic_context): New variable.
+ (global_output_buffer): Remove.
+ (global_dc): Define.
+ (lang_diagnostic_starter, lang_diagnostic_finalizer): Remove
+ definitions.
+ (initialize_diagnostics): Adjust initialization.
+ (set_diagnostic_context): Adjust setting.
+
2001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/mips/iris5.h (UNALIGNED_INT_ASM_OP,
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ea5de13..44233af 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * error.c (init_error): Adjust settings.
+
2001-06-19 Richard Sandiford <rsandifo@redhat.com>
* except.c (initialize_handler_parm): Expect __cxa_begin_catch to
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 7d2f1fa..e028a10 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -191,13 +191,12 @@ cp_printer * cp_printers[256] =
void
init_error ()
{
- init_output_buffer (scratch_buffer, /* prefix */NULL, /* line-width */0);
-
print_error_function = lang_print_error_function;
- lang_diagnostic_starter = cp_diagnostic_starter;
- lang_diagnostic_finalizer = cp_diagnostic_finalizer;
-
+ diagnostic_starter (global_dc) = cp_diagnostic_starter;
+ diagnostic_finalizer (global_dc) = cp_diagnostic_finalizer;
lang_printer = cp_tree_printer;
+
+ init_output_buffer (scratch_buffer, /* prefix */NULL, /* line-width */0);
}
/* Dump a scope, if deemed necessary. */
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index cf78b20..a13c275 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -108,9 +108,12 @@ extern int warnings_are_errors;
/* Front-end specific tree formatter, if non-NULL. */
printer_fn lang_printer = NULL;
-/* An output_buffer surrogate for stderr. */
-static output_buffer global_output_buffer;
-output_buffer *diagnostic_buffer = &global_output_buffer;
+/* A diagnostic_context surrogate for stderr. */
+static diagnostic_context global_diagnostic_context;
+diagnostic_context *global_dc = &global_diagnostic_context;
+
+/* This will be removed shortly. */
+output_buffer *diagnostic_buffer = &global_diagnostic_context.buffer;
/* Function of last error message;
more generally, function such that if next error message is in it
@@ -126,10 +129,6 @@ static int last_error_tick;
void (*print_error_function) PARAMS ((const char *)) =
default_print_error_function;
-/* Hooks for language specific diagnostic messages pager and finalizer. */
-diagnostic_starter_fn lang_diagnostic_starter;
-diagnostic_finalizer_fn lang_diagnostic_finalizer;
-
/* Maximum characters per line in automatic line wrapping mode.
Zero means don't wrap lines. */
@@ -189,8 +188,8 @@ initialize_diagnostics ()
/* Proceed to actual initialization. */
default_initialize_buffer (diagnostic_buffer);
- lang_diagnostic_starter = default_diagnostic_starter;
- lang_diagnostic_finalizer = default_diagnostic_finalizer;
+ diagnostic_starter (global_dc) = default_diagnostic_starter;
+ diagnostic_finalizer (global_dc) = default_diagnostic_finalizer;
}
void
@@ -1772,8 +1771,8 @@ set_diagnostic_context (dc, msgid, args_ptr, file, line, warn)
diagnostic_file_location (dc) = file;
diagnostic_line_location (dc) = line;
diagnostic_is_warning (dc) = warn;
- diagnostic_starter (dc) = lang_diagnostic_starter;
- diagnostic_finalizer (dc) = lang_diagnostic_finalizer;
+ diagnostic_starter (dc) = diagnostic_starter (global_dc);
+ diagnostic_finalizer (dc) = diagnostic_finalizer (global_dc);
}
void
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index fd3c92d..fea82ba 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -132,6 +132,11 @@ struct output_buffer
the context of a diagnostic message. */
struct diagnostic_context
{
+ /* Where most of the diagnostic formatting work is done. In Object
+ Oriented terms, we'll say that diagnostic_context is a sub-class of
+ output_buffer. */
+ output_buffer buffer;
+
/* The diagnostic message to output. */
const char *message;
@@ -185,9 +190,6 @@ struct diagnostic_context
extern printer_fn lang_printer;
-extern diagnostic_starter_fn lang_diagnostic_starter;
-extern diagnostic_finalizer_fn lang_diagnostic_finalizer;
-
extern int diagnostic_message_length_per_line;
/* This output buffer is used by front-ends that directly output
@@ -196,6 +198,7 @@ extern int diagnostic_message_length_per_line;
avoided. This global buffer will go away, once all such usage
has been removed. */
extern output_buffer *diagnostic_buffer;
+extern diagnostic_context *global_dc;
#define diagnostic_kind_count(BUFFER, DK) \
(BUFFER)->state.diagnostic_count[(int) DK]