aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2010-05-25 14:01:45 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2010-05-25 14:01:45 +0100
commita13812e2c83b6cc3fcc324ca3c855af68d31daa6 (patch)
tree013d843f2cba975bbb1d9e3277b722a21d0aec70 /gcc/ada
parent791bddee093414f72f673e0fefb405c8eca32e23 (diff)
downloadgcc-a13812e2c83b6cc3fcc324ca3c855af68d31daa6.zip
gcc-a13812e2c83b6cc3fcc324ca3c855af68d31daa6.tar.gz
gcc-a13812e2c83b6cc3fcc324ca3c855af68d31daa6.tar.bz2
diagnostic.c: Don't include plugin.h.
* diagnostic.c: Don't include plugin.h. (diagnostic_report_diagnostic): Don't handle plugins specially here. Pass context to internal_error callback. * diagnostic.h (struct diagnostic_context): Add context parameter to internal_error callback. * plugin.c (warn_if_plugins, plugins_internal_error_function): New. * plugin.h (struct diagnostic_context): Declare. (warn_if_plugins, plugins_internal_error_function): Declare. * toplev.c (general_init): Set global_dc->internal_error. * Makefile.in (diagnostic.o): Update dependencies. ada: * gcc-interface/misc.c (internal_error_function): Add context parameter. Use it to access show_column flag and instead of using global_dc. Call warn_if_plugins. * gcc-interface/Make-lang.in (ada/misc.o): Update dependencies. From-SVN: r159819
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/gcc-interface/Make-lang.in2
-rw-r--r--gcc/ada/gcc-interface/misc.c18
3 files changed, 20 insertions, 7 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index d5aa53a..7e1d62d 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2010-05-25 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc-interface/misc.c (internal_error_function): Add context
+ parameter. Use it to access show_column flag and instead of using
+ global_dc. Call warn_if_plugins.
+ * gcc-interface/Make-lang.in (ada/misc.o): Update dependencies.
+
2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/misc.c (LANG_HOOKS_DEEP_UNSHARING): Redefine.
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 25c0964..43a3cec 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -1235,7 +1235,7 @@ ada/decl.o : ada/gcc-interface/decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
ada/misc.o : ada/gcc-interface/misc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(TREE_H) $(DIAGNOSTIC_H) $(TARGET_H) $(EXPR_H) libfuncs.h \
$(FLAGS_H) debug.h $(CGRAPH_H) $(OPTABS_H) toplev.h except.h langhooks.h \
- $(LANGHOOKS_DEF_H) opts.h options.h $(TREE_INLINE_H) \
+ $(LANGHOOKS_DEF_H) opts.h options.h $(TREE_INLINE_H) $(PLUGIN_H) \
ada/gcc-interface/ada.h ada/adadecode.h ada/types.h ada/atree.h \
ada/elists.h ada/namet.h ada/nlists.h ada/stringt.h ada/uintp.h ada/fe.h \
ada/sinfo.h ada/einfo.h $(ADA_TREE_H) ada/gcc-interface/gigi.h \
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index dba6dca..22826ed 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -48,6 +48,7 @@
#include "opts.h"
#include "options.h"
#include "tree-inline.h"
+#include "plugin.h"
#include "ada.h"
#include "adadecode.h"
@@ -75,7 +76,8 @@ static const char *gnat_printable_name (tree, int);
static const char *gnat_dwarf_name (tree, int);
static tree gnat_return_tree (tree);
static void gnat_parse_file (int);
-static void internal_error_function (const char *, va_list *);
+static void internal_error_function (diagnostic_context *,
+ const char *, va_list *);
static tree gnat_type_max_size (const_tree);
static void gnat_get_subrange_bounds (const_tree, tree *, tree *);
static tree gnat_eh_personality (void);
@@ -334,7 +336,8 @@ gnat_post_options (const char **pfilename ATTRIBUTE_UNUSED)
/* Here is the function to handle the compiler error processing in GCC. */
static void
-internal_error_function (const char *msgid, va_list *ap)
+internal_error_function (diagnostic_context *context,
+ const char *msgid, va_list *ap)
{
text_info tinfo;
char *buffer, *p, *loc;
@@ -342,17 +345,20 @@ internal_error_function (const char *msgid, va_list *ap)
Fat_Pointer fp, fp_loc;
expanded_location s;
+ /* Warn if plugins present. */
+ warn_if_plugins ();
+
/* Reset the pretty-printer. */
- pp_clear_output_area (global_dc->printer);
+ pp_clear_output_area (context->printer);
/* Format the message into the pretty-printer. */
tinfo.format_spec = msgid;
tinfo.args_ptr = ap;
tinfo.err_no = errno;
- pp_format_verbatim (global_dc->printer, &tinfo);
+ pp_format_verbatim (context->printer, &tinfo);
/* Extract a (writable) pointer to the formatted text. */
- buffer = xstrdup (pp_formatted_text (global_dc->printer));
+ buffer = xstrdup (pp_formatted_text (context->printer));
/* Go up to the first newline. */
for (p = buffer; *p; p++)
@@ -368,7 +374,7 @@ internal_error_function (const char *msgid, va_list *ap)
fp.Array = buffer;
s = expand_location (input_location);
- if (flag_show_column && s.column != 0)
+ if (context->show_column && s.column != 0)
asprintf (&loc, "%s:%d:%d", s.file, s.line, s.column);
else
asprintf (&loc, "%s:%d", s.file, s.line);