From bb20cc46aed1c5abe454e1d0472cf307c6a982ed Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Thu, 21 Sep 2000 05:43:14 +0200 Subject: [PATCH] errfn.c: Move declaration of cp_printer and cp_printers to ... * errfn.c: Move declaration of cp_printer and cp_printers to ... * cp-tree.h: ... here. * error.c: Remove declaration of cp_printer. From-SVN: r36557 --- gcc/cp/ChangeLog | 22 +++--- gcc/cp/cp-tree.h | 171 ++++++++++++++++++++++++---------------------- gcc/cp/errfn.c | 14 +--- gcc/cp/error.c | 172 +++++++++++++++++++++++------------------------ 4 files changed, 191 insertions(+), 188 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index eb1fa50a3af..222b0158f8d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2000-09-21 Andreas Jaeger + + * errfn.c: Move declaration of cp_printer and cp_printers to ... + * cp-tree.h: ... here. + + * error.c: Remove declaration of cp_printer. + 2000-09-20 Mark Mitchell * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. @@ -14,7 +21,7 @@ 2000-09-18 Kaveh R. Ghazi * cp-tree.h (check_function_format): Accept a `status' parameter. - + * call.c, typeck.c: Updates calls to `check_function_format'. 2000-09-17 Geoffrey Keating @@ -72,7 +79,7 @@ * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. * typeck.c: Change order of includes. (convert_sequence): Remove. - + 2000-09-14 Joseph S. Myers * lex.c (reswords): Add _Complex. @@ -214,7 +221,7 @@ Thu Sep 14 12:10:45 2000 Richard Kenner (finish_case_label): Remove. * typeck.c (c_expand_return): Remove. (c_expand_start_case): Likewise. - + 2000-09-07 Gabriel Dos Reis * ir.texi: Document type nodes. @@ -316,7 +323,7 @@ Thu Sep 14 12:10:45 2000 Richard Kenner (cp_statement_code_p): New function. (walk_stmt_tree): Remove. (init_tree): Set lang_statement_code_p. - + 2000-09-06 Zack Weinberg Integrated preprocessor. @@ -2983,11 +2990,11 @@ Mon May 15 11:46:29 2000 Donald Lindsay Wed May 17 17:27:44 2000 Andrew Cagney * decl.c (pop_label): Replace warn_unused with warn_unused_label. - * typeck.c (build_x_compound_expr): Replace warn_unused with - warn_unused_value. + * typeck.c (build_x_compound_expr): Replace warn_unused with + warn_unused_value. * decl2.c (lang_decode_option): Update -Wall unused flags by - calling set_Wunused. + calling set_Wunused. 2000-05-16 Mark Mitchell @@ -6327,4 +6334,3 @@ Wed Jan 26 22:19:14 2000 J"orn Rennecke 2000-01-01 Martin v. Löwis * call.c (build_new_method_call): Also check destructors. - diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index adea1b55d93..2516e89532a 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -114,7 +114,7 @@ Boston, MA 02111-1307, USA. */ TYPE_BINFO For an ENUMERAL_TYPE, this is ENUM_TEMPLATE_INFO. For a TYPENAME_TYPE, this is TYPENAME_TYPE_FULLNAME. - For a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM, + For a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM, this is TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. BINFO_VIRTUALS @@ -145,7 +145,7 @@ Boston, MA 02111-1307, USA. */ in both ABIs. DECL_ARGUMENTS - For a VAR_DECL this is DECL_ANON_UNION_ELEMS. + For a VAR_DECL this is DECL_ANON_UNION_ELEMS. DECL_VINDEX This field is NULL for a non-virtual function. For a virtual @@ -154,7 +154,7 @@ Boston, MA 02111-1307, USA. */ a virtual function is declared, but before it is known what function is overriden, this field is the error_mark_node. - Temporarily, it may be set to a TREE_LIST whose TREE_VALUE is + Temporarily, it may be set to a TREE_LIST whose TREE_VALUE is the virtual function this one overrides, and whose TREE_CHAIN is the old DECL_VINDEX. */ @@ -173,8 +173,8 @@ Boston, MA 02111-1307, USA. */ #define VAR_FUNCTION_OR_PARM_DECL_CHECK(NODE) \ ({ const tree __t = NODE; \ enum tree_code __c = TREE_CODE(__t); \ - if (__c != VAR_DECL \ - && __c != FUNCTION_DECL \ + if (__c != VAR_DECL \ + && __c != FUNCTION_DECL \ && __c != PARM_DECL) \ tree_check_failed (__t, VAR_DECL, __FILE__, __LINE__, \ __FUNCTION__); \ @@ -183,7 +183,7 @@ Boston, MA 02111-1307, USA. */ #define VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK(NODE) \ ({ const tree __t = NODE; \ enum tree_code __c = TREE_CODE(__t); \ - if (__c != VAR_DECL \ + if (__c != VAR_DECL \ && __c != FUNCTION_DECL \ && __c != TYPE_DECL \ && __c != TEMPLATE_DECL) \ @@ -307,14 +307,14 @@ struct lang_id2 tree error_locus; }; -typedef struct +typedef struct { tree t; int new_type_flag; tree lookups; } flagged_type_tree; -typedef struct +typedef struct { struct tree_common common; HOST_WIDE_INT index; @@ -326,7 +326,7 @@ typedef struct typedef struct ptrmem_cst { struct tree_common common; - /* This isn't used, but the middle-end expects all constants to have + /* This isn't used, but the middle-end expects all constants to have this field. */ struct rtx_def *rtl; tree member; @@ -470,7 +470,7 @@ struct tree_srcloc /* The IDENTIFIER_VALUE is the value of the IDENTIFIER_BINDING, or NULL_TREE if there is no binding. */ #define IDENTIFIER_VALUE(NODE) \ - (IDENTIFIER_BINDING (NODE) \ + (IDENTIFIER_BINDING (NODE) \ ? BINDING_VALUE (IDENTIFIER_BINDING (NODE)) \ : NULL_TREE) @@ -493,7 +493,7 @@ struct tree_srcloc #define LANG_ID_FIELD(NAME,NODE) \ (LANG_IDENTIFIER_CAST (NODE)->x \ - ? LANG_IDENTIFIER_CAST (NODE)->x->NAME : 0) + ? LANG_IDENTIFIER_CAST (NODE)->x->NAME : 0) #define SET_LANG_ID(NODE,VALUE,NAME) \ (LANG_IDENTIFIER_CAST (NODE)->x == 0 \ @@ -577,7 +577,7 @@ enum cp_tree_index CPTI_VMI_CLASS_DESC_TYPE, CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE, - + CPTI_CLASS_TYPE, CPTI_RECORD_TYPE, CPTI_UNION_TYPE, @@ -1144,8 +1144,8 @@ extern int name_mangling_version; would normally be, for use with WINE. */ extern int flag_short_wchar; -/* Nonzero if squashed mangling is to be performed. - This uses the B and K codes to reference previously seen class types +/* Nonzero if squashed mangling is to be performed. + This uses the B and K codes to reference previously seen class types and class qualifiers. */ extern int flag_do_squangling; @@ -1220,8 +1220,8 @@ enum languages { lang_c, lang_cplusplus, lang_java }; || TREE_CODE (t) == BOUND_TEMPLATE_TEMPLATE_PARM \ || TYPE_LANG_FLAG_5 (t)) -/* Set IS_AGGR_TYPE for T to VAL. T must be a class, struct, or - union type. */ +/* Set IS_AGGR_TYPE for T to VAL. T must be a class, struct, or + union type. */ #define SET_IS_AGGR_TYPE(T, VAL) \ (TYPE_LANG_FLAG_5 (T) = (VAL)) @@ -1246,7 +1246,7 @@ enum languages { lang_c, lang_cplusplus, lang_java }; /* The type qualifiers for this type, including the qualifiers on the elements for an array type. */ #define CP_TYPE_QUALS(NODE) \ - ((TREE_CODE (NODE) != ARRAY_TYPE) \ + ((TREE_CODE (NODE) != ARRAY_TYPE) \ ? TYPE_QUALS (NODE) : cp_type_quals (NODE)) /* Nonzero if this type is const-qualified. */ @@ -1364,7 +1364,7 @@ struct lang_type of this by updating the size of this bitfield whenever you add or remove a flag. */ unsigned dummy : 8; - + int vsize; tree primary_base; @@ -1409,7 +1409,7 @@ struct lang_type has a two-argument array operator delete. */ #define TYPE_VEC_NEW_USES_COOKIE(NODE) \ (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (NODE) \ - || (TYPE_LANG_SPECIFIC (NODE) \ + || (TYPE_LANG_SPECIFIC (NODE) \ && TYPE_VEC_DELETE_TAKES_SIZE (NODE))) /* Nonzero means that this _CLASSTYPE node defines ways of converting @@ -1523,7 +1523,7 @@ struct lang_type #define SET_CLASSTYPE_MARKED2(NODE) SET_CLASSTYPE_MARKED_N(NODE, 1) #define CLEAR_CLASSTYPE_MARKED2(NODE) CLEAR_CLASSTYPE_MARKED_N(NODE, 1) #define SET_CLASSTYPE_MARKED3(NODE) SET_CLASSTYPE_MARKED_N(NODE, 2) -#define CLEAR_CLASSTYPE_MARKED3(NODE) CLEAR_CLASSTYPE_MARKED_N(NODE, 2) +#define CLEAR_CLASSTYPE_MARKED3(NODE) CLEAR_CLASSTYPE_MARKED_N(NODE, 2) #define SET_CLASSTYPE_MARKED4(NODE) SET_CLASSTYPE_MARKED_N(NODE, 3) #define CLEAR_CLASSTYPE_MARKED4(NODE) CLEAR_CLASSTYPE_MARKED_N(NODE, 3) #define SET_CLASSTYPE_MARKED5(NODE) SET_CLASSTYPE_MARKED_N(NODE, 4) @@ -1566,8 +1566,8 @@ struct lang_type binfo_for_vbase. C is the most derived class for the hierarchy containing BINFO. */ #define CANONICAL_BINFO(BINFO, C) \ - (TREE_VIA_VIRTUAL (BINFO) \ - ? binfo_for_vbase (BINFO_TYPE (BINFO), C) \ + (TREE_VIA_VIRTUAL (BINFO) \ + ? binfo_for_vbase (BINFO_TYPE (BINFO), C) \ : BINFO) /* Number of direct baseclasses of NODE. */ @@ -1692,7 +1692,7 @@ struct lang_type /* Any subobject that needs a new vtable must have a vptr and must not be a primary base (since it would then use the vtable from a derived class.) */ -#define SET_BINFO_NEW_VTABLE_MARKED(B, C) \ +#define SET_BINFO_NEW_VTABLE_MARKED(B, C) \ (BINFO_NEW_VTABLE_MARKED (B, C) = 1, \ my_friendly_assert (!BINFO_PRIMARY_MARKED_P (B), 20000517), \ my_friendly_assert (CLASSTYPE_VFIELDS (BINFO_TYPE (B)) != NULL_TREE, \ @@ -1806,7 +1806,7 @@ struct lang_type #define CAN_HAVE_FULL_LANG_DECL_P(NODE) \ (!(TREE_CODE ((NODE)) == VAR_DECL \ || TREE_CODE ((NODE)) == CONST_DECL \ - || TREE_CODE ((NODE)) == FIELD_DECL \ + || TREE_CODE ((NODE)) == FIELD_DECL \ || TREE_CODE ((NODE)) == USING_DECL)) struct lang_decl_flags @@ -1932,7 +1932,7 @@ struct lang_decl /* Nonzero if NODE (a FUNCTION_DECL) is a constructor for a complete object. */ #define DECL_COMPLETE_CONSTRUCTOR_P(NODE) \ - (DECL_CONSTRUCTOR_P (NODE) \ + (DECL_CONSTRUCTOR_P (NODE) \ && DECL_NAME (NODE) == complete_ctor_identifier) /* Nonzero if NODE (a FUNCTION_DECL) is a constructor for a base @@ -1964,7 +1964,7 @@ struct lang_decl /* Nonzero if NODE (a FUNCTION_DECL) is a destructor for a complete object. */ #define DECL_COMPLETE_DESTRUCTOR_P(NODE) \ - (DECL_DESTRUCTOR_P (NODE) \ + (DECL_DESTRUCTOR_P (NODE) \ && DECL_NAME (NODE) == complete_dtor_identifier) /* Nonzero if NODE (a FUNCTION_DECL) is a destructor for a base @@ -1976,13 +1976,13 @@ struct lang_decl /* Nonzero if NODE (a FUNCTION_DECL) is a destructor for a complete object that deletes the object after it has been destroyed. */ #define DECL_DELETING_DESTRUCTOR_P(NODE) \ - (DECL_DESTRUCTOR_P (NODE) \ + (DECL_DESTRUCTOR_P (NODE) \ && DECL_NAME (NODE) == deleting_dtor_identifier) /* Nonzero if NODE (a FUNCTION_DECL) is a cloned constructor or destructor. */ #define DECL_CLONED_FUNCTION_P(NODE) \ - (DECL_LANG_SPECIFIC (NODE) \ + (DECL_LANG_SPECIFIC (NODE) \ && DECL_CLONED_FUNCTION (NODE) != NULL_TREE) /* If DECL_CLONED_FUNCTION_P holds, this is the function that was @@ -2024,7 +2024,7 @@ struct lang_decl overloaded operator, ERROR_MARK is returned. Since the numerical value of ERROR_MARK is zero, this macro can be used as a predicate to test whether or not NODE is an overloaded operator. */ -#define DECL_OVERLOADED_OPERATOR_P(NODE) \ +#define DECL_OVERLOADED_OPERATOR_P(NODE) \ (IDENTIFIER_OPNAME_P (DECL_NAME ((NODE))) \ ? DECL_LANG_SPECIFIC (NODE)->u2.operator_code : ERROR_MARK) @@ -2040,7 +2040,7 @@ struct lang_decl /* Non-zero for a FUNCTION_DECL that declares a type-info function. This only happens in the old abi. */ -#define DECL_TINFO_FN_P(NODE) \ +#define DECL_TINFO_FN_P(NODE) \ (TREE_CODE (NODE) == FUNCTION_DECL \ && DECL_ARTIFICIAL (NODE) \ && DECL_LANG_SPECIFIC(NODE)->decl_flags.tinfo_fn_p) @@ -2083,7 +2083,7 @@ struct lang_decl #define SHARED_MEMBER_P(NODE) \ (TREE_CODE (NODE) == VAR_DECL || TREE_CODE (NODE) == TYPE_DECL \ || TREE_CODE (NODE) == CONST_DECL) - + /* Nonzero for FUNCTION_DECL means that this decl is a non-static member function. */ #define DECL_NONSTATIC_MEMBER_FUNCTION_P(NODE) \ @@ -2098,7 +2098,7 @@ struct lang_decl has `this' as const X *const. */ #define DECL_CONST_MEMFUNC_P(NODE) \ (DECL_NONSTATIC_MEMBER_FUNCTION_P (NODE) \ - && CP_TYPE_CONST_P (TREE_TYPE (TREE_VALUE \ + && CP_TYPE_CONST_P (TREE_TYPE (TREE_VALUE \ (TYPE_ARG_TYPES (TREE_TYPE (NODE)))))) /* Nonzero for FUNCTION_DECL means that this member function @@ -2109,8 +2109,8 @@ struct lang_decl (TYPE_ARG_TYPES (TREE_TYPE (NODE)))))) /* Nonzero for a DECL means that this member is a non-static member. */ -#define DECL_NONSTATIC_MEMBER_P(NODE) \ - ((TREE_CODE (NODE) == FUNCTION_DECL \ +#define DECL_NONSTATIC_MEMBER_P(NODE) \ + ((TREE_CODE (NODE) == FUNCTION_DECL \ && DECL_NONSTATIC_MEMBER_FUNCTION_P (NODE)) \ || TREE_CODE (NODE) == FIELD_DECL) @@ -2163,7 +2163,7 @@ struct lang_decl /* For a non-member friend function, the class (if any) in which this friend was defined. For example, given: - + struct S { friend void f (); }; the DECL_FRIEND_CONTEXT for `f' will be `S'. */ @@ -2244,7 +2244,7 @@ struct lang_decl but have not yet processed it. */ #define DECL_PENDING_INLINE_P(NODE) \ (DECL_LANG_SPECIFIC (NODE)->decl_flags.pending_inline_p) - + /* If DECL_PENDING_INLINE_P holds, this is the saved text of the function. */ #define DECL_PENDING_INLINE_INFO(NODE) \ @@ -2289,9 +2289,9 @@ struct lang_decl /* Set the template information for an ENUMERAL_, RECORD_, or UNION_TYPE to VAL. */ -#define SET_TYPE_TEMPLATE_INFO(NODE, VAL) \ - (TREE_CODE (NODE) == ENUMERAL_TYPE \ - ? (ENUM_TEMPLATE_INFO (NODE) = VAL) \ +#define SET_TYPE_TEMPLATE_INFO(NODE, VAL) \ + (TREE_CODE (NODE) == ENUMERAL_TYPE \ + ? (ENUM_TEMPLATE_INFO (NODE) = VAL) \ : (CLASSTYPE_TEMPLATE_INFO (NODE) = VAL)) #define TI_TEMPLATE(NODE) (TREE_PURPOSE (NODE)) @@ -2304,7 +2304,7 @@ struct lang_decl arguments, then each entry in the TREE_VEC is itself a TREE_VEC, containing the template arguments for a single level. The first entry in the outer TREE_VEC is the outermost level of template - parameters; the last is the innermost. + parameters; the last is the innermost. It is incorrect to ever form a template argument vector containing only one level of arguments, but which is a TREE_VEC containing as @@ -2330,7 +2330,7 @@ struct lang_decl /* The LEVELth level of the template ARGS. The outermost level of of args is level 1, not level 0. */ #define TMPL_ARGS_LEVEL(ARGS, LEVEL) \ - (TMPL_ARGS_HAVE_MULTIPLE_LEVELS (ARGS) \ + (TMPL_ARGS_HAVE_MULTIPLE_LEVELS (ARGS) \ ? TREE_VEC_ELT ((ARGS), (LEVEL) - 1) : ARGS) /* Set the LEVELth level of the template ARGS to VAL. This macro does @@ -2349,9 +2349,9 @@ struct lang_decl /* Given a single level of template arguments in NODE, return the number of arguments. */ -#define NUM_TMPL_ARGS(NODE) \ - ((NODE) == NULL_TREE ? 0 \ - : (TREE_CODE (NODE) == TREE_VEC \ +#define NUM_TMPL_ARGS(NODE) \ + ((NODE) == NULL_TREE ? 0 \ + : (TREE_CODE (NODE) == TREE_VEC \ ? TREE_VEC_LENGTH (NODE) : list_length (NODE))) /* Returns the innermost level of template arguments in ARGS. */ @@ -2369,7 +2369,7 @@ struct lang_decl template struct S { template void f(U); } the FUNCTION_DECL for S::f will have, as its - DECL_TI_TEMPLATE, `template S::f'. + DECL_TI_TEMPLATE, `template S::f'. As a special case, for a member friend template of a template class, this value will not be a TEMPLATE_DECL, but rather a @@ -2379,7 +2379,7 @@ struct lang_decl template struct S { friend void f(int, double); } the DECL_TI_TEMPLATE will be a LOOKUP_EXPR for `f' and the - DECL_TI_ARGS will be {int}. */ + DECL_TI_ARGS will be {int}. */ #define DECL_TI_TEMPLATE(NODE) TI_TEMPLATE (DECL_TEMPLATE_INFO (NODE)) /* The template arguments used to obtain this decl from the most @@ -2390,7 +2390,7 @@ struct lang_decl #define DECL_TI_ARGS(NODE) TI_ARGS (DECL_TEMPLATE_INFO (NODE)) #define CLASSTYPE_TI_TEMPLATE(NODE) TI_TEMPLATE (CLASSTYPE_TEMPLATE_INFO (NODE)) #define CLASSTYPE_TI_ARGS(NODE) TI_ARGS (CLASSTYPE_TEMPLATE_INFO (NODE)) -#define ENUM_TI_TEMPLATE(NODE) \ +#define ENUM_TI_TEMPLATE(NODE) \ TI_TEMPLATE (ENUM_TEMPLATE_INFO (NODE)) #define ENUM_TI_ARGS(NODE) \ TI_ARGS (ENUM_TEMPLATE_INFO (NODE)) @@ -2445,7 +2445,7 @@ struct lang_decl /* Nonzero if NODE is a TYPE_DECL that should not be visible because it is from a dependent base class. */ -#define IMPLICIT_TYPENAME_TYPE_DECL_P(NODE) \ +#define IMPLICIT_TYPENAME_TYPE_DECL_P(NODE) \ (TREE_CODE (NODE) == TYPE_DECL \ && DECL_ARTIFICIAL (NODE) \ && IMPLICIT_TYPENAME_P (TREE_TYPE (NODE))) @@ -2466,9 +2466,9 @@ struct lang_decl #define TYPE_POLYMORPHIC_P(NODE) (TREE_LANG_FLAG_2 (NODE)) /* Nonzero if this class has a virtual function table pointer. */ -#define TYPE_CONTAINS_VPTR_P(NODE) \ - (TYPE_POLYMORPHIC_P (NODE) \ - || (vbase_offsets_in_vtable_p () \ +#define TYPE_CONTAINS_VPTR_P(NODE) \ + (TYPE_POLYMORPHIC_P (NODE) \ + || (vbase_offsets_in_vtable_p () \ && TYPE_USES_VIRTUAL_BASECLASSES (NODE))) extern int flag_new_for_scope; @@ -2512,12 +2512,12 @@ extern int flag_new_for_scope; /* [basic.fundamental] Types bool, char, wchar_t, and the signed and unsigned integer types - are collectively called integral types. + are collectively called integral types. Note that INTEGRAL_TYPE_P, as defined in tree.h, allows enumeration types as well, which is incorrect in C++. */ -#define CP_INTEGRAL_TYPE_P(TYPE) \ - (TREE_CODE ((TYPE)) == BOOLEAN_TYPE \ +#define CP_INTEGRAL_TYPE_P(TYPE) \ + (TREE_CODE ((TYPE)) == BOOLEAN_TYPE \ || TREE_CODE ((TYPE)) == INTEGER_TYPE) /* [basic.fundamental] @@ -2568,15 +2568,15 @@ extern int flag_new_for_scope; #define TYPE_HAS_COMPLEX_INIT_REF(NODE) (TYPE_LANG_SPECIFIC(NODE)->has_complex_init_ref) /* Nonzero if TYPE has a trivial destructor. From [class.dtor]: - + A destructor is trivial if it is an implicitly declared destructor and if: - all of the direct base classes of its class have trivial - destructors, + destructors, - for all of the non-static data members of its class that are - of class type (or array thereof), each such class has a + of class type (or array thereof), each such class has a trivial destructor. */ #define TYPE_HAS_TRIVIAL_DESTRUCTOR(NODE) \ (!TYPE_HAS_NONTRIVIAL_DESTRUCTOR (NODE)) @@ -2677,7 +2677,7 @@ extern int flag_new_for_scope; function. (Of course, the exact values may differ depending on the mangling - scheme, sizes of types, and such.). + scheme, sizes of types, and such.). Under the new ABI, we do: @@ -2690,7 +2690,7 @@ extern int flag_new_for_scope; in the object.) If the function is virtual, then PFN is one plus twice the index into the vtable; otherwise, it is just a pointer to the function. */ - + /* Get the POINTER_TYPE to the METHOD_TYPE associated with this pointer to member function. TYPE_PTRMEMFUNC_P _must_ be true, before using this macro. */ @@ -2728,7 +2728,7 @@ extern int flag_new_for_scope; #define PTRMEM_CST_CLASS(NODE) \ TYPE_PTRMEM_CLASS_TYPE (TREE_TYPE (PTRMEM_CST_CHECK (NODE))) -/* For a pointer-to-member constant `X::Y' this is the _DECL for +/* For a pointer-to-member constant `X::Y' this is the _DECL for `Y'. */ #define PTRMEM_CST_MEMBER(NODE) (((ptrmem_cst_t)PTRMEM_CST_CHECK (NODE))->member) @@ -2857,7 +2857,7 @@ extern int flag_new_for_scope; template struct S { template void f(U); - template <> void f(T); + template <> void f(T); }; the `S::f(int)' function will appear on the @@ -2881,7 +2881,7 @@ extern int flag_new_for_scope; #define DECL_TEMPLATE_SPECIALIZATIONS(NODE) DECL_SIZE(NODE) /* Nonzero for a DECL which is actually a template parameter. */ -#define DECL_TEMPLATE_PARM_P(NODE) \ +#define DECL_TEMPLATE_PARM_P(NODE) \ (DECL_LANG_FLAG_0 (NODE) \ && (TREE_CODE (NODE) == CONST_DECL \ || TREE_CODE (NODE) == TYPE_DECL \ @@ -3396,7 +3396,7 @@ extern varray_type local_classes; #define VTABLE_PFN_NAME "__pfn" #define VTABLE_DELTA2_NAME "__delta2" -#define EXCEPTION_CLEANUP_NAME "exception cleanup" +#define EXCEPTION_CLEANUP_NAME "exception cleanup" /* The name used as a prefix for VTTs. When the new ABI mangling scheme is implemented, this should be removed. */ @@ -3414,7 +3414,7 @@ extern varray_type local_classes; #define VPTR_NAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[0] == JOINER \ && IDENTIFIER_POINTER (ID_NODE)[1] == 'v') #define DESTRUCTOR_NAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[1] == JOINER \ - && IDENTIFIER_POINTER (ID_NODE)[2] == '_') + && IDENTIFIER_POINTER (ID_NODE)[2] == '_') #define VTABLE_NAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[1] == 'v' \ && IDENTIFIER_POINTER (ID_NODE)[2] == 't' \ @@ -3438,7 +3438,7 @@ extern varray_type local_classes; #endif /* !defined(NO_DOLLAR_IN_LABEL) || !defined(NO_DOT_IN_LABEL) */ /* Store the vbase pointer field name for type TYPE into pointer BUF. */ -#define FORMAT_VBASE_NAME(BUF,TYPE) do { \ +#define FORMAT_VBASE_NAME(BUF,TYPE) do { \ char *wbuf = (char *) alloca (TYPE_ASSEMBLER_NAME_LENGTH (TYPE) \ + sizeof (VBASE_NAME) + 1); \ sprintf (wbuf, VBASE_NAME_FORMAT, TYPE_ASSEMBLER_NAME_STRING (TYPE)); \ @@ -3527,7 +3527,7 @@ enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG }; These are used in global lookup to support elaborated types and qualifiers. - + LOOKUP_PREFER_TYPES means not to accept objects, and possibly namespaces. LOOKUP_PREFER_NAMESPACES means not to accept objects, and possibly types. LOOKUP_PREFER_BOTH means class-or-namespace-name. @@ -3555,7 +3555,7 @@ enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG }; #define LOOKUP_TYPES_ONLY(f) \ (!((f) & LOOKUP_PREFER_NAMESPACES) && ((f) & LOOKUP_PREFER_TYPES)) #define LOOKUP_QUALIFIERS_ONLY(f) ((f) & LOOKUP_PREFER_BOTH) - + /* These flags are used by the conversion code. CONV_IMPLICIT : Perform implicit conversions (standard and user-defined). @@ -3564,7 +3564,7 @@ enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG }; CONV_REINTERPRET: Perform the explicit conversions for reinterpret_cast. CONV_PRIVATE : Perform upcasts to private bases. CONV_FORCE_TEMP : Require a new temporary when converting to the same - aggregate type. */ + aggregate type. */ #define CONV_IMPLICIT 1 #define CONV_STATIC 2 @@ -3640,7 +3640,7 @@ enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG }; #define TEMPLATE_PARM_ORIG_LEVEL(NODE) (TEMPLATE_PARM_INDEX_CAST (NODE)->orig_level) #define TEMPLATE_PARM_DECL(NODE) (TEMPLATE_PARM_INDEX_CAST (NODE)->decl) -/* These macros are for accessing the fields of TEMPLATE_TYPE_PARM, +/* These macros are for accessing the fields of TEMPLATE_TYPE_PARM, TEMPLATE_TEMPLATE_PARM and BOUND_TEMPLATE_TEMPLATE_PARM nodes. */ #define TEMPLATE_TYPE_PARM_INDEX(NODE) (TYPE_FIELDS (NODE)) #define TEMPLATE_TYPE_IDX(NODE) \ @@ -3668,19 +3668,19 @@ enum tree_string_flags TS_FUNC_SCOPE = 1 << 8, /* show function scope */ TS_PEDANTIC_NAME = 1 << 9, /* pedantically name things */ TS_TEMPLATE_PREFIX= 1 << 10, /* show template prefix */ - + /* Internal use flags */ TS_TEMPLATE_PARM = 1 << 11, /* decl is really a non-type template parm */ TS_TEMPLATE_PLAIN = 1 << 12, /* don't decorate primary template_name */ - + TS_NEXT_BIT = 13 /* next available bit */ }; /* Returns the TEMPLATE_DECL associated to a TEMPLATE_TEMPLATE_PARM node. */ -#define TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL(NODE) \ +#define TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL(NODE) \ ((TREE_CODE (NODE) == BOUND_TEMPLATE_TEMPLATE_PARM) \ - ? TYPE_TI_TEMPLATE (NODE) \ + ? TYPE_TI_TEMPLATE (NODE) \ : TYPE_NAME (NODE)) /* in lex.c */ @@ -3950,11 +3950,11 @@ extern tree grokbitfield PARAMS ((tree, tree, tree)); extern tree groktypefield PARAMS ((tree, tree)); extern tree grokoptypename PARAMS ((tree, tree)); extern int copy_assignment_arg_p PARAMS ((tree, int)); -extern void cplus_decl_attributes PARAMS ((tree, tree, tree)); +extern void cplus_decl_attributes PARAMS ((tree, tree, tree)); extern tree constructor_name_full PARAMS ((tree)); extern tree constructor_name PARAMS ((tree)); extern void setup_vtbl_ptr PARAMS ((tree, tree)); -extern void defer_fn PARAMS ((tree)); +extern void defer_fn PARAMS ((tree)); extern tree get_temp_name PARAMS ((tree)); extern void finish_anon_union PARAMS ((tree)); extern tree finish_table PARAMS ((tree, tree, tree, int)); @@ -4019,6 +4019,13 @@ extern const char *cp_file_of PARAMS ((tree)); extern int cp_line_of PARAMS ((tree)); extern const char *language_to_string PARAMS ((enum languages, int)); extern void print_instantiation_context PARAMS ((void)); +/* cp_printer is the type of a function which converts an argument into + a string for digestion by printf. The cp_printer function should deal + with all memory management; the functions in errfn will not free + the char*s returned. See error.c for an example use of this code. */ +typedef const char *cp_printer PARAMS ((tree, int)); +extern cp_printer *cp_printers[256]; + /* in except.c */ extern void init_exception_processing PARAMS ((void)); @@ -4114,7 +4121,7 @@ extern void init_method PARAMS ((void)); extern char *build_overload_name PARAMS ((tree, int, int)); extern tree build_static_name PARAMS ((tree, tree)); extern tree build_decl_overload_real PARAMS ((tree, tree, tree, tree, - tree, int)); + tree, int)); extern void set_mangled_name_for_decl PARAMS ((tree)); extern tree build_typename_overload PARAMS ((tree)); extern tree build_overload_with_type PARAMS ((tree, tree)); @@ -4241,11 +4248,11 @@ extern int at_function_scope_p PARAMS ((void)); extern tree lookup_conversions PARAMS ((tree)); extern tree binfo_for_vtable PARAMS ((tree)); extern int binfo_from_vbase PARAMS ((tree)); -extern tree dfs_walk PARAMS ((tree, +extern tree dfs_walk PARAMS ((tree, tree (*)(tree, void *), tree (*) (tree, void *), void *)); -extern tree dfs_walk_real PARAMS ((tree, +extern tree dfs_walk_real PARAMS ((tree, tree (*) (tree, void *), tree (*) (tree, void *), tree (*) (tree, void *), @@ -4409,7 +4416,7 @@ extern tree array_type_nelts_top PARAMS ((tree)); extern tree break_out_target_exprs PARAMS ((tree)); extern tree get_type_decl PARAMS ((tree)); extern tree vec_binfo_member PARAMS ((tree, tree)); -extern tree decl_namespace_context PARAMS ((tree)); +extern tree decl_namespace_context PARAMS ((tree)); extern tree lvalue_type PARAMS ((tree)); extern tree error_type PARAMS ((tree)); extern tree build_ptr_wrapper PARAMS ((void *)); @@ -4427,7 +4434,7 @@ extern tree maybe_dummy_object PARAMS ((tree, tree *)); extern int is_dummy_object PARAMS ((tree)); extern tree walk_tree PARAMS ((tree *, walk_tree_fn, - void *, + void *, htab_t)); extern tree walk_tree_without_duplicates PARAMS ((tree *, walk_tree_fn, @@ -4445,7 +4452,7 @@ extern int count_trees PARAMS ((tree)); extern int char_type_p PARAMS ((tree)); extern void verify_stmt_tree PARAMS ((tree)); extern tree find_tree PARAMS ((tree, tree)); - + /* in typeck.c */ extern int string_conv_p PARAMS ((tree, tree, int)); extern tree condition_conversion PARAMS ((tree)); @@ -4571,7 +4578,7 @@ extern tree mangle_typeinfo_string_for_type PARAMS ((tree)); extern tree mangle_vtbl_for_type PARAMS ((tree)); extern tree mangle_vtt_for_type PARAMS ((tree)); extern tree mangle_ctor_vtbl_for_type PARAMS ((tree, tree)); -extern tree mangle_thunk PARAMS ((tree, tree, tree)); +extern tree mangle_thunk PARAMS ((tree, tree, tree)); extern tree mangle_conv_op_name_for_type PARAMS ((tree)); extern tree mangle_guard_variable PARAMS ((tree)); diff --git a/gcc/cp/errfn.c b/gcc/cp/errfn.c index 8560527a1ac..802f5676ee7 100644 --- a/gcc/cp/errfn.c +++ b/gcc/cp/errfn.c @@ -19,21 +19,13 @@ You should have received a copy of the GNU General Public License along with GNU CC; 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 "tree.h" #include "cp-tree.h" #include "toplev.h" -/* cp_printer is the type of a function which converts an argument into - a string for digestion by printf. The cp_printer function should deal - with all memory management; the functions in this file will not free - the char*s returned. See error.c for an example use of this code. */ - -typedef const char *cp_printer PARAMS ((tree, int)); -extern cp_printer * cp_printers[256]; - /* Whether or not we should try to be quiet for errors and warnings; this is used to avoid being too talkative about problems with tentative choices when we're computing the conversion costs for a method call. */ @@ -76,7 +68,7 @@ cp_thing (errfn, atarg1, format, ap) cp_printer * function; int alternate; int maybe_here; - + /* ignore text */ if (*f != '%') { @@ -175,7 +167,7 @@ cp_thing (errfn, atarg1, format, ap) buf[offset] = '\0'; /* If ATARG1 is set, but we haven't extracted any arguments, then - extract one tree argument for ATARG. */ + extract one tree argument for ATARG. */ if (nargs == 0 && atarg1) atarg = va_arg (ap, tree); diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 41e5f40a4f4..a847df490ef 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -36,7 +36,7 @@ enum pad { none, before, after }; TFF_CLASS_SCOPE: if possible, include the class-name part of a qualified-id. This flag may be implied in some circumstances by TFF_NAMESPACE_SCOPE. - TFF_SCOPE: the combinaison of the two above. + TFF_SCOPE: the combinaison of the two above. TFF_CHASE_TYPDEF: print the original type-id instead of the typedef-name. TFF_DECL_SPECIFIERS: print decl-specifiers. TFF_CLASS_KEY_OR_ENUM: precede a class-type name (resp. enum name) with @@ -90,8 +90,6 @@ typedef struct put_whitespace (TFI) = none; \ } while (0) -typedef const char *cp_printer (); - #define obstack_chunk_alloc xmalloc #define obstack_chunk_free free @@ -116,7 +114,7 @@ static char *scratch_firstobj; # define OB_PUTI(CST) do { sprintf (digit_buffer, HOST_WIDE_INT_PRINT_DEC, (HOST_WIDE_INT)(CST)); \ OB_PUTCP (digit_buffer); } while (0) -# define OB_END_TEMPLATE_ID() \ +# define OB_END_TEMPLATE_ID() \ (((obstack_next_free (&scratch_obstack) != obstack_base (&scratch_obstack) \ && obstack_next_free (&scratch_obstack)[-1] == '>') \ ? OB_PUTC (' ') : (void)0), OB_PUTC ('>')) @@ -256,7 +254,7 @@ dump_scope (scope, flags) { if (scope == NULL_TREE) return; - + if (TREE_CODE (scope) == NAMESPACE_DECL) { if (scope != global_namespace) @@ -298,7 +296,7 @@ dump_qualifiers (t, p) int ix; int quals = TYPE_QUALS (t); int do_after = p == after; - + if (quals) { for (ix = 0; ix != 3; ix++) @@ -431,7 +429,7 @@ dump_template_bindings (parms, args) dump_template_argument (arg, TS_PLAIN); else OB_PUTS ("{missing}"); - + ++arg_idx; need_comma = 1; } @@ -450,7 +448,7 @@ dump_type (t, flags) { if (t == NULL_TREE) return; - + if (TYPE_PTRMEMFUNC_P (t)) goto offset_type; @@ -487,12 +485,12 @@ dump_type (t, flags) break; } /* else fallthrough */ - + case TEMPLATE_DECL: case NAMESPACE_DECL: dump_decl (t, flags & ~TS_DECL_TYPE); break; - + case COMPLEX_TYPE: OB_PUTS ("complex "); dump_type (TREE_TYPE (t), flags); @@ -593,7 +591,7 @@ dump_typename (t, flags) enum tree_string_flags flags; { tree ctx = TYPE_CONTEXT (t); - + if (TREE_CODE (ctx) == TYPENAME_TYPE) dump_typename (ctx, flags); else @@ -638,7 +636,7 @@ dump_aggr_type (t, flags) OB_PUTCP (variety); OB_PUTC (' '); } - + if (flags & TS_CHASE_TYPEDEFS) t = TYPE_MAIN_VARIANT (t); @@ -659,7 +657,7 @@ dump_aggr_type (t, flags) /* Because the template names are mangled, we have to locate the most general template, and use that name. */ tree tpl = CLASSTYPE_TI_TEMPLATE (t); - + while (DECL_TEMPLATE_INFO (tpl)) tpl = DECL_TI_TEMPLATE (tpl); name = tpl; @@ -694,8 +692,8 @@ dump_aggr_type (t, flags) deal with prefix and suffix. Arrays must also do this for DECL nodes, like int a[], and for things like - int *[]&. - + int *[]&. + Return indicates how you should pad an object name after this. I.e. you want to pad non-*, non-& cores, but not pad * or & types. */ @@ -705,20 +703,20 @@ dump_type_prefix (t, flags) enum tree_string_flags flags; { enum pad padding = before; - + if (TYPE_PTRMEMFUNC_P (t)) { t = TYPE_PTRMEMFUNC_FN_TYPE (t); goto offset_type; } - + switch (TREE_CODE (t)) { case POINTER_TYPE: case REFERENCE_TYPE: { tree sub = TREE_TYPE (t); - + padding = dump_type_prefix (sub, flags); /* A tree for a member pointer looks like pointer to offset, so let the OFFSET_TYPE case handle it. */ @@ -792,7 +790,7 @@ dump_type_prefix (t, flags) dump_type (t, flags); padding = before; break; - + default: sorry ("`%s' not supported by dump_type_prefix", tree_code_name[(int) TREE_CODE (t)]); @@ -865,7 +863,7 @@ dump_type_suffix (t, flags) OB_PUTC (']'); dump_type_suffix (TREE_TYPE (t), flags); break; - + case ENUMERAL_TYPE: case IDENTIFIER_NODE: case INTEGER_TYPE: @@ -944,7 +942,7 @@ dump_global_iord (t) OB_PUTS ("destructors"); else my_friendly_abort (352); - + OB_PUTS (" for "); OB_PUTCP (input_filename); OB_PUTC (')'); @@ -999,11 +997,11 @@ dump_decl (t, flags) } if (flags & TS_DECORATE) OB_PUTS ("typedef "); - dump_simple_decl (t, DECL_ORIGINAL_TYPE (t) + dump_simple_decl (t, DECL_ORIGINAL_TYPE (t) ? DECL_ORIGINAL_TYPE (t) : TREE_TYPE (t), flags); break; - + case VAR_DECL: if (DECL_NAME (t) && VTABLE_NAME_P (DECL_NAME (t))) { @@ -1040,7 +1038,7 @@ dump_decl (t, flags) dump_decl (TREE_OPERAND (t, 0), flags & ~TS_DECL_TYPE); OB_PUTS ("::"); dump_decl (TREE_OPERAND (t, 1), flags); - break; + break; case ARRAY_REF: dump_decl (TREE_OPERAND (t, 0), flags); @@ -1172,17 +1170,17 @@ dump_template_decl (t, flags) { tree orig_parms = DECL_TEMPLATE_PARMS (t); tree parms; - int i; - + int i; + if (flags & TS_TEMPLATE_PREFIX) { - for (parms = orig_parms = nreverse (orig_parms); + for (parms = orig_parms = nreverse (orig_parms); parms; parms = TREE_CHAIN (parms)) { tree inner_parms = INNERMOST_TEMPLATE_PARMS (parms); int len = TREE_VEC_LENGTH (inner_parms); - + OB_PUTS ("template <"); for (i = 0; i < len; i++) { @@ -1270,7 +1268,7 @@ dump_function_decl (t, flags) OB_PUTS ("static "); else if (TYPE_POLYMORPHIC_P (t)) OB_PUTS ("virtual "); - + /* Print the return type? */ if (show_return) show_return = !DECL_CONV_FN_P (t) && !DECL_CONSTRUCTOR_P (t) @@ -1291,26 +1289,26 @@ dump_function_decl (t, flags) dump_scope (CP_DECL_CONTEXT (t), flags); dump_function_name (t, flags); - + if (!(flags & TS_DECL_TYPE)) return; if (TREE_CODE (fntype) == METHOD_TYPE && parmtypes) /* Skip "this" parameter. */ parmtypes = TREE_CHAIN (parmtypes); - + /* Skip past the "in_charge" parameter. */ if (DECL_HAS_IN_CHARGE_PARM_P (t)) parmtypes = TREE_CHAIN (parmtypes); - + dump_parameters (parmtypes, flags); - + if (show_return) dump_type_suffix (TREE_TYPE (fntype), flags); if (TREE_CODE (fntype) == METHOD_TYPE) dump_qualifiers (TREE_TYPE (TREE_VALUE (TYPE_ARG_TYPES (fntype))), before); - + if (flags & TS_FUNC_THROW) dump_exception_spec (TYPE_RAISES_EXCEPTIONS (fntype), flags); @@ -1347,7 +1345,7 @@ dump_parameters (parmtypes, flags) break; } dump_type (TREE_VALUE (parmtypes), flags); - + if ((flags & TS_PARM_DEFAULTS) && TREE_PURPOSE (parmtypes)) { OB_PUTS (" = "); @@ -1414,7 +1412,7 @@ dump_function_name (t, flags) if (DECL_LANG_SPECIFIC (t) && DECL_TEMPLATE_INFO (t) && !DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION (t) - && (DECL_TEMPLATE_SPECIALIZATION (t) + && (DECL_TEMPLATE_SPECIALIZATION (t) || TREE_CODE (DECL_TI_TEMPLATE (t)) != TEMPLATE_DECL || DECL_TEMPLATE_SPECIALIZATION (DECL_TI_TEMPLATE (t)) || PRIMARY_TEMPLATE_P (DECL_TI_TEMPLATE (t)))) @@ -1434,7 +1432,7 @@ dump_template_parms (info, primary, flags) enum tree_string_flags flags; { tree args = info ? TI_ARGS (info) : NULL_TREE; - + if (primary && flags & TS_TEMPLATE_PLAIN) return; flags &= ~(TS_AGGR_TAGS | TS_TEMPLATE_PLAIN); @@ -1447,13 +1445,13 @@ dump_template_parms (info, primary, flags) int len = 0; int ix = 0; int need_comma = 0; - + if (TREE_CODE (args) == TREE_VEC) { if (TREE_VEC_LENGTH (args) > 0 - && TREE_CODE (TREE_VEC_ELT (args, 0)) == TREE_VEC) - args = TREE_VEC_ELT (args, TREE_VEC_LENGTH (args) - 1); - + && TREE_CODE (TREE_VEC_ELT (args, 0)) == TREE_VEC) + args = TREE_VEC_ELT (args, TREE_VEC_LENGTH (args) - 1); + len = TREE_VEC_LENGTH (args); } else if (TREE_CODE (args) == TREE_LIST) @@ -1473,7 +1471,7 @@ dump_template_parms (info, primary, flags) } if (need_comma) OB_PUTS (", "); - + if (!arg) OB_PUTS ("{template parameter error}"); else @@ -1486,17 +1484,17 @@ dump_template_parms (info, primary, flags) tree tpl = TI_TEMPLATE (info); tree parms = DECL_TEMPLATE_PARMS (tpl); int len, ix; - + parms = TREE_CODE (parms) == TREE_LIST ? TREE_VALUE (parms) : NULL_TREE; len = parms ? TREE_VEC_LENGTH (parms) : 0; - + for (ix = 0; ix != len; ix++) { tree parm = TREE_VALUE (TREE_VEC_ELT (parms, ix)); if (ix) OB_PUTS (", "); - + dump_decl (parm, flags & ~TS_DECL_TYPE); } } @@ -1595,12 +1593,12 @@ dump_expr (t, flags) if (TREE_CODE (type) == ENUMERAL_TYPE) { tree values = TYPE_VALUES (type); - + for (; values; values = TREE_CHAIN (values)) if (tree_int_cst_equal (TREE_VALUE (values), t)) break; - + if (values) OB_PUTID (TREE_PURPOSE (values)); else @@ -1725,7 +1723,7 @@ dump_expr (t, flags) case AGGR_INIT_EXPR: { tree fn = NULL_TREE; - + if (TREE_CODE (TREE_OPERAND (t, 0)) == ADDR_EXPR) fn = TREE_OPERAND (TREE_OPERAND (t, 0), 0); @@ -1749,7 +1747,7 @@ dump_expr (t, flags) { tree fn = TREE_OPERAND (t, 0); tree args = TREE_OPERAND (t, 1); - + if (TREE_CODE (fn) == ADDR_EXPR) fn = TREE_OPERAND (fn, 0); @@ -1900,7 +1898,7 @@ dump_expr (t, flags) /* An ADDR_EXPR can have reference type. In that case, we shouldn't print the `&' doing so indicates to the user that the expression has pointer type. */ - || (TREE_TYPE (t) + || (TREE_TYPE (t) && TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE)) dump_expr (TREE_OPERAND (t, 0), flags | TS_EXPR_PARENS); else @@ -1954,7 +1952,7 @@ dump_expr (t, flags) while (TREE_CODE (next) == POINTER_TYPE) next = TREE_TYPE (next); - + if (TREE_CODE (next) == FUNCTION_TYPE) { if (flags & TS_EXPR_PARENS) @@ -2006,7 +2004,7 @@ dump_expr (t, flags) t = TREE_TYPE (TYPE_PTRMEMFUNC_FN_TYPE (TREE_TYPE (t))); t = TYPE_METHOD_BASETYPE (t); virtuals = TYPE_BINFO_VIRTUALS (TYPE_MAIN_VARIANT (t)); - + n = tree_low_cst (idx, 0) - first_vfun_index (t); /* Map vtable index back one, to allow for the null pointer to @@ -2109,7 +2107,7 @@ dump_expr (t, flags) case ALIGNOF_EXPR: if (TREE_CODE (t) == SIZEOF_EXPR) OB_PUTS ("sizeof ("); - else + else { my_friendly_assert (TREE_CODE (t) == ALIGNOF_EXPR, 0); OB_PUTS ("__alignof__ ("); @@ -2154,7 +2152,7 @@ dump_expr (t, flags) dump_expr (TREE_OPERAND (t, 1), flags & ~TS_EXPR_PARENS); OB_PUTS ("} "); break; - + case LOOP_EXPR: OB_PUTS ("while (1) { "); dump_expr (TREE_OPERAND (t, 0), flags & ~TS_EXPR_PARENS); @@ -2173,7 +2171,7 @@ dump_expr (t, flags) OB_PUTID (DECL_NAME (TREE_VALUE (t))); break; } - /* else fall through */ + /* else fall through */ /* This list is incomplete, but should suffice for now. It is very important that `sorry' does not call @@ -2272,9 +2270,9 @@ context_as_string (context, flags) enum tree_string_flags flags; { OB_INIT (); - + dump_scope (context, flags); - + OB_FINISH (); return (char *)obstack_base (&scratch_obstack); @@ -2365,7 +2363,7 @@ decl_to_string (decl, verbose) else if (TREE_CODE (decl) == FUNCTION_DECL) flags |= TS_DECL_TYPE | TS_FUNC_NORETURN; flags |= TS_TEMPLATE_PREFIX; - + OB_INIT (); dump_decl (decl, flags); @@ -2395,14 +2393,14 @@ fndecl_to_string (fndecl, verbose) int verbose; { enum tree_string_flags flags; - + flags = TS_FUNC_THROW | TS_DECL_TYPE; if (verbose) flags |= TS_PARM_DEFAULTS; OB_INIT (); dump_decl (fndecl, flags); - + OB_FINISH (); return (char *)obstack_base (&scratch_obstack); @@ -2470,12 +2468,12 @@ type_to_string (typ, verbose) int verbose; { enum tree_string_flags flags; - + flags = 0; if (verbose) flags |= TS_AGGR_TAGS; flags |= TS_TEMPLATE_PREFIX; - + OB_INIT (); dump_type (typ, flags); @@ -2504,7 +2502,7 @@ args_to_string (p, verbose) enum tree_string_flags flags = 0; if (verbose) flags |= TS_AGGR_TAGS; - + if (p == NULL_TREE) return ""; @@ -2590,7 +2588,7 @@ cp_print_error_function (buffer, dc) os = output_buffer_state (buffer); output_set_prefix (buffer, prefix); - + if (current_function_decl == NULL) output_add_string (buffer, "At global scope:"); else @@ -2649,17 +2647,17 @@ print_instantiation_full_context (buffer) { if (current_function_decl == TINST_DECL (p)) /* Avoid redundancy with the the "In function" line. */; - else + else output_verbatim (buffer, "%s: In instantiation of `%s':\n", file, decl_as_string (TINST_DECL (p), TS_DECL_TYPE | TS_FUNC_NORETURN)); - + line = TINST_LINE (p); file = TINST_FILE (p); p = TREE_CHAIN (p); } } - + print_instantiation_partial_context (buffer, p, file, line); } @@ -2739,7 +2737,7 @@ cp_tree_printer (buffer) | TFF_FUNCTION_DEFAULT_ARGUMENTS; print_function_argument_list (buffer, &tfi); break; - + case 'D': tree_being_formatted (&tfi) = va_arg (output_buffer_format_args (buffer), tree); @@ -2750,7 +2748,7 @@ cp_tree_printer (buffer) | TFF_EXCEPTION_SPECIFICATION | TFF_CHASE_NAMESPACE_ALIAS; print_declaration (buffer, &tfi); break; - + case 'E': tree_being_formatted (&tfi) = va_arg (output_buffer_format_args (buffer), tree); @@ -2758,22 +2756,22 @@ cp_tree_printer (buffer) tree_formatting_flags (&tfi) = TFF_SCOPE; print_expression (buffer, &tfi); break; - + case 'F': tree_being_formatted (&tfi) = va_arg (output_buffer_format_args (buffer), tree); if (be_verbose) tree_formatting_flags (&tfi) = TFF_SCOPE | TFF_DECL_SPECIFIERS | TFF_RETURN_TYPE | TFF_FUNCTION_DEFAULT_ARGUMENTS - | TFF_EXCEPTION_SPECIFICATION; + | TFF_EXCEPTION_SPECIFICATION; print_function_declaration (buffer, &tfi); break; - + case 'P': print_function_parameter (buffer, va_arg (output_buffer_format_args (buffer), int)); break; - + case 'T': tree_being_formatted (&tfi) = va_arg (output_buffer_format_args (buffer), tree); @@ -2782,17 +2780,17 @@ cp_tree_printer (buffer) | TFF_RETURN_TYPE | TFF_EXCEPTION_SPECIFICATION; print_type_id (buffer, &tfi); break; - + case 'V': tree_being_formatted (&tfi) = va_arg (output_buffer_format_args (buffer), tree); print_cv_qualifier_seq (buffer, &tfi); break; - + default: return 0; } - + return 1; } @@ -2806,7 +2804,7 @@ print_function_argument_list (buffer, tfi) } /* Print a declaration represented by tree_being_formatted (TFI) - onto buffer. */ + onto buffer. */ static void print_declaration (buffer, tfi) output_buffer *buffer __attribute__ ((__unused__)); @@ -2859,7 +2857,7 @@ print_type_id (buffer, tfi) if (flags & TFF_CHASE_TYPEDEF) tree_being_formatted (tfi) = typedef_original_name (tree_being_formatted (tfi)); - + /* A type-id is of the form: type-id: type-specifier-seq abstract-declarator(opt) */ @@ -2880,7 +2878,7 @@ print_type_id (buffer, tfi) case FUNCTION_TYPE: ptr_mem_fun: print_rest_of_abstract_declarator (buffer, tfi); - + default: break; } @@ -2940,7 +2938,7 @@ print_type_specifier_seq (buffer, tfi) /* Because the abstract-declarator can modify the type-specifier-seq in a highly non linear manner, we pretty-print its prefix here. The suffix part is handled by print_rest_of_abstract_declarator. */ - + /* A RECORD_TYPE is also used to represent a pointer to member function. */ case RECORD_TYPE: @@ -2951,7 +2949,7 @@ print_type_specifier_seq (buffer, tfi) TREE_TYPE (TYPE_PTRMEMFUNC_FN_TYPE (t)); print_type_id (buffer, tfi); print_whitespace (buffer, tfi); - + /* Then the beginning of the abstract-declarator part. */ tree_being_formatted (tfi) = TYPE_METHOD_BASETYPE (TYPE_PTRMEMFUNC_FN_TYPE (t)); @@ -3001,7 +2999,7 @@ print_type_specifier_seq (buffer, tfi) tree_being_formatted (tfi) = TREE_TYPE (t); print_type_id (buffer, tfi); print_whitespace (buffer, tfi); - + /* Then, the containing class. */ tree_being_formatted (tfi) = TYPE_OFFSET_BASETYPE (t); print_nested_name_specifier (buffer, tfi); @@ -3191,9 +3189,9 @@ print_rest_of_abstract_declarator (buffer, tfi) { tree t = tree_being_formatted (tfi); enum tree_code code = TREE_CODE (t); - + /* An abstract-declarator has the form: - + abstract-declarator: ptr-operator abstract-declarator(opt) direct-abstract-declarator @@ -3310,7 +3308,7 @@ print_rest_of_abstract_declarator (buffer, tfi) sorry_for_unsupported_tree (t); /* fall throught. */ case ERROR_MARK: - break; + break; } } @@ -3338,7 +3336,7 @@ print_cv_qualifier_seq (buffer, tfi) print_identifier (buffer, qualifier[i]); put_whitespace (tfi) = before; } - + if (pad_after) { output_add_space (buffer); @@ -3406,7 +3404,7 @@ print_nested_name_specifier (buffer, tfi) } } - tree_being_formatted (tfi) = t; + tree_being_formatted (tfi) = t; } static void -- 2.30.2