diff options
author | kan <kan@FreeBSD.org> | 2007-05-19 01:19:51 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2007-05-19 01:19:51 +0000 |
commit | 1f9ea4d0a40cca64d60cf4dab152349da7b9dddf (patch) | |
tree | 0cb530c9c38af219e6dda2994c078b6b2b9ad853 /contrib/gcc/diagnostic.h | |
parent | 4895159b2b4f648051c1f139faa7b6dc50c2bfcb (diff) | |
download | FreeBSD-src-1f9ea4d0a40cca64d60cf4dab152349da7b9dddf.zip FreeBSD-src-1f9ea4d0a40cca64d60cf4dab152349da7b9dddf.tar.gz |
GCC 4.2.0 release.
Diffstat (limited to 'contrib/gcc/diagnostic.h')
-rw-r--r-- | contrib/gcc/diagnostic.h | 58 |
1 files changed, 47 insertions, 11 deletions
diff --git a/contrib/gcc/diagnostic.h b/contrib/gcc/diagnostic.h index daf2427..df52026 100644 --- a/contrib/gcc/diagnostic.h +++ b/contrib/gcc/diagnostic.h @@ -1,5 +1,6 @@ /* Various declarations for language-independent diagnostics subroutines. - Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. Contributed by Gabriel Dos Reis <gdr@codesourcery.com> This file is part of GCC. @@ -16,13 +17,14 @@ for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. */ #ifndef GCC_DIAGNOSTIC_H #define GCC_DIAGNOSTIC_H #include "pretty-print.h" +#include "options.h" /* Constants used to discriminate diagnostics. */ typedef enum @@ -42,6 +44,8 @@ typedef struct location_t location; /* The kind of diagnostic it is about. */ diagnostic_t kind; + /* Which OPT_* directly controls this diagnostic. */ + int option_index; } diagnostic_info; #define pedantic_error_kind() (flag_pedantic_errors ? DK_ERROR : DK_WARNING) @@ -65,7 +69,21 @@ struct diagnostic_context /* True if we should display the "warnings are being tread as error" message, usually displayed once per compiler run. */ - bool warnings_are_errors_message; + bool issue_warnings_are_errors_message; + + /* True if it has been requested that warnings be treated as errors. */ + bool warning_as_error_requested; + + /* For each option index that can be passed to warning() et all + (OPT_* from options.h), this array may contain a new kind that + the diagnostic should be changed to before reporting, or + DK_UNSPECIFIED to leave it as the reported kind, or DK_IGNORED to + not report it at all. N_OPTS is from <options.h>. */ + char classify_diagnostic[N_OPTS]; + + /* True if we should print the command line option which controls + each diagnostic, if known. */ + bool show_option_requested; /* True if we should raise a SIGABRT on errors. */ bool abort_on_error; @@ -94,9 +112,6 @@ struct diagnostic_context int last_module; int lock; - - /* Hook for front-end extensions. */ - void *x_data; }; /* Client supplied function to announce a diagnostic. */ @@ -113,11 +128,11 @@ struct diagnostic_context #define diagnostic_format_decoder(DC) ((DC)->printer->format_decoder) /* Same as output_prefixing_rule. Works on 'diagnostic_context *'. */ -#define diagnostic_prefixing_rule(DC) ((DC)->printer->prefixing_rule) +#define diagnostic_prefixing_rule(DC) ((DC)->printer->wrapping.rule) /* Maximum characters per line in automatic line wrapping mode. Zero means don't wrap lines. */ -#define diagnostic_line_cutoff(DC) ((DC)->printer->ideal_maximum_length) +#define diagnostic_line_cutoff(DC) ((DC)->printer->wrapping.line_cutoff) #define diagnostic_flush_buffer(DC) pp_base_flush ((DC)->printer) @@ -172,14 +187,35 @@ extern diagnostic_context *global_dc; extern void diagnostic_initialize (diagnostic_context *); extern void diagnostic_report_current_module (diagnostic_context *); extern void diagnostic_report_current_function (diagnostic_context *); + +/* Force diagnostics controlled by OPTIDX to be kind KIND. */ +extern diagnostic_t diagnostic_classify_diagnostic (diagnostic_context *, + int /* optidx */, + diagnostic_t /* kind */); extern void diagnostic_report_diagnostic (diagnostic_context *, diagnostic_info *); +#ifdef ATTRIBUTE_GCC_DIAG extern void diagnostic_set_info (diagnostic_info *, const char *, va_list *, - location_t, diagnostic_t); + location_t, diagnostic_t) ATTRIBUTE_GCC_DIAG(2,0); +extern void diagnostic_set_info_translated (diagnostic_info *, const char *, + va_list *, location_t, + diagnostic_t) + ATTRIBUTE_GCC_DIAG(2,0); +#endif extern char *diagnostic_build_prefix (diagnostic_info *); /* Pure text formatting support functions. */ -extern void verbatim (const char *, ...); extern char *file_name_as_prefix (const char *); +/* In tree-pretty-print.c */ +extern int dump_generic_node (pretty_printer *, tree, int, int, bool); +extern void print_generic_stmt (FILE *, tree, int); +extern void print_generic_stmt_indented (FILE *, tree, int, int); +extern void print_generic_expr (FILE *, tree, int); +extern void print_generic_decl (FILE *, tree, int); + +extern void debug_generic_expr (tree); +extern void debug_generic_stmt (tree); +extern void debug_tree_chain (tree); +extern void debug_c_tree (tree); #endif /* ! GCC_DIAGNOSTIC_H */ |