c-lang.c: #include diagnostic.h
* c-lang.c: #include diagnostic.h (c_tree_printer): New function. (lang_init): Initialize lang_printer. * Makefile.in (c-lang.o): Depends on diagnostic.h From-SVN: r35818
This commit is contained in:
parent
e2840263c7
commit
4e1e6a0137
|
@ -1,3 +1,11 @@
|
|||
2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
|
||||
|
||||
* c-lang.c: #include diagnostic.h
|
||||
(c_tree_printer): New function.
|
||||
(lang_init): Initialize lang_printer.
|
||||
|
||||
* Makefile.in (c-lang.o): Depends on diagnostic.h
|
||||
|
||||
2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
|
||||
|
||||
* c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
|
||||
|
|
|
@ -1102,7 +1102,7 @@ c-decl.o : c-decl.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) c-tree.h \
|
|||
c-typeck.o : c-typeck.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-common.h \
|
||||
flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h
|
||||
c-lang.o : c-lang.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-common.h \
|
||||
$(GGC_H) c-lex.h toplev.h output.h function.h
|
||||
$(GGC_H) c-lex.h toplev.h diagnostic.h output.h function.h
|
||||
c-lex.o : c-lex.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) c-lex.h c-tree.h \
|
||||
c-common.h $(srcdir)/c-parse.h $(srcdir)/c-gperf.h c-pragma.h input.h \
|
||||
intl.h flags.h toplev.h output.h mbchar.h $(GGC_H)
|
||||
|
|
40
gcc/c-lang.c
40
gcc/c-lang.c
|
@ -28,10 +28,13 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "c-tree.h"
|
||||
#include "c-lex.h"
|
||||
#include "toplev.h"
|
||||
#include "diagnostic.h"
|
||||
#include "output.h"
|
||||
#include "flags.h"
|
||||
#include "ggc.h"
|
||||
|
||||
static int c_tree_printer PARAMS ((output_buffer *));
|
||||
|
||||
#if USE_CPPLIB
|
||||
#include "cpplib.h"
|
||||
extern char *yy_cur;
|
||||
|
@ -92,6 +95,8 @@ lang_init ()
|
|||
restore_lang_status = &pop_c_function_context;
|
||||
mark_lang_status = &mark_c_function_context;
|
||||
|
||||
lang_printer = c_tree_printer;
|
||||
|
||||
c_parse_init ();
|
||||
}
|
||||
|
||||
|
@ -240,3 +245,38 @@ finish_file ()
|
|||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Called during diagnostic message formatting process to print a
|
||||
source-level entity onto BUFFER. The meaning of the format specifiers
|
||||
is as follows:
|
||||
%D: a general decl,
|
||||
%F: a function declaration,
|
||||
%T: a type.
|
||||
|
||||
These format specifiers form a subset of the format specifiers set used
|
||||
by the C++ front-end.
|
||||
Please notice when called, the `%' part was already skipped by the
|
||||
diagnostic machinery. */
|
||||
static int
|
||||
c_tree_printer (buffer)
|
||||
output_buffer *buffer;
|
||||
{
|
||||
tree t = va_arg (output_buffer_format_args (buffer), tree);
|
||||
|
||||
switch (*output_buffer_text_cursor (buffer))
|
||||
{
|
||||
case 'D':
|
||||
case 'F':
|
||||
case 'T':
|
||||
{
|
||||
const char *n = DECL_NAME (t)
|
||||
? (*decl_printable_name) (t, 2)
|
||||
: "({anonymous})";
|
||||
output_add_string (buffer, n);
|
||||
}
|
||||
return 1;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue