diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2002-03-31 22:32:05 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2002-03-31 22:32:05 +0000 |
commit | 7cb32822701d0ce49aae361f576c9c9dc31bb2f3 (patch) | |
tree | 095a8c71baa85e6ccb7e9e788b0e115460d44314 /gcc/java/lang.c | |
parent | 1db02437806fb3155563914b496e26d7a8edfa65 (diff) | |
download | gcc-7cb32822701d0ce49aae361f576c9c9dc31bb2f3.zip gcc-7cb32822701d0ce49aae361f576c9c9dc31bb2f3.tar.gz gcc-7cb32822701d0ce49aae361f576c9c9dc31bb2f3.tar.bz2 |
diagnostic.c (print_error_function): Remove.
* diagnostic.c (print_error_function): Remove.
(default_print_error_function): Rename.
(report_error_function): Update.
* diagnostic.h (print_error_function): Remove.
(default_print_error_function): Remove.
* langhooks-def.h (struct diagnostic_context): Predeclare.
(lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
(LANG_HOOKS_INITIALIZER): Update.
* langhooks.h (struct diagnostic context): Predeclare.
(struct lang_hooks): New hook.
cp:
* Make-lang.in (error.o): Update.
* cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
* cp-tree.h (struct diagnostic_context): Predeclare.
(cxx_print_error_function): New.
* error.c: Include langhooks-def.h.
(lang_print_error_function): Rename. Update.
(init_error): Don't set hook.
f:
* com.c (lang_print_error_function): Rename.
(LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
(ffe_init): Don't set hook.
java:
* lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
(java_dummy_print): Remove.
(lang_print_error): Rename. Exit early if inhibiting output.
(inhibit_error_printing_function): New.
(java_init): Don't set hook.
(lang_init_source): Use new boolean.
From-SVN: r51672
Diffstat (limited to 'gcc/java/lang.c')
-rw-r--r-- | gcc/java/lang.c | 44 |
1 files changed, 19 insertions, 25 deletions
diff --git a/gcc/java/lang.c b/gcc/java/lang.c index 583af75..b56eea4 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -54,8 +54,8 @@ static void java_init_options PARAMS ((void)); static int java_decode_option PARAMS ((int, char **)); static void put_decl_string PARAMS ((const char *, int)); static void put_decl_node PARAMS ((tree)); -static void java_dummy_print PARAMS ((diagnostic_context *, const char *)); -static void lang_print_error PARAMS ((diagnostic_context *, const char *)); +static void java_print_error_function PARAMS ((diagnostic_context *, + const char *)); static int process_option_with_no PARAMS ((const char *, const struct string_option *, int)); @@ -101,6 +101,10 @@ const char *const tree_code_name[] = { }; #undef DEFTREECODE +/* Used to avoid printing error messages with bogus function + prototypes. Starts out false. */ +static bool inhibit_error_function_printing; + int compiling_from_source; char * resource_name; @@ -231,6 +235,8 @@ static int dependency_tracking = 0; #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL java_dup_lang_specific_decl #undef LANG_HOOKS_DECL_PRINTABLE_NAME #define LANG_HOOKS_DECL_PRINTABLE_NAME lang_printable_name +#undef LANG_HOOKS_PRINT_ERROR_FUNCTION +#define LANG_HOOKS_PRINT_ERROR_FUNCTION java_print_error_function #undef LANG_HOOKS_TYPE_FOR_MODE #define LANG_HOOKS_TYPE_FOR_MODE java_type_for_mode #undef LANG_HOOKS_TYPE_FOR_SIZE @@ -516,8 +522,6 @@ java_init (filename) jcf_path_init (); jcf_path_seal (version_flag); - print_error_function = lang_print_error; - java_init_decl_processing (); using_eh_for_cleanups (); @@ -643,7 +647,7 @@ put_decl_node (node) /* Return a user-friendly name for DECL. The resulting string is only valid until the next call. The value of the hook decl_printable_name is this function, - which is also called directly by lang_print_error. */ + which is also called directly by java_print_error_function. */ const char * lang_printable_name (decl, v) @@ -672,10 +676,10 @@ lang_printable_name_wls (decl, v) } /* Print on stderr the current class and method context. This function - is the value of the hook print_error_function, called from toplev.c. */ + is the value of the hook print_error_function. */ static void -lang_print_error (context, file) +java_print_error_function (context, file) diagnostic_context *context __attribute__((__unused__)); const char *file; { @@ -692,6 +696,10 @@ lang_print_error (context, file) initialized_p = 1; } + /* Don't print error messages with bogus function prototypes. */ + if (inhibit_error_function_printing) + return; + if (current_function_decl != NULL && DECL_CONTEXT (current_function_decl) != last_error_function_context) { @@ -723,31 +731,17 @@ lang_print_error (context, file) } -/* This doesn't do anything on purpose. It's used to satisfy the - print_error_function hook we don't print error messages with bogus - function prototypes. */ - -static void -java_dummy_print (c, s) - diagnostic_context *c __attribute__ ((__unused__)); - const char *s __attribute__ ((__unused__)); -{ -} - /* Called to install the PRINT_ERROR_FUNCTION hook differently according to LEVEL. LEVEL is 1 during early parsing, when function - prototypes aren't fully resolved. print_error_function is set so it - doesn't print incomplete function prototypes. When LEVEL is 2, - function prototypes are fully resolved and can be printed when + prototypes aren't fully resolved. java_print_error_function is set + so it doesn't print incomplete function prototypes. When LEVEL is + 2, function prototypes are fully resolved and can be printed when reporting errors. */ void lang_init_source (level) int level; { - if (level == 1) - print_error_function = java_dummy_print; - else - print_error_function = lang_print_error; + inhibit_error_function_printing = (level == 1); } static void |