X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fcp%2Ferror.c;h=42a7ff774e99fce6d5c19441fc5ff23851d5a02f;hp=8bef22c45364ba6c86431b90842695ad1d814184;hb=c6a06e1fe0602704f8ef7f7c8597b5c3edd12b3d;hpb=d5d76adc24421049c00188fee33352af76250eeb diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 8bef22c4536..42a7ff774e9 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -2,29 +2,30 @@ This code is non-reentrant. Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. - This file is part of GNU CC. + This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. -GNU CC is distributed in the hope that it will be useful, +GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to +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. */ #include "config.h" #include "system.h" +#include "coretypes.h" +#include "tm.h" #include "tree.h" #include "cp-tree.h" #include "real.h" -#include "obstack.h" #include "toplev.h" #include "flags.h" #include "diagnostic.h" @@ -45,11 +46,6 @@ enum pad { none, before, after }; print_non_consecutive_character ((BUFFER), '<') #define print_template_argument_list_end(BUFFER) \ print_non_consecutive_character ((BUFFER), '>') -#define print_whitespace(BUFFER, TFI) \ - do { \ - output_add_space (BUFFER); \ - put_whitespace (TFI) = none; \ - } while (0) #define print_tree_identifier(BUFFER, TID) \ output_add_string ((BUFFER), IDENTIFIER_POINTER (TID)) #define print_identifier(BUFFER, ID) output_add_string ((BUFFER), (ID)) @@ -66,64 +62,60 @@ static output_buffer *scratch_buffer = &scratch_buffer_rec; #define reinit_global_formatting_buffer() \ output_clear_message_text (scratch_buffer) -static const char *args_to_string PARAMS ((tree, int)); -static const char *assop_to_string PARAMS ((enum tree_code, int)); -static const char *code_to_string PARAMS ((enum tree_code, int)); -static const char *cv_to_string PARAMS ((tree, int)); -static const char *decl_to_string PARAMS ((tree, int)); -static const char *expr_to_string PARAMS ((tree, int)); -static const char *fndecl_to_string PARAMS ((tree, int)); -static const char *op_to_string PARAMS ((enum tree_code, int)); -static const char *parm_to_string PARAMS ((int, int)); -static const char *type_to_string PARAMS ((tree, int)); - -static void dump_type PARAMS ((tree, int)); -static void dump_typename PARAMS ((tree, int)); -static void dump_simple_decl PARAMS ((tree, tree, int)); -static void dump_decl PARAMS ((tree, int)); -static void dump_template_decl PARAMS ((tree, int)); -static void dump_function_decl PARAMS ((tree, int)); -static void dump_expr PARAMS ((tree, int)); -static void dump_unary_op PARAMS ((const char *, tree, int)); -static void dump_binary_op PARAMS ((const char *, tree, int)); -static void dump_aggr_type PARAMS ((tree, int)); -static enum pad dump_type_prefix PARAMS ((tree, int)); -static void dump_type_suffix PARAMS ((tree, int)); -static void dump_function_name PARAMS ((tree, int)); -static void dump_expr_list PARAMS ((tree, int)); -static void dump_global_iord PARAMS ((tree)); -static enum pad dump_qualifiers PARAMS ((tree, enum pad)); -static void dump_char PARAMS ((int)); -static void dump_parameters PARAMS ((tree, int)); -static void dump_exception_spec PARAMS ((tree, int)); -static const char *class_key_or_enum PARAMS ((tree)); -static void dump_template_argument PARAMS ((tree, int)); -static void dump_template_argument_list PARAMS ((tree, int)); -static void dump_template_parameter PARAMS ((tree, int)); -static void dump_template_bindings PARAMS ((tree, tree)); -static void dump_scope PARAMS ((tree, int)); -static void dump_template_parms PARAMS ((tree, int, int)); - -static const char *function_category PARAMS ((tree)); -static void maybe_print_instantiation_context PARAMS ((diagnostic_context *)); -static void print_instantiation_full_context PARAMS ((diagnostic_context *)); -static void print_instantiation_partial_context PARAMS ((diagnostic_context *, - tree, - const char *, int)); -static void cp_diagnostic_starter PARAMS ((diagnostic_context *, - diagnostic_info *)); -static void cp_diagnostic_finalizer PARAMS ((diagnostic_context *, - diagnostic_info *)); -static void cp_print_error_function PARAMS ((diagnostic_context *, - diagnostic_info *)); - -static bool cp_printer PARAMS ((output_buffer *, text_info *)); -static void print_non_consecutive_character PARAMS ((output_buffer *, int)); -static void print_integer PARAMS ((output_buffer *, HOST_WIDE_INT)); -static tree locate_error PARAMS ((const char *, va_list)); +static const char *args_to_string (tree, int); +static const char *assop_to_string (enum tree_code, int); +static const char *code_to_string (enum tree_code, int); +static const char *cv_to_string (tree, int); +static const char *decl_to_string (tree, int); +static const char *expr_to_string (tree, int); +static const char *fndecl_to_string (tree, int); +static const char *op_to_string (enum tree_code, int); +static const char *parm_to_string (int, int); +static const char *type_to_string (tree, int); + +static void dump_type (tree, int); +static void dump_typename (tree, int); +static void dump_simple_decl (tree, tree, int); +static void dump_decl (tree, int); +static void dump_template_decl (tree, int); +static void dump_function_decl (tree, int); +static void dump_expr (tree, int); +static void dump_unary_op (const char *, tree, int); +static void dump_binary_op (const char *, tree, int); +static void dump_aggr_type (tree, int); +static enum pad dump_type_prefix (tree, int); +static void dump_type_suffix (tree, int); +static void dump_function_name (tree, int); +static void dump_expr_list (tree, int); +static void dump_global_iord (tree); +static enum pad dump_qualifiers (tree, enum pad); +static void dump_char (int); +static void dump_parameters (tree, int); +static void dump_exception_spec (tree, int); +static const char *class_key_or_enum (tree); +static void dump_template_argument (tree, int); +static void dump_template_argument_list (tree, int); +static void dump_template_parameter (tree, int); +static void dump_template_bindings (tree, tree); +static void dump_scope (tree, int); +static void dump_template_parms (tree, int, int); + +static const char *function_category (tree); +static void maybe_print_instantiation_context (diagnostic_context *); +static void print_instantiation_full_context (diagnostic_context *); +static void print_instantiation_partial_context (diagnostic_context *, + tree, const char *, int); +static void cp_diagnostic_starter (diagnostic_context *, diagnostic_info *); +static void cp_diagnostic_finalizer (diagnostic_context *, diagnostic_info *); +static void cp_print_error_function (diagnostic_context *, diagnostic_info *); + +static bool cp_printer (output_buffer *, text_info *); +static void print_non_consecutive_character (output_buffer *, int); +static void print_integer (output_buffer *, HOST_WIDE_INT); +static tree locate_error (const char *, va_list); void -init_error () +init_error (void) { diagnostic_starter (global_dc) = cp_diagnostic_starter; diagnostic_finalizer (global_dc) = cp_diagnostic_finalizer; @@ -135,9 +127,7 @@ init_error () /* Dump a scope, if deemed necessary. */ static void -dump_scope (scope, flags) - tree scope; - int flags; +dump_scope (tree scope, int flags) { int f = ~TFF_RETURN_TYPE & (flags & (TFF_SCOPE | TFF_CHASE_TYPEDEF)); @@ -168,9 +158,7 @@ dump_scope (scope, flags) indication of whether we dumped something. */ static enum pad -dump_qualifiers (t, p) - tree t; - enum pad p; +dump_qualifiers (tree t, enum pad p) { static const int masks[] = {TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE, TYPE_QUAL_RESTRICT}; @@ -205,9 +193,7 @@ static char digit_buffer[128]; /* Dump the template ARGument under control of FLAGS. */ static void -dump_template_argument (arg, flags) - tree arg; - int flags; +dump_template_argument (tree arg, int flags) { if (TYPE_P (arg) || TREE_CODE (arg) == TEMPLATE_DECL) dump_type (arg, flags & ~TFF_CLASS_KEY_OR_ENUM); @@ -219,9 +205,7 @@ dump_template_argument (arg, flags) of FLAGS. */ static void -dump_template_argument_list (args, flags) - tree args; - int flags; +dump_template_argument_list (tree args, int flags) { int n = TREE_VEC_LENGTH (args); int need_comma = 0; @@ -239,9 +223,7 @@ dump_template_argument_list (args, flags) /* Dump a template parameter PARM (a TREE_LIST) under control of FLAGS. */ static void -dump_template_parameter (parm, flags) - tree parm; - int flags; +dump_template_parameter (tree parm, int flags) { tree p = TREE_VALUE (parm); tree a = TREE_PURPOSE (parm); @@ -280,8 +262,7 @@ dump_template_parameter (parm, flags) TREE_VEC. */ static void -dump_template_bindings (parms, args) - tree parms, args; +dump_template_bindings (tree parms, tree args) { int need_comma = 0; @@ -321,13 +302,11 @@ dump_template_bindings (parms, args) } } -/* Dump into the obstack a human-readable equivalent of TYPE. FLAGS - controls the format. */ +/* Dump a human-readable equivalent of TYPE. FLAGS controls the + format. */ static void -dump_type (t, flags) - tree t; - int flags; +dump_type (tree t, int flags) { if (t == NULL_TREE) return; @@ -416,7 +395,7 @@ dump_type (t, flags) break; case TEMPLATE_TEMPLATE_PARM: - /* For parameters inside template signature. */ + /* For parameters inside template signature. */ if (TYPE_IDENTIFIER (t)) print_tree_identifier (scratch_buffer, TYPE_IDENTIFIER (t)); else @@ -458,8 +437,8 @@ dump_type (t, flags) break; } case TYPENAME_TYPE: - if (!IMPLICIT_TYPENAME_P (t)) - output_add_string (scratch_buffer, "typename "); + dump_qualifiers (t, after); + output_add_string (scratch_buffer, "typename "); dump_typename (t, flags); break; @@ -478,7 +457,7 @@ dump_type (t, flags) default: sorry_for_unsupported_tree (t); - /* Fall through to error. */ + /* Fall through to error. */ case ERROR_MARK: print_identifier (scratch_buffer, ""); @@ -490,9 +469,7 @@ dump_type (t, flags) a TYPENAME_TYPE. */ static void -dump_typename (t, flags) - tree t; - int flags; +dump_typename (tree t, int flags) { tree ctx = TYPE_CONTEXT (t); @@ -507,8 +484,7 @@ dump_typename (t, flags) /* Return the name of the supplied aggregate, or enumeral type. */ static const char * -class_key_or_enum (t) - tree t; +class_key_or_enum (tree t) { if (TREE_CODE (t) == ENUMERAL_TYPE) return "enum"; @@ -524,9 +500,7 @@ class_key_or_enum (t) in the form `class foo'. */ static void -dump_aggr_type (t, flags) - tree t; - int flags; +dump_aggr_type (tree t, int flags) { tree name; const char *variety = class_key_or_enum (t); @@ -599,9 +573,7 @@ dump_aggr_type (t, flags) want to pad non-*, non-& cores, but not pad * or & types. */ static enum pad -dump_type_prefix (t, flags) - tree t; - int flags; +dump_type_prefix (tree t, int flags) { enum pad padding = before; @@ -691,6 +663,7 @@ dump_type_prefix (t, flags) case TYPENAME_TYPE: case COMPLEX_TYPE: case VECTOR_TYPE: + case TYPEOF_TYPE: dump_type (t, flags); padding = before; break; @@ -709,9 +682,7 @@ dump_type_prefix (t, flags) which appears after the identifier (or function parms). */ static void -dump_type_suffix (t, flags) - tree t; - int flags; +dump_type_suffix (tree t, int flags) { if (TYPE_PTRMEMFUNC_P (t)) t = TYPE_PTRMEMFUNC_FN_TYPE (t); @@ -787,6 +758,7 @@ dump_type_suffix (t, flags) case TYPENAME_TYPE: case COMPLEX_TYPE: case VECTOR_TYPE: + case TYPEOF_TYPE: break; default: @@ -799,8 +771,7 @@ dump_type_suffix (t, flags) } static void -dump_global_iord (t) - tree t; +dump_global_iord (tree t) { const char *p = NULL; @@ -815,10 +786,7 @@ dump_global_iord (t) } static void -dump_simple_decl (t, type, flags) - tree t; - tree type; - int flags; +dump_simple_decl (tree t, tree type, int flags) { if (flags & TFF_DECL_SPECIFIERS) { @@ -838,9 +806,7 @@ dump_simple_decl (t, type, flags) /* Dump a human readable string for the decl T under control of FLAGS. */ static void -dump_decl (t, flags) - tree t; - int flags; +dump_decl (tree t, int flags) { if (t == NULL_TREE) return; @@ -854,7 +820,7 @@ dump_decl (t, flags) { if ((flags & TFF_DECL_SPECIFIERS) && TREE_CODE (TREE_TYPE (t)) == TEMPLATE_TYPE_PARM) - /* Say `class T' not just `T'. */ + /* Say `class T' not just `T'. */ output_add_string (scratch_buffer, "class "); dump_type (TREE_TYPE (t), flags); @@ -934,6 +900,25 @@ dump_decl (t, flags) break; case OVERLOAD: + if (OVL_CHAIN (t)) + { + t = OVL_CURRENT (t); + if (DECL_CLASS_SCOPE_P (t)) + { + dump_type (DECL_CONTEXT (t), flags); + output_add_string (scratch_buffer, "::"); + } + else if (DECL_CONTEXT (t)) + { + dump_decl (DECL_CONTEXT (t), flags); + output_add_string (scratch_buffer, "::"); + } + dump_decl (DECL_NAME (t), flags); + break; + } + + /* If there's only one function, just treat it like an ordinary + FUNCTION_DECL. */ t = OVL_CURRENT (t); /* Fall through. */ @@ -996,6 +981,10 @@ dump_decl (t, flags) print_tree_identifier (scratch_buffer, DECL_NAME (t)); break; + case BASELINK: + dump_decl (BASELINK_FUNCTIONS (t), flags); + break; + default: sorry_for_unsupported_tree (t); /* Fallthrough to error. */ @@ -1010,9 +999,7 @@ dump_decl (t, flags) 'template <...> leaders plus the 'class X' or 'void fn(...)' part. */ static void -dump_template_decl (t, flags) - tree t; - int flags; +dump_template_decl (tree t, int flags) { tree orig_parms = DECL_TEMPLATE_PARMS (t); tree parms; @@ -1045,7 +1032,7 @@ dump_template_decl (t, flags) nreverse(orig_parms); if (DECL_TEMPLATE_TEMPLATE_PARM_P (t)) - /* Say `template class TT' not just `template TT'. */ + /* Say `template class TT' not just `template TT'. */ output_add_string (scratch_buffer, "class "); } @@ -1065,7 +1052,7 @@ dump_template_decl (t, flags) dump_function_decl (t, flags | TFF_TEMPLATE_NAME); break; default: - /* This case can occur with some illegal code. */ + /* This case can occur with some invalid code. */ dump_type (TREE_TYPE (t), (flags & ~TFF_CLASS_KEY_OR_ENUM) | TFF_TEMPLATE_NAME | (flags & TFF_DECL_SPECIFIERS ? TFF_CLASS_KEY_OR_ENUM : 0)); @@ -1075,12 +1062,10 @@ dump_template_decl (t, flags) /* Pretty print a function decl. There are several ways we want to print a function declaration. The TFF_ bits in FLAGS tells us how to behave. As error can only apply the '#' flag once to give 0 and 1 for V, there - is %D which doesn't print the throw specs, and %F which does. */ + is %D which doesn't print the throw specs, and %F which does. */ static void -dump_function_decl (t, flags) - tree t; - int flags; +dump_function_decl (tree t, int flags) { tree fntype; tree parmtypes; @@ -1169,12 +1154,10 @@ dump_function_decl (t, flags) /* Print a parameter list. If this is for a member function, the member object ptr (and any other hidden args) should have - already been removed. */ + already been removed. */ static void -dump_parameters (parmtypes, flags) - tree parmtypes; - int flags; +dump_parameters (tree parmtypes, int flags) { int first; @@ -1203,12 +1186,10 @@ dump_parameters (parmtypes, flags) print_right_paren (scratch_buffer); } -/* Print an exception specification. T is the exception specification. */ +/* Print an exception specification. T is the exception specification. */ static void -dump_exception_spec (t, flags) - tree t; - int flags; +dump_exception_spec (tree t, int flags) { if (t) { @@ -1230,9 +1211,7 @@ dump_exception_spec (t, flags) and destructors properly. */ static void -dump_function_name (t, flags) - tree t; - int flags; +dump_function_name (tree t, int flags) { tree name = DECL_NAME (t); @@ -1281,10 +1260,7 @@ dump_function_name (t, flags) decoration. */ static void -dump_template_parms (info, primary, flags) - tree info; - int primary; - int flags; +dump_template_parms (tree info, int primary, int flags) { tree args = info ? TI_ARGS (info) : NULL_TREE; @@ -1357,8 +1333,7 @@ dump_template_parms (info, primary, flags) } static void -dump_char (c) - int c; +dump_char (int c) { switch (c) { @@ -1406,9 +1381,7 @@ dump_char (c) /* Print out a list of initializers (subr of dump_expr) */ static void -dump_expr_list (l, flags) - tree l; - int flags; +dump_expr_list (tree l, int flags) { while (l) { @@ -1419,13 +1392,14 @@ dump_expr_list (l, flags) } } -/* Print out an expression E under control of FLAGS. */ +/* Print out an expression E under control of FLAGS. */ static void -dump_expr (t, flags) - tree t; - int flags; +dump_expr (tree t, int flags) { + if (t == 0) + return; + switch (TREE_CODE (t)) { case VAR_DECL: @@ -1436,6 +1410,7 @@ dump_expr (t, flags) case TEMPLATE_DECL: case NAMESPACE_DECL: case OVERLOAD: + case IDENTIFIER_NODE: dump_decl (t, flags & ~TFF_DECL_SPECIFIERS); break; @@ -1475,7 +1450,11 @@ dump_expr (t, flags) else if (type == char_type_node) { output_add_character (scratch_buffer, '\''); - dump_char (tree_low_cst (t, 0)); + if (host_integerp (t, TREE_UNSIGNED (type))) + dump_char (tree_low_cst (t, TREE_UNSIGNED (type))); + else + output_printf (scratch_buffer, "\\x%x", + (unsigned int) TREE_INT_CST_LOW (t)); output_add_character (scratch_buffer, '\''); } else @@ -1510,13 +1489,8 @@ dump_expr (t, flags) break; case REAL_CST: - { - const unsigned char *p = (const unsigned char *) &TREE_REAL_CST (t); - size_t i; - strcpy (digit_buffer, "0x"); - for (i = 0; i < sizeof TREE_REAL_CST (t); i++) - sprintf (digit_buffer + 2 + 2*i, "%02x", *p++); - } + real_to_decimal (digit_buffer, &TREE_REAL_CST (t), + sizeof (digit_buffer), 0, 1); output_add_string (scratch_buffer, digit_buffer); break; @@ -1832,7 +1806,7 @@ dump_expr (t, flags) case CONSTRUCTOR: if (TREE_TYPE (t) && TYPE_PTRMEMFUNC_P (TREE_TYPE (t))) { - tree idx = build_component_ref (t, pfn_identifier, NULL_TREE, 0); + tree idx = build_ptrmemfunc_access_expr (t, pfn_identifier); if (integer_zerop (idx)) { @@ -1911,10 +1885,6 @@ dump_expr (t, flags) dump_decl (TEMPLATE_PARM_DECL (t), flags & ~TFF_DECL_SPECIFIERS); break; - case IDENTIFIER_NODE: - print_tree_identifier (scratch_buffer, t); - break; - case SCOPE_REF: dump_type (TREE_OPERAND (t, 0), flags); print_scope_operator (scratch_buffer); @@ -2029,12 +1999,10 @@ dump_expr (t, flags) output_add_string (scratch_buffer, ") break; "); break; - case TREE_LIST: - if (TREE_VALUE (t) && TREE_CODE (TREE_VALUE (t)) == FUNCTION_DECL) - { - print_tree_identifier (scratch_buffer, DECL_NAME (TREE_VALUE (t))); - break; - } + case BASELINK: + print_tree_identifier (scratch_buffer, DECL_NAME (get_first_fn (t))); + break; + /* else fall through */ /* This list is incomplete, but should suffice for now. @@ -2050,10 +2018,7 @@ dump_expr (t, flags) } static void -dump_binary_op (opstring, t, flags) - const char *opstring; - tree t; - int flags; +dump_binary_op (const char *opstring, tree t, int flags) { print_left_paren (scratch_buffer); dump_expr (TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS); @@ -2068,10 +2033,7 @@ dump_binary_op (opstring, t, flags) } static void -dump_unary_op (opstring, t, flags) - const char *opstring; - tree t; - int flags; +dump_unary_op (const char *opstring, tree t, int flags) { if (flags & TFF_EXPR_IN_PARENS) print_left_paren (scratch_buffer); @@ -2085,9 +2047,7 @@ dump_unary_op (opstring, t, flags) control. */ const char * -type_as_string (typ, flags) - tree typ; - int flags; +type_as_string (tree typ, int flags) { reinit_global_formatting_buffer (); @@ -2097,9 +2057,7 @@ type_as_string (typ, flags) } const char * -expr_as_string (decl, flags) - tree decl; - int flags; +expr_as_string (tree decl, int flags) { reinit_global_formatting_buffer (); @@ -2109,9 +2067,7 @@ expr_as_string (decl, flags) } const char * -decl_as_string (decl, flags) - tree decl; - int flags; +decl_as_string (tree decl, int flags) { reinit_global_formatting_buffer (); @@ -2121,9 +2077,7 @@ decl_as_string (decl, flags) } const char * -context_as_string (context, flags) - tree context; - int flags; +context_as_string (tree context, int flags) { reinit_global_formatting_buffer (); @@ -2135,9 +2089,7 @@ context_as_string (context, flags) /* Generate the three forms of printable names for cxx_printable_name. */ const char * -lang_decl_name (decl, v) - tree decl; - int v; +lang_decl_name (tree decl, int v) { if (v >= 2) return decl_as_string (decl, TFF_DECL_SPECIFIERS); @@ -2159,8 +2111,7 @@ lang_decl_name (decl, v) } const char * -cp_file_of (t) - tree t; +cp_file_of (tree t) { if (TREE_CODE (t) == PARM_DECL && DECL_CONTEXT (t)) return DECL_SOURCE_FILE (DECL_CONTEXT (t)); @@ -2173,8 +2124,7 @@ cp_file_of (t) } int -cp_line_of (t) - tree t; +cp_line_of (tree t) { int line = 0; if (TREE_CODE (t) == PARM_DECL && DECL_CONTEXT (t)) @@ -2201,9 +2151,7 @@ cp_line_of (t) function. */ static const char * -decl_to_string (decl, verbose) - tree decl; - int verbose; +decl_to_string (tree decl, int verbose) { int flags = 0; @@ -2224,9 +2172,7 @@ decl_to_string (decl, verbose) } static const char * -expr_to_string (decl, verbose) - tree decl; - int verbose ATTRIBUTE_UNUSED; +expr_to_string (tree decl, int verbose ATTRIBUTE_UNUSED) { reinit_global_formatting_buffer (); @@ -2236,9 +2182,7 @@ expr_to_string (decl, verbose) } static const char * -fndecl_to_string (fndecl, verbose) - tree fndecl; - int verbose; +fndecl_to_string (tree fndecl, int verbose) { int flags; @@ -2254,17 +2198,13 @@ fndecl_to_string (fndecl, verbose) static const char * -code_to_string (c, v) - enum tree_code c; - int v ATTRIBUTE_UNUSED; +code_to_string (enum tree_code c, int v ATTRIBUTE_UNUSED) { return tree_code_name [c]; } const char * -language_to_string (c, v) - enum languages c; - int v ATTRIBUTE_UNUSED; +language_to_string (enum languages c, int v ATTRIBUTE_UNUSED) { switch (c) { @@ -2286,9 +2226,7 @@ language_to_string (c, v) /* Return the proper printed version of a parameter to a C++ function. */ static const char * -parm_to_string (p, v) - int p; - int v ATTRIBUTE_UNUSED; +parm_to_string (int p, int v ATTRIBUTE_UNUSED) { if (p < 0) return "`this'"; @@ -2298,9 +2236,7 @@ parm_to_string (p, v) } static const char * -op_to_string (p, v) - enum tree_code p; - int v ATTRIBUTE_UNUSED; +op_to_string (enum tree_code p, int v ATTRIBUTE_UNUSED) { tree id; @@ -2309,9 +2245,7 @@ op_to_string (p, v) } static const char * -type_to_string (typ, verbose) - tree typ; - int verbose; +type_to_string (tree typ, int verbose) { int flags; @@ -2328,9 +2262,7 @@ type_to_string (typ, verbose) } static const char * -assop_to_string (p, v) - enum tree_code p; - int v ATTRIBUTE_UNUSED; +assop_to_string (enum tree_code p, int v ATTRIBUTE_UNUSED) { tree id; @@ -2339,9 +2271,7 @@ assop_to_string (p, v) } static const char * -args_to_string (p, verbose) - tree p; - int verbose; +args_to_string (tree p, int verbose) { int flags = 0; if (verbose) @@ -2367,9 +2297,7 @@ args_to_string (p, verbose) } static const char * -cv_to_string (p, v) - tree p; - int v; +cv_to_string (tree p, int v) { reinit_global_formatting_buffer (); @@ -2380,9 +2308,7 @@ cv_to_string (p, v) /* Langhook for print_error_function. */ void -cxx_print_error_function (context, file) - diagnostic_context *context; - const char *file; +cxx_print_error_function (diagnostic_context *context, const char *file) { lhd_print_error_function (context, file); output_set_prefix (&context->buffer, file); @@ -2390,9 +2316,8 @@ cxx_print_error_function (context, file) } static void -cp_diagnostic_starter (context, diagnostic) - diagnostic_context *context; - diagnostic_info *diagnostic; +cp_diagnostic_starter (diagnostic_context *context, + diagnostic_info *diagnostic) { diagnostic_report_current_module (context); cp_print_error_function (context, diagnostic); @@ -2401,9 +2326,8 @@ cp_diagnostic_starter (context, diagnostic) } static void -cp_diagnostic_finalizer (context, diagnostic) - diagnostic_context *context; - diagnostic_info *diagnostic __attribute__((unused)); +cp_diagnostic_finalizer (diagnostic_context *context, + diagnostic_info *diagnostic ATTRIBUTE_UNUSED) { output_destroy_prefix (&context->buffer); } @@ -2411,9 +2335,8 @@ cp_diagnostic_finalizer (context, diagnostic) /* Print current function onto BUFFER, in the process of reporting a diagnostic message. Called from cp_diagnostic_starter. */ static void -cp_print_error_function (context, diagnostic) - diagnostic_context *context; - diagnostic_info *diagnostic; +cp_print_error_function (diagnostic_context *context, + diagnostic_info *diagnostic) { if (diagnostic_last_function_changed (context)) { @@ -2440,8 +2363,7 @@ cp_print_error_function (context, diagnostic) /* Returns a description of FUNCTION using standard terminology. */ static const char * -function_category (fn) - tree fn; +function_category (tree fn) { if (DECL_FUNCTION_MEMBER_P (fn)) { @@ -2463,8 +2385,7 @@ function_category (fn) /* Report the full context of a current template instantiation, onto BUFFER. */ static void -print_instantiation_full_context (context) - diagnostic_context *context; +print_instantiation_full_context (diagnostic_context *context) { tree p = current_instantiation (); int line = lineno; @@ -2499,11 +2420,8 @@ print_instantiation_full_context (context) /* Same as above but less verbose. */ static void -print_instantiation_partial_context (context, t, file, line) - diagnostic_context *context; - tree t; - const char *file; - int line; +print_instantiation_partial_context (diagnostic_context *context, + tree t, const char *file, int line) { for (; t; t = TREE_CHAIN (t)) { @@ -2518,8 +2436,7 @@ print_instantiation_partial_context (context, t, file, line) /* Called from cp_thing to print the template context for an error. */ static void -maybe_print_instantiation_context (context) - diagnostic_context *context; +maybe_print_instantiation_context (diagnostic_context *context) { if (!problematic_instantiation_changed () || current_instantiation () == 0) return; @@ -2530,7 +2447,7 @@ maybe_print_instantiation_context (context) /* Report the bare minimum context of a template instantiation. */ void -print_instantiation_context () +print_instantiation_context (void) { print_instantiation_partial_context (global_dc, current_instantiation (), input_filename, lineno); @@ -2551,9 +2468,7 @@ print_instantiation_context () %T type. %V cv-qualifier. */ static bool -cp_printer (buffer, text) - output_buffer *buffer; - text_info *text; +cp_printer (output_buffer *buffer, text_info *text) { int verbose = 0; const char *result; @@ -2597,18 +2512,14 @@ cp_printer (buffer, text) } static void -print_integer (buffer, i) - output_buffer *buffer; - HOST_WIDE_INT i; +print_integer (output_buffer *buffer, HOST_WIDE_INT i) { sprintf (digit_buffer, HOST_WIDE_INT_PRINT_DEC, (HOST_WIDE_INT) i); output_add_string (buffer, digit_buffer); } static void -print_non_consecutive_character (buffer, c) - output_buffer *buffer; - int c; +print_non_consecutive_character (output_buffer *buffer, int c) { const char *p = output_last_position (buffer); @@ -2621,9 +2532,7 @@ print_non_consecutive_character (buffer, c) behavior of cp_*_at. */ static tree -locate_error (msgid, ap) - const char *msgid; - va_list ap; +locate_error (const char *msgid, va_list ap) { tree here = 0, t; int plus = 0;