X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=30110cca72cdcae66c57af24ab97388c8a21d71d;hb=c9d034f5061a170d4390a576f61d0db4bd85f390;hp=c40b9894e4351b4734c8ee8664081ca0bd3e3cc6;hpb=8d4f5f9e880e260b3f7facb2fca81f15e94a2d33;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c40b9894e43..30110cca72c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,611 @@ +2008-10-14 Jakub Jelinek + + PR c++/37819 + * cp-gimplify.c (cp_genericize_r): Only fold_convert COND_EXPR + arguments if they don't already have COND_EXPR's type. + +2008-10-14 Paolo Carlini + + PR c++/37650 + * pt.c (push_template_decl_real): Check that current_template_parms + is not null. + (process_partial_specialization): Assert current_template_parms not + null. + +2008-10-13 Doug Evans + + * cp-tree.h (DECL_MAIN_P): Fix parentheses around expression. + +2008-10-10 Jakub Jelinek + + PR c++/37146 + * cp-gimplify.c (cp_genericize_r): Fix up bitfield operands of + COND_EXPR. + +2008-10-09 Jakub Jelinek + + PR c++/37568 + * semantics.c (finalize_nrv_r): Clear DECL_INITIAL instead of + setting it to error_mark_node. + +2008-10-07 Steve Ellcey + + * decl.c (start_cleanup_fn): Declare as inline. + +2008-10-06 Jason Merrill + + PR c++/37376, other mangling issues + * mangle.c (write_type): Update TYPE_PACK_EXPANSION mangling. + (write_member_name): Break out from... + (write_expression): ...here. Handle dependent COMPONENT_REF. + (write_template_arg): Wrap an argument pack in 'I'/'E'. + (write_builtin_type): Update char16/32_t mangling. + (write_nested_name, write_prefix): Don't forget template args + for typename types. + * operators.def: Add ARROW_EXPR, update COMPONENT_REF and + EXPR_PACK_EXPANSION. + +2008-10-06 Aldy Hernandez + + * typeck.c (build_x_indirect_ref): Add location argument. + (cp_build_binary_op): Pass location to warn_for_div_by_zero. + (cp_build_unary_op): Add location argument. + (cp_build_modify_expr): Same. + * class.c (build_base_path): Pass location to build_indirect_ref. + * semantics.c (handle_omp_for_class_iterator): Pass elocus to + build_modify_expr. + +2008-10-05 Dodji Seketeli + + PR c++/37410 + * cp-gimplify.c (cp_gimplify_expr): For each USING_STMT + make sure an IMPORTED_DECL node is added to the BLOCK_VARS list + of the innermost containing BLOCK. + +2008-10-03 Paolo Carlini + + PR c++/37719 + * error.c (dump_function_decl): Save the exceptions in case of + error about incompatible specifications in a specialization. + +2008-10-01 Andrew Pinski + + * tree.c (lvalue_p_1): COMPOUND_LITERAL_EXPR is also an lvalue. + +2008-09-30 H.J. Lu + + PR c++/37683 + * parser.c (cp_parser_selection_statement): Fix uninitialized + variable. + +2008-09-30 Simon Martin + + PR c++/37555 + PR c++/37556 + * decl.c (grokdeclarator): Set the type for typedefs to a + nested-name-specifier to error_mark_node. + +2008-09-30 Paolo Bonzini + + * parser.c (cp_parser_selection_statement): Implement here the + -Wempty-body warning for `if' and `else' statements. + * semantics.c (finish_if_stmt): Do not call empty_body_warning. + +2008-09-25 Paolo Carlini + + PR c++/37649 + * name-lookup.c (maybe_process_template_type_declaration): Check + return value of push_template_decl_real for error_mark_node. + +2008-09-24 Aldy Hernandez + + * semantics.c (finish_fname): Pass location to fname_decl. + +2008-09-23 Jakub Jelinek + + PR c++/37533 + * semantics.c (finish_omp_for): If processing_template_decl, just build + MODIFY_EXPR for init instead of calling cp_build_modify_expr. + +2008-09-23 Aldy Hernandez + + * typeck.c (build_array_ref): Pass location to cp_build_binary_op. + (get_member_function_from_ptrfunc): Same. + (build_x_binary_op): Same. + (build_binary_op): Same. + (cp_build_binary_op): New location argument. + (pointer_diff): Pass location to cp_build_binary_op. + (cp_truthvalue_conversion): Pass location to build_binary_op. + (convert_ptrmem): Pass location to cp_build_binary_op. + (cp_build_modify_expr): Same. + (build_ptrmemfunc): Same. + * init.c (expand_cleanup_for_base): Pass location to + c_common_truthvalue_conversion. + (build_new_1): Pass location to cp_build_binary_op. + (build_vec_delete_1): Pass location to *build_binary_op, + c_common_truthvalue_conversion. + (build_vec_init): Same. + (build_delete): Same. + * decl.c (compute_array_index_type): Same. + * call.c (build_new_op): Same. + * rtti.c (build_dynamic_cast_1): Same. + * cp-tree.h: Add argument to cp_build_binary_op. + * semantics.c (handle_omp_for_class_iterator): Pass location to + *build_binary_op, c_common_truthvalue_conversion. + * decl2.c (get_guard_cond): Same. + +2008-09-17 Richard Guenther + + PR c++/22374 + * rtti.c (build_dynamic_cast_1): Convert the COND_EXPR + result to the correct type. + +2008-09-17 H.J. Lu + + PR c++/37450 + * name-lookup.c (pushdecl_maybe_friend): Don't return the old + parameter for duplicate. + +2008-09-17 Jason Merrill + + PR c++/37588 + * name-lookup.c (lookup_type_scope): Look through sk_function_parms. + +2008-09-17 Jakub Jelinek + + PR c++/37552 + * typeck.c (build_array_ref): Use protected_set_expr_location instead + of SET_EXPR_LOCATION when ret might not be an expression. + +2008-09-17 Jan Hubicka + + PR c++/18071 + * cp/decl.c (start_method): Set DECL_NO_INLINE_WARNING_P. + +2008-09-16 Jakub Jelinek + + PR c++/37531 + * semantics.c (finish_compound_literal): Return error_mark_node if + type is errorneous. + + PR c++/37532 + * lex.c (init_reswords): Don't populate ridpointers for D_CONLY + reserved words. + +2008-09-15 Aldy Hernandez + + * decl.c (duplicate_decls): Call error_at. + (grokfndecl): New location argument. Use location if available. + (grokdeclarator): Pass declarator location to grokfndecl. + * cp-tree.h (struct cp_declarator): Update comment for id_loc. + * decl2.c (check_classfn): Use error_at. + * parser.c (cp_parser_init_declarator): Set function_start_locus + to brace location. + (cp_parser_member_declaration): Set id_loc for function declarators. + +2008-09-09 Jan Hubicka + + PR middle-end/37500 + * pt.c (tsubst_decl): Do not copy DECL_STRUCT_FUNCTION pointer. + +2008-09-09 Jakub Jelinek + + PR c++/37417 + * tree.c (array_type_nelts_top): Add size_one_node instead of + integer_one_node. + +2008-09-09 Jason Merrill + + PR c++/37439 + * pt.c (tsubst_copy) [PARM_DECL]: Don't abort if the parm has + DECL_CONTEXT set. + +2008-09-09 Jakub Jelinek + + PR c++/37389 + * decl.c (build_enumerator): Handle previous value's DECL_INITIAL + being error_operand_p. Don't clear value if it was error_mark_node. + +2008-09-09 Paolo Bonzini + + * cp-objcp-common.h (LANG_HOOKS_EXPAND_DECL): Remove. + * cp-tree.h: Don't mention DECL_ANON_UNION_ELEMS. + * semantics.c (anon_aggr_type_p): Remove. + +2008-09-06 Jason Merrill + + PR c++/37302 + * parser.c (cp_parser_parameter_declaration_list): Process the + PARM_DECLs as we go and push them. Return a TREE_LIST. + (cp_parser_parameter_declaration_clause): Return a TREE_LIST. + (cp_parser_direct_declarator): Create a binding level and + suppress deprecated warnings in the parameter list. + (make_call_declarator): PARMS is now a tree. + * cp-tree.h (struct cp_declarator): Function parms are now a tree. + * decl.h (enum deprecated_states, deprecated_state): Move here. + * decl.c: From here. + (type_is_deprecated): New fn. + (grokparms): PARMLIST is a tree now. Warn about parms that + use deprecated types. + * mangle.c (write_expression): Handle PARM_DECL, CALL_EXPR and + 0-operand cast. + * pt.c (tsubst) [DECLTYPE_TYPE]: Set skip_evaluation. + (tsubst_copy) [PARM_DECL]: Handle a PARM_DECL used outside of a + function. + * name-lookup.c (pushtag): Look through function parameter scopes. + (pushdecl_maybe_friend): Don't set DECL_CONTEXT on a PARM_DECL + when we're parsing a function declarator. + +2008-09-05 Douglas Gregor + + PR c++/37342 + * tree.c (cp_build_qualified_type_real): Deal with sharing of + TYPE_LANG_SPECIFIC in the canonical types of pointer-to-method + types. + +2008-09-04 Ian Lance Taylor + + * parser.c (check_no_duplicate_clause): Change code parameter to + enum omp_clause_code. + +2008-09-03 Jakub Jelinek + + PR c++/37348 + * decl.c (cp_finish_decl): Only set + DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P if decl is VAR_DECL. + + PR c++/37189 + * cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): New + extern decls. + * decl2.c (mark_used): If defer_mark_used_calls, push decl into + deferred_mark_used_calls vector and exit early. + * decl.c (defer_mark_used_calls, deferred_mark_used_calls): New + variables. + (finish_function): Set defer_mark_used_calls for the duration of the + function. Call mark_used on any queued decls. + +2008-09-02 Jason Merrill + + PR c++/37208 + * call.c (build_over_call): Make =delete work with SFINAE. + * class.c (resolve_address_of_overloaded_function): Likewise. + + * cp-tree.h (struct lang_decl_flags): Rename threadprivate_p to + threadprivate_or_deleted_p. + (CP_DECL_THREADPRIVATE_P): Adjust. + (DECL_DELETED_FN): Likewise. + (SD_UNINITIALIZED, SD_INITIALIZED, SD_DEFAULTED): New macros. + (SD_DELETED): New macro. + * parser.c (cp_parser_init_declarator): Use them. + * decl.c (start_decl): Use them. + + * decl2.c (mark_used): Give =deleted error even in sizeof. + + * typeck2.c (check_narrowing): Downgrade narrowing error to + permerror. + +2008-09-02 Aldy Hernandez + + * typeck.c (build_array_ref): Use new location argument. + * class.c (build_vtbl_ref_1): Pass location to build_array_ref. + * call.c (build_new_op): Same. + * decl2.c (grok_array_decl): Same. + * cp-tree.h (build_array_ref): Add location argument to prototype. + +2008-09-01 Aldy Hernandez + + * typeck.c (build_x_indirect_ref): Add location argument. + * class.c (build_base_path): Pass location to build_indirect_ref. + * pt.c (tsubst_copy_and_build): Pass location to + finish_label_address_expr. + * parser.c (cp_parser_unary_expression): Same. + +2008-08-31 Jason Merrill + + Implement late-specified return type using 'auto'. + * cp-tree.h (struct cp_declarator): Add late_return_type field to + function declarator. + * parser.c (cp_parser_late_return_type_opt): New fn. + (cp_parser_direct_declarator): Use it. + (make_call_declarator): Put it in the declarator. + * decl.c (grokdeclarator): Splice in late-specified return type. + * pt.c (splice_late_return_type): New fn. + +2008-08-29 Michael Meissner + + * decl.c (builtin_function_1): Take a bool argument to decide + whether to use pushdecl or pushdecl_top_level. + (duplicate_decls): Copy function specific target and optimization + options on duplicate declarations. + (cxx_builtin_function): Update builtin_function_1 call. + (cxx_builtin_function_ext_scope): New function, guarantee that the + declaration is done at global scope. + + * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New + macro, define builtin function hook for delayed machine specific + builtins. + + * cp-tree.h (cxx_builtin_function_ext_scope): Add declaration. + +2008-08-30 Jason Merrill + + PR c++/37288 + * pt.c (dependent_type_p): Don't abort on auto outside of a template. + +2008-08-29 Jason Merrill + + Implement C++0x 'auto' semantics. + * decl.c (start_decl_1): Don't complain about auto being incomplete. + (cp_finish_decl): Deduce auto. + * init.c (build_new): Handle 'new auto'. + * typeck2.c (cxx_incomplete_type_diagnostic): Give a different + message for auto than for normal template type parms. + * pt.c (type_dependent_expression_p): Handle { }. + (make_auto): New function. + (listify_autos): New function. + (do_auto_deduction): New function. + (is_auto): New function. + (type_uses_auto): New function. + * cp-tree.h: Declare them. + * parser.c (cp_parser_decl_specifier_seq): In C++0x mode, don't + treat auto as a declspec. + (cp_parser_simple_type_specifier): It's a type-specifier. + +2008-08-29 Mark Mitchell + + * mangle.c (write_type): Add target-specific manglings for + non-fundamental types to the substitution table. + gcc/testsuite/ + +2008-08-29 Jakub Jelinek + + PR fortran/29635 + PR fortran/23057 + * name-lookup.c (do_using_directive, cp_emit_debug_info_for_using): + Adjust debug_hooks->imported_module_or_decl callers. + +2008-08-29 Jan Hubicka + + * cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic. + +2008-08-28 Paolo Carlini + + PR c++/37260 + * decl.c (reshape_init_r): Check init for error_mark_node. + +2008-08-27 Manuel Lopez-Ibanez + + PR c++/17880 + * semantics.c (maybe_convert_cond): Call verify_sequence_points. + (finish_return_stmt): Likewise. + (finish_switch_condition): Likewise. + +2008-08-27 Manuel Lopez-Ibanez + + * cp-tree.h: Fix #error directive. + +2008-08-26 Douglas Gregor + + * typeck.c (type_after_usual_arithmetic_conversions): Don't do the + usual arithmetic conversions on scoped enumeration types. + (common_type): Ditto. + (default_conversion): Don't perform integral promotions on scoped + enumeration types. + (build_array_ref): Scoped enumeration types can't be used as + subscripts. + * decl.c (start_enum): If building a C++0x scoped enumeration, + enter its scope. If provided with an underlying type, check that + underlying type and set up the enumeration type accordingly. + (finish_enum): Only compute an underlying type if the underlying + type isn't already fixed, and only convert the enumerator values + now if we've just computed the underlying type. Finish the scope + of C++0x scoped enumerations. + (build_enumerator): For enumerations with a fixed underlying type, + check the enumerator values when the enumerator is defined. + (lookup_enumerator): New. + * call.c (standard_conversion): Don't allow assignment from + integers to scoped enumeration types, even with -fpermissive. + Don't convert from scoped enumerations to bool or any arithmetic + types. + (build_conditional_expr): Don't per the usual arithmetic + conversions for scoped enumeration types. + (convert_like_real): Check complain to see if we should + produce warnings. + * error.c (class_key_or_enum_as_string): Print scoped enums. + * cp-tree.h (MAYBE_CLASS_TYPE_P): Check CLASS_TYPE_P, not + TYPE_LANG_FLAG_5. + (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P): New. + (SCOPED_ENUM_P): New. + (UNSCOPED_ENUM_P): New. + (SET_SCOPED_ENUM_P): New. + (ENUM_UNDERLYING_TYPE): New. + * pt.c (lookup_template_class): Update the instantiation of enum + types to deal with C++0x scoped enumerations and underlying + types. + * name-lookup.c (begin_scope): Deal with scoped enumeration + scopes. + (lookup_qualified_name): Deal with lookup into enumeration types. + * name-lookup.h (enum scope_kind): Add sk_scoped_enum. + * parser.c (cp_parser_class_or_namespace_name): Rename to... + (cp_parser_qualifying_entity): ... this. Also, in C++0x mode, + parse a type-name that can be an enumeration type. + (cp_parser_nested_name_specifier_opt): Update with C++0x grammar. + (cp_parser_elaborated_type_specifier): Parse the + optional `struct' or `class' following enum (in C++0x). + (cp_parser_enum_specifier): Parse C++0x scoped enumerations and + enum-base clauses. + +2008-08-21 Manuel Lopez-Ibanez + + * typeck.c: Update all calls to pedwarn. + * decl.c: Likewise. + * call.c: Likewise. + * error.c: Likewise. + * pt.c: Likewise. + * name-lookup.c: Likewise. + * parser.c: Likewise. + +2008-08-20 Manuel Lopez-Ibanez + + PR c++/35158 + * parser.c (cp_parser_omp_for_loop): Handle parenthesized + initializers. + +2008-08-20 Manuel Lopez-Ibanez + + * parser.c: Update all calls to inform. + * typeck.c: Likewise. + * init.c: Likewise. + * class.c: Likewise. + * call.c: Likewise. + * method.c: Likewise. + * friend.c: Likewise. + * typeck2.c: Likewise. + * pt.c: Likewise. + * name-lookup.c: Likewise. + * lex.c: Likewise. + +2008-08-19 Jakub Jelinek + + PR debug/37156 + * error.c (cp_print_error_function): Deal with recursive BLOCK trees. + +2008-08-18 Tomas Bily + + * tree.c (cp_tree_equal): Use CONVERT_EXPR_CODE_P. + +2008-08-18 Manuel Lopez-Ibanez + + * typeck.c: Update all callers of permerror. + * init.c: Likewise. + * class.c: Likewise. + * decl.c: Likewise. + * call.c: Likewise. + * except.c: Likewise. + * cvt.c: Likewise. + * typeck2.c: Likewise. + * pt.c: Likewise. + * semantics.c: Likewise. + * name-lookup.c: Likewise. + * lex.c: Likewise. + * decl2.c: Likewise. + * parser.c: Likewise. + +2008-08-14 Paolo Carlini + + PR c++/34485 + * pt.c (check_template_shadow): Change to return a bool. + * name-lookup.c (push_class_level_binding): Early return if + check_template_shadow returns false. + * cp-tree.h (check_template_shadow): Adjust declaration. + +2008-08-14 Paolo Carlini + + PR c++/34600 + * decl.c (grokdeclarator): In case of extern and initializer, return + error_mark_node after the error. + +2008-08-13 Manuel Lopez-Ibanez + + PR 30551 + * decl.c (grokfndecl): Call check_main_parameters_type only if + -Wmain. + +2008-08-12 Paolo Carlini + + PR c++/37087 + * parser.c (cp_parser_class_head): Early return error_mark_node in + case of global qualification of class name or qualified name that + does not name a class. + +2008-08-09 Manuel Lopez-Ibanez + + PR c++/12242 + * cvt.c (ocp_convert): Warn for out-of-range conversions to enum. + +2008-08-09 Manuel Lopez-Ibanez + + PR 36901 + * cp-tree.h (struct diagnostic_context, struct diagnostic_info): + Delete forward declarations. Check that toplev.h has not been + included before this file. Include toplev.h and diagnostic.h. + * error.c (cp_cpp_error): Use DK_PEDWARN. + (cxx_incomplete_type_diagnostic): Update declaration. + (cxx_incomplete_type_error): Use DK_ERROR. + * typeck2.c (cxx_incomplete_type_diagnostic): Take a diagnostic_t + as argument. Use emit_diagnostic. + (cxx_incomplete_type_error): Use DK_ERROR. + (add_exception_specifier): Use diagnostic_t instead of custom + codes. + * typeck.c (complete_type_or_else): Update call to + cxx_incomplete_type_diagnostic. + * init.c (build_delete): Likewise. + * call.c (diagnostic_fn_t): Remove unused typedef. + (build_temp): Pass a pointer to diagnostic_t. + (convert_like_real): Use emit_diagnostic. + (joust): Check return value of warning before giving informative + note. + * friend.c (do_friend): Check return value of warning + before giving informative note. + * parser.c (cp_parser_template_id): Likewise. + +2008-08-09 Manuel Lopez-Ibanez + + PR 7651 + * class.c (check_bases_and_members): Warn with -Wuninitialized + instead of -Wextra. + +2008-08-08 Volker Reichelt + + PR c++/35985 + * decl.c (xref_basetypes): Check base for MAYBE_CLASS_TYPE_P, + and make sure it is not a union. + +2008-08-07 H.J. Lu + + * semantics.c (finish_decltype_type): Initialize type. + +2008-08-07 Douglas Gregor + + * semantics.c (finish_decltype_type): Handle calls to function + pointers and references to functions properly. + +2008-08-06 Douglas Gregor + + PR c++/36460 + * parser.c (cp_parser_template_argument): Don't assume that '>>' + following a type-id is an error when in C++0x mode. + +2008-08-06 Manuel Lopez-Ibanez + + PR 26785 + * decl.c (grokdeclarator): Use explicit location with permerror_at. + +2008-08-06 Manuel Lopez-Ibanez + + PR 8715 + * typeck.c (cp_build_binary_op): Move code to c-common.c. + +2008-08-05 Jason Merrill + + PR c++/37016 + * decl.c (build_ptrmemfunc_type): Don't require structural + comparison of PMF types. + * tree.c (cp_build_qualified_type_real): Don't clear + a valid TYPE_PTRMEMFUNC_TYPE. + * typeck.c (cp_build_unary_op): Still do build_ptrmemfunc in + templates. + +2008-08-04 Jason Merrill + + PR c++/36963 + * typeck2.c (check_narrowing): Allow narrowing conversion + from an explicit floating-point constant. + + PR c++/37006 + * pt.c (tsubst_decl): Leave DECL_INITIAL set on deleted + instantiations. + 2008-08-04 Simon Baldwin PR c++/36999 @@ -20,11 +628,11 @@ * tree.c (build_aggr_init_expr): Split out... (build_cplus_new): ...from here. (stabilize_init): Don't mess with AGGR_INIT_EXPR either. - * init.c (build_new_1): new T() means value-initialization, + * init.c (build_new_1): new T() means value-initialization, not default-initialization. (build_vec_init): Likewise. (build_value_init_1): Use build_aggr_init_expr. - + 2008-07-30 Dodji Seketeli PR c++/36767 @@ -38,7 +646,7 @@ PR 34389 * typeck.c (build_binary_op): Encapsulate code into shorten_binary_op. - + 2008-07-29 Jakub Jelinek PR c++/36852 @@ -61,7 +669,7 @@ PR 34985 * decl.c (duplicate_decls): Merge USED flags. - + 2008-07-27 Jason Merrill PR c++/36943 @@ -116,10 +724,10 @@ 2008-04-29 Doug Kwan - * decl2 (File): Include "gimple.h" - (cp_write_global_declarations): Use gimple_body instead of - DECL_SAVED_TREE. - * Make-lang.in (cp/decl2.o): Add $(GIMPLE_H) + * decl2 (File): Include "gimple.h" + (cp_write_global_declarations): Use gimple_body instead of + DECL_SAVED_TREE. + * Make-lang.in (cp/decl2.o): Add $(GIMPLE_H) 2008-04-10 Diego Novillo @@ -324,7 +932,7 @@ * semantics.c (classtype_has_nothrow_assign_or_copy_p): Only check copy constructors and copy assignment operators proper. -2008-07-21 Rafael Avila de Espindola +2008-07-21 Rafael Ávila de Espíndola * parser.c (cp_token): Remove in_system_header. (eof_token): Remove in_system_header. @@ -508,7 +1116,7 @@ (LOOKUP_NO_COPY_CTOR_CONVERSION): New macro. * parser.c (cp_parse_braced_list): Split out from... (cp_parser_initializer_clause): ...here. - (cp_parser_postfix_expression): Build up CONSTRUCTOR for compound + (cp_parser_postfix_expression): Build up CONSTRUCTOR for compound literal here. (cp_lexer_next_token_is_not_keyword): New fn. (cp_parser_parenthesized_expression_list): Handle { }. @@ -528,7 +1136,7 @@ (add_function_candidate): Handle LOOKUP_NO_COPY_CTOR_CONVERSION. (build_user_type_conversion_1): When converting from an init list, we allow additional conversions except when calling a copy ctor. - (convert_like_real): Calling an explicit ctor for an init list is + (convert_like_real): Calling an explicit ctor for an init list is ill-formed. Handle ck_list and ck_addr. Check narrowing. (build_new_method_call): If CONSTRUCTOR_IS_DIRECT_INIT is set and class doesn't have a list ctor, break the {} into a TREE_LIST. @@ -546,7 +1154,7 @@ (grokdeclarator): Converting constructors can have more than one parm. (grok_special_member_properties): Set TYPE_HAS_LIST_CTOR. * init.c (expand_default_init): Only do digest_init for aggregates. - * rtti.c (tinfo_base_init): Pass init_list_type_node to + * rtti.c (tinfo_base_init): Pass init_list_type_node to build_constructor_from_list. (generic_initializer, ptr_initializer): Ditto. (ptm_initializer, class_initializer): Ditto. @@ -559,7 +1167,7 @@ * typeck2.c (store_init_value): Use init_list_type_node. (digest_init): Likewise. (check_narrowing): New fn. - * semantics.c: (finish_compound_literal): Take CONSTRUCTOR instead + * semantics.c: (finish_compound_literal): Take CONSTRUCTOR instead of vector of constructor elts. Handle non-aggregate types. Make constant literals static. * pt.c: (tsubst_copy_and_build): Adjust. @@ -679,16 +1287,16 @@ 2008-06-08 Paolo Carlini - PR c++/35242 - * pt.c (maybe_process_partial_specialization): Check the tree + PR c++/35242 + * pt.c (maybe_process_partial_specialization): Check the tree returned by push_template_decl for error_mark_node. * parser.c (cp_parser_class_head): Likewise, check the tree - returned by the latter. + returned by the latter. 2008-06-07 Paolo Carlini - PR c++/35327 - * decl.c (grokdeclarator): In case of wrong return type return + PR c++/35327 + * decl.c (grokdeclarator): In case of wrong return type return immediately error_mark_node. 2008-06-06 Jakub Jelinek @@ -760,22 +1368,22 @@ 2008-06-02 Paolo Carlini - PR c++/36404 - * pt.c (push_template_decl_real): Consistently return error_mark_node + PR c++/36404 + * pt.c (push_template_decl_real): Consistently return error_mark_node on error. 2008-06-02 Tomas Bily - * typeck.c (is_bitfield_expr_with_lowered_type): Use CASE_CONVERT. - (cp_build_unary_op): Likewise. - (cp_build_indirect_ref): Use CONVERT_EXPR_P. - (maybe_warn_about_returning_address_of_local): Likewise. + * typeck.c (is_bitfield_expr_with_lowered_type): Use CASE_CONVERT. + (cp_build_unary_op): Likewise. + (cp_build_indirect_ref): Use CONVERT_EXPR_P. + (maybe_warn_about_returning_address_of_local): Likewise. 2008-05-29 Paolo Carlini - PR c++/35243 - * pt.c (tsubst_initializer_list): Consistently check the tree - returned by tsubst_pack_expansion for error_mark_node. + PR c++/35243 + * pt.c (tsubst_initializer_list): Consistently check the tree + returned by tsubst_pack_expansion for error_mark_node. 2008-05-27 Michael Matz @@ -831,16 +1439,16 @@ 2008-05-12 Paolo Carlini - PR c++/35331 - * semantics.c (begin_class_definition): Extend checks on the first + PR c++/35331 + * semantics.c (begin_class_definition): Extend checks on the first argument. 2008-05-12 Tomas Bily - * typeck2.c (digest_init): Use CONVERT_EXPR_P. - * call.c (build_over_call): Likewise. - * error.c (dump_expr): Use CASE_CONVERT. - * class.c (fixed_type_or_null): Likewise. + * typeck2.c (digest_init): Use CONVERT_EXPR_P. + * call.c (build_over_call): Likewise. + * error.c (dump_expr): Use CASE_CONVERT. + * class.c (fixed_type_or_null): Likewise. 2008-05-11 Volker Reichelt @@ -947,7 +1555,7 @@ * tree.c (cp_tree_equal): Handle FIXED_CST. PR c++/35678 - * pt.c (template_template_parm_bindings_ok_p): Set + * pt.c (template_template_parm_bindings_ok_p): Set processing_template_decl while in this function. 2008-04-18 Kris Van Hees @@ -965,14 +1573,14 @@ (cp_parser_string_literal): Idem. (cp_parser_primary_expression): Support CPP_CHAR{16,32} and CPP_STRING{16,32}. - (cp_parser_simple_type_specifier): Support RID_CHAR{16,32}. + (cp_parser_simple_type_specifier): Support RID_CHAR{16,32}. * tree.c (char_type_p): Support char16_t and char32_t as char types. * typeck.c (string_conv_p): Support char16_t and char32_t. 2008-04-17 Jason Merrill PR c++/35773 - * call.c (build_user_type_conversion_1): Represent second step of + * call.c (build_user_type_conversion_1): Represent second step of copy-init with an rvalue conversion. (convert_like_real) [ck_user]: Don't implicitly add it here. @@ -984,14 +1592,14 @@ 2008-04-16 Danny Smith - PR target/35921 - * optimize.c (maybe_clone_body): Copy DECL_DLLIMPORT_P flag - to clone. + PR target/35921 + * optimize.c (maybe_clone_body): Copy DECL_DLLIMPORT_P flag + to clone. 2008-04-09 Jason Merrill PR c++/35708 - * semantics.c (finish_compound_literal): Return a TARGET_EXPR, + * semantics.c (finish_compound_literal): Return a TARGET_EXPR, not a pushed variable. 2008-04-09 Volker Reichelt @@ -1108,7 +1716,7 @@ 2008-04-07 Jason Merrill PR c++/35734 - * class.c (type_has_user_nondefault_constructor): A template + * class.c (type_has_user_nondefault_constructor): A template counts as a nondefault constructor. 2008-04-04 Paolo Bonzini @@ -1136,14 +1744,14 @@ * Make-lang.in (c++_OBJS): New variable. 2008-04-03 Paolo Bonzini - + * optimize.c (clone_body): New, from tree-inline.c. 2008-04-03 Paolo Bonzini - * method.c (synthesize_method): Use {push,pop}_function_context. - * name-lookup.c (push_to_top_level): Likewise. - * parser.c (cp_parser_late_parsing_for_member): Likewise. + * method.c (synthesize_method): Use {push,pop}_function_context. + * name-lookup.c (push_to_top_level): Likewise. + * parser.c (cp_parser_late_parsing_for_member): Likewise. 2008-03-30 Volker Reichelt @@ -1197,17 +1805,17 @@ 2008-03-26 Douglas Gregor - * pt.c (coerce_template_template_parm): Moved the body of the loop - of coerce_template_template_parms here, to make iteration over a - template argument pack simpler. - Also, allow matching of a template parameter pack in the template - template parameter to a template parameter in the template - template argument. - (coerce_template_template_parms): Deal with variadic template - template parameters. Use coerce_template_template_parm. - (unify): Make sure we coerce the template template argument's - template arguments to the template template parameter's template - parameters, not the other way around. + * pt.c (coerce_template_template_parm): Moved the body of the loop + of coerce_template_template_parms here, to make iteration over a + template argument pack simpler. + Also, allow matching of a template parameter pack in the template + template parameter to a template parameter in the template + template argument. + (coerce_template_template_parms): Deal with variadic template + template parameters. Use coerce_template_template_parm. + (unify): Make sure we coerce the template template argument's + template arguments to the template template parameter's template + parameters, not the other way around. 2008-03-25 Tom Tromey @@ -1219,208 +1827,208 @@ 2008-03-25 Douglas Gregor - * typeck.c (composite_pointer_type_r): Add SFINAE support. - (composite_pointer_type): Ditto. - (common_type): Fix call to composite_pointer_type. - (cxx_sizeof_nowarn): New; used to be a macro. - (cxx_sizeof_expr): Add SFINAE support. - (cxx_alignof_expr): Ditto. - (decay_conversion): Fix calls for SFINAE support. - (rationalize_conditional_expr): Add SFINAE support. - (build_class_member_access_expr): Ditto. - (finish_class_member_access_expr): Ditto. - (build_x_indirect_ref): Ditto. - (build_indirect_ref): Original version renamed to - cp_build_indirect_ref; new version provides a bridge from - c-common. - (cp_build_indirect_ref): Was build_indirect_ref; added SFINAE - support. - (get_member_function_from_ptrfunc): Fix calls for SFINAE support. - (build_function_call): Original version renamed to - cp_build_function_call; new version provides a bridge from - c-common. - (cp_build_function_call): Was build_function_call; added SFINAE - support. - (convert_arguments): Add SFINAE support. - (build_x_binary_op): Ditto. - (build_binary_op): Original version renamed to cp_build_binary_op; - new version provides a bridge from c-common. - (cp_build_binary_op): Was build_binary_op; added SFINAE support. - (pointer_diff): Fix calls for SFINAE. - (build_x_unary_op): Add SFINAE support. - (condition_conversion): Fix calls for SFINAE. - (build_unary_op): Original version renamed to cp_build_unary_op; - new version provides a bridge from c-common. - (cp_build_unary_op): Was build_unary_op; added SFINAE support. - (unary_complex_lvalue): Fix calls for SFINAE. - (build_x_conditional_expr): Add SFINAE support. - (build_x_compound_expr_from_list): Fix calls for SFINAE. - (build_x_compound_expr): Add SFINAE support. - (convert_ptrmem): Fix calls for SFINAE. - (build_static_cast_1): Add SFINAE support. - (build_static_cast): Ditto. - (build_reinterpret_cast_1): Ditto. - (build_reinterpret_cast): Ditto. - (build_const_cast_1): Ditto. - (build_const_cast): Ditto. - (build_c_cast): Ditto. - (build_modify_expr): Original version renamed to - cp_build_modify_expr; new version provides a bridge from c-common. - (cp_build_modify_expr): Was build_modify_expr; added SFINAE - support. - (build_x_modify_expr): Add SFINAE support. - (build_ptrmemfunc): Fix calls for SFINAE. - (convert_for_assignment): Add SFINAE support. - (convert_for_initialization): Ditto. - (check_return_expr): Fix calls for SFINAE. - (lvalue_or_else): Add SFINAE support. - * init.c (perform_member_init): Fix calls for SFINAE. - (emit_mem_initializers): Ditto. - (expand_virtual_init): Ditto. - (expand_cleanup_for_base): Ditto. - (build_aggr_init): Add SFINAE support. - (expand_default_init): Ditto. - (expand_aggr_init_1): Fix calls for SFINAE. - (build_offset_ref): Ditto. - (build_new_1): Add SFINAE support. - (build_new): Ditto. - (build_vec_delete_1): Fix calls for SFINAE. - (get_temp_regvar): Ditto. - (build_vec_init): Add SFINAE support. - (build_dtor_call): Fix calls for SFINAE. - (build_delete): Ditto. - (push_base_cleanups): Ditto. - (build_vec_delete_1): Ditto. - * class.c (build_base_path): Fix calls for SFINAE. - (build_simple_base_path): Ditto. - (convert_to_base_statically): Ditto. - (build_vfn_ref): Ditto. - (resolve_address_of_overloaded_function): Ditto. - * decl.c (check_initializer): Fix calls for SFINAE. - (register_dtor_fn): Ditto. - (compute_array_index_type): Ditto. - (finish_enum): Ditto. - (start_preparsed_function): Ditto. - (cxx_maybe_build_cleanup): Ditto. - * call.c (convert_like): Add COMPLAIN argument. - (convert_like_with_context): Ditto. - (build_this): Fix calls for SFINAE. - (build_user_type_conversion): Ditto. - (resolve_args): Ditto. - (build_new_function_call): Add SFINAE support. - (build_operator_new_call): Fix calls for SFINAE. - (build_object_call): Add SFINAE support. - (build_conditional_expr): Ditto. - (build_new_op): Ditto. - (build_op_delete_call): Fix calls for SFINAE. - (build_temp): Ditto. - (convert_like_real): Add SFINAE support. - (build_x_va_arg): Fix calls for SFINAE. - (convert_default_arg): Ditto. - (build_over_call): Add SFINAE support. - (build_java_interface_fn_ref): Fix calls for SFINAE. - (build_special_member_call): Add SFINAE support. - (build_new_method_call): Ditto. - (perform_implicit_conversion): Ditto. - (perform_direct_initialization_if_possible): Ditto. - (initialize_reference): Fix calls for SFINAE. - * method.c (do_build_assign_ref): Fix calls for SFINAE. - * rtti.c (build_headof): Fix calls for SFINAE. - (get_tinfo_decl_dynamic): Ditto. - (get_typeid): Ditto. - (build_dynamic_cast_1): Add SFINAE support. - (build_dynamic_cast): Ditto. - (tinfo_base_init): Fix calls for SFINAE. - * except.c (do_get_exception_ptr): Fix calls for SFINAE. - (do_end_catch): Ditto. - (initialize_handler_parm): Ditto. - (expand_start_catch_block): Ditto. - (do_allocate_exception): Ditto. - (do_free_exception): Ditto. - (build_throw): Ditto. - * cvt.c (build_up_reference): Fix calls for SFINAE. - (convert_to_reference): Ditto. - (ocp_convert): Ditto. - (convert_to_void): Add SFINAE support. - * tree.c (build_dummy_object): Fix calls for SFINAE. - (stabilize_expr): Ditto. - * cp-tree.h (build_conditional_expr): Add tsubst_flags_t - parameter. - (build_new_method_call): Ditto. - (build_special_member_call): Ditto. - (build_new_op): Ditto. - (perform_implicit_conversion): Ditto. - (perform_direct_initialization_if_possible): Ditto. - (convert_to_void): Ditto. - (build_aggr_init): Ditto. - (build_new): Ditto. - (build_vec_init): Ditto. - (build_dynamic_cast): Ditto. - (finish_call_expr): Ditto - (cxx_sizeof_or_alignof_expr): Add COMPLAIN parameter. - (cxx_sizeof_nowarn): Remove macro; add function declaration. - (build_class_member_access_expr): Add tsubst_flags_t parameter. - (finish_class_member_access_expr): Ditto. - (build_x_indirect_ref): Ditto. - (cp_build_indirect_ref): New. - (cp_build_function_call): Add tsubst_flags_t parameter. - (build_x_unary_op): Ditto. - (cp_build_unary_op): New. - (build_x_conditional_expr): Add tsubst_flags_t parameter. - (build_x_compound_expr): Ditto. - (build_compound_expr): Ditto. - (build_static_cast): Ditto. - (build_reinterpret_cast): Ditto. - (build_const_cast): Ditto. - (build_c_cast): Ditto. - (build_x_modify_expr): Ditto. - (cp_build_modify_expr): New. - (convert_for_initialization): Add tsubst_flags_t parameter. - (cp_build_binary_op): Remove macro; add function declaration. - (invalid_nonstatic_memfn_p): Add tsubst_flags_t parameter. - (lvalue_or_else): Ditto. - (build_functional_cast): Ditto. - * typeck2.c (digest_init): Fix calls for SFINAE. - (process_init_constructor_array): Ditto. - (process_init_constructor_record): Ditto. - (build_x_arrow): Ditto. - (build_m_component_ref): Ditto. - (build_functional_cast): Add SFINAE support. - * pt.c (tsubst_copy_and_build): Add (more) SFINAE support. - * semantics.c (simplify_loop_decl_cond): Fix calls for SFINAE. - (finish_expr_stmt): Ditto. - (finish_for_expr): Ditto. - (finish_asm_stmt): Ditto. - (finish_non_static_data_member): Ditto. - (finish_qualified_id_expr): Ditto. - (finish_call_expr): Add SFINAE support. - (finish_increment_expr): Fix calls for SFINAE. - (finish_unary_op_expr): Ditto. - (simplify_aggr_init_expr): Ditto. - (finish_omp_clauses): Ditto. - (finish_omp_for): Ditto. - (finish_omp_barrier): Ditto. - (finish_omo_flush): Ditto. - * decl2.c (grok_array_decl): Fix calls or SFINAE. - (build_anon_union_vars): Ditto. - (get_guard_cond): Ditto. - (set_guard): Ditto. - (one_static_initialization_or_destruction): Ditto. - (do_static_initialization_or_destruction): Ditto. - (generate_ctor_or_dtor_function): Ditto. - (build_offset_ref_call_from_tree): Ditto. - * parser.c (cp_parser_postfix_expression): Fix calls for SFINAE. - (cp_parser_postfix_dot_deref_expression): Ditto. - (cp_parser_unary_expression): Ditto. - (cp_parser_new_expression): Ditto. - (cp_parser_cast_expression): Ditto. - (cp_parser_binary_expression): Ditto. - (cp_parser_question_colon_clause): Ditto. - (cp_parser_assignment_expression): Ditto. - (cp_parser_expression): Ditto. - (cp_parser_builtin_offsetof): Ditto. - (cp_parser_template_argument): Ditto. - (cp_parser_functional_cast): Ditto. + * typeck.c (composite_pointer_type_r): Add SFINAE support. + (composite_pointer_type): Ditto. + (common_type): Fix call to composite_pointer_type. + (cxx_sizeof_nowarn): New; used to be a macro. + (cxx_sizeof_expr): Add SFINAE support. + (cxx_alignof_expr): Ditto. + (decay_conversion): Fix calls for SFINAE support. + (rationalize_conditional_expr): Add SFINAE support. + (build_class_member_access_expr): Ditto. + (finish_class_member_access_expr): Ditto. + (build_x_indirect_ref): Ditto. + (build_indirect_ref): Original version renamed to + cp_build_indirect_ref; new version provides a bridge from + c-common. + (cp_build_indirect_ref): Was build_indirect_ref; added SFINAE + support. + (get_member_function_from_ptrfunc): Fix calls for SFINAE support. + (build_function_call): Original version renamed to + cp_build_function_call; new version provides a bridge from + c-common. + (cp_build_function_call): Was build_function_call; added SFINAE + support. + (convert_arguments): Add SFINAE support. + (build_x_binary_op): Ditto. + (build_binary_op): Original version renamed to cp_build_binary_op; + new version provides a bridge from c-common. + (cp_build_binary_op): Was build_binary_op; added SFINAE support. + (pointer_diff): Fix calls for SFINAE. + (build_x_unary_op): Add SFINAE support. + (condition_conversion): Fix calls for SFINAE. + (build_unary_op): Original version renamed to cp_build_unary_op; + new version provides a bridge from c-common. + (cp_build_unary_op): Was build_unary_op; added SFINAE support. + (unary_complex_lvalue): Fix calls for SFINAE. + (build_x_conditional_expr): Add SFINAE support. + (build_x_compound_expr_from_list): Fix calls for SFINAE. + (build_x_compound_expr): Add SFINAE support. + (convert_ptrmem): Fix calls for SFINAE. + (build_static_cast_1): Add SFINAE support. + (build_static_cast): Ditto. + (build_reinterpret_cast_1): Ditto. + (build_reinterpret_cast): Ditto. + (build_const_cast_1): Ditto. + (build_const_cast): Ditto. + (build_c_cast): Ditto. + (build_modify_expr): Original version renamed to + cp_build_modify_expr; new version provides a bridge from c-common. + (cp_build_modify_expr): Was build_modify_expr; added SFINAE + support. + (build_x_modify_expr): Add SFINAE support. + (build_ptrmemfunc): Fix calls for SFINAE. + (convert_for_assignment): Add SFINAE support. + (convert_for_initialization): Ditto. + (check_return_expr): Fix calls for SFINAE. + (lvalue_or_else): Add SFINAE support. + * init.c (perform_member_init): Fix calls for SFINAE. + (emit_mem_initializers): Ditto. + (expand_virtual_init): Ditto. + (expand_cleanup_for_base): Ditto. + (build_aggr_init): Add SFINAE support. + (expand_default_init): Ditto. + (expand_aggr_init_1): Fix calls for SFINAE. + (build_offset_ref): Ditto. + (build_new_1): Add SFINAE support. + (build_new): Ditto. + (build_vec_delete_1): Fix calls for SFINAE. + (get_temp_regvar): Ditto. + (build_vec_init): Add SFINAE support. + (build_dtor_call): Fix calls for SFINAE. + (build_delete): Ditto. + (push_base_cleanups): Ditto. + (build_vec_delete_1): Ditto. + * class.c (build_base_path): Fix calls for SFINAE. + (build_simple_base_path): Ditto. + (convert_to_base_statically): Ditto. + (build_vfn_ref): Ditto. + (resolve_address_of_overloaded_function): Ditto. + * decl.c (check_initializer): Fix calls for SFINAE. + (register_dtor_fn): Ditto. + (compute_array_index_type): Ditto. + (finish_enum): Ditto. + (start_preparsed_function): Ditto. + (cxx_maybe_build_cleanup): Ditto. + * call.c (convert_like): Add COMPLAIN argument. + (convert_like_with_context): Ditto. + (build_this): Fix calls for SFINAE. + (build_user_type_conversion): Ditto. + (resolve_args): Ditto. + (build_new_function_call): Add SFINAE support. + (build_operator_new_call): Fix calls for SFINAE. + (build_object_call): Add SFINAE support. + (build_conditional_expr): Ditto. + (build_new_op): Ditto. + (build_op_delete_call): Fix calls for SFINAE. + (build_temp): Ditto. + (convert_like_real): Add SFINAE support. + (build_x_va_arg): Fix calls for SFINAE. + (convert_default_arg): Ditto. + (build_over_call): Add SFINAE support. + (build_java_interface_fn_ref): Fix calls for SFINAE. + (build_special_member_call): Add SFINAE support. + (build_new_method_call): Ditto. + (perform_implicit_conversion): Ditto. + (perform_direct_initialization_if_possible): Ditto. + (initialize_reference): Fix calls for SFINAE. + * method.c (do_build_assign_ref): Fix calls for SFINAE. + * rtti.c (build_headof): Fix calls for SFINAE. + (get_tinfo_decl_dynamic): Ditto. + (get_typeid): Ditto. + (build_dynamic_cast_1): Add SFINAE support. + (build_dynamic_cast): Ditto. + (tinfo_base_init): Fix calls for SFINAE. + * except.c (do_get_exception_ptr): Fix calls for SFINAE. + (do_end_catch): Ditto. + (initialize_handler_parm): Ditto. + (expand_start_catch_block): Ditto. + (do_allocate_exception): Ditto. + (do_free_exception): Ditto. + (build_throw): Ditto. + * cvt.c (build_up_reference): Fix calls for SFINAE. + (convert_to_reference): Ditto. + (ocp_convert): Ditto. + (convert_to_void): Add SFINAE support. + * tree.c (build_dummy_object): Fix calls for SFINAE. + (stabilize_expr): Ditto. + * cp-tree.h (build_conditional_expr): Add tsubst_flags_t + parameter. + (build_new_method_call): Ditto. + (build_special_member_call): Ditto. + (build_new_op): Ditto. + (perform_implicit_conversion): Ditto. + (perform_direct_initialization_if_possible): Ditto. + (convert_to_void): Ditto. + (build_aggr_init): Ditto. + (build_new): Ditto. + (build_vec_init): Ditto. + (build_dynamic_cast): Ditto. + (finish_call_expr): Ditto + (cxx_sizeof_or_alignof_expr): Add COMPLAIN parameter. + (cxx_sizeof_nowarn): Remove macro; add function declaration. + (build_class_member_access_expr): Add tsubst_flags_t parameter. + (finish_class_member_access_expr): Ditto. + (build_x_indirect_ref): Ditto. + (cp_build_indirect_ref): New. + (cp_build_function_call): Add tsubst_flags_t parameter. + (build_x_unary_op): Ditto. + (cp_build_unary_op): New. + (build_x_conditional_expr): Add tsubst_flags_t parameter. + (build_x_compound_expr): Ditto. + (build_compound_expr): Ditto. + (build_static_cast): Ditto. + (build_reinterpret_cast): Ditto. + (build_const_cast): Ditto. + (build_c_cast): Ditto. + (build_x_modify_expr): Ditto. + (cp_build_modify_expr): New. + (convert_for_initialization): Add tsubst_flags_t parameter. + (cp_build_binary_op): Remove macro; add function declaration. + (invalid_nonstatic_memfn_p): Add tsubst_flags_t parameter. + (lvalue_or_else): Ditto. + (build_functional_cast): Ditto. + * typeck2.c (digest_init): Fix calls for SFINAE. + (process_init_constructor_array): Ditto. + (process_init_constructor_record): Ditto. + (build_x_arrow): Ditto. + (build_m_component_ref): Ditto. + (build_functional_cast): Add SFINAE support. + * pt.c (tsubst_copy_and_build): Add (more) SFINAE support. + * semantics.c (simplify_loop_decl_cond): Fix calls for SFINAE. + (finish_expr_stmt): Ditto. + (finish_for_expr): Ditto. + (finish_asm_stmt): Ditto. + (finish_non_static_data_member): Ditto. + (finish_qualified_id_expr): Ditto. + (finish_call_expr): Add SFINAE support. + (finish_increment_expr): Fix calls for SFINAE. + (finish_unary_op_expr): Ditto. + (simplify_aggr_init_expr): Ditto. + (finish_omp_clauses): Ditto. + (finish_omp_for): Ditto. + (finish_omp_barrier): Ditto. + (finish_omo_flush): Ditto. + * decl2.c (grok_array_decl): Fix calls or SFINAE. + (build_anon_union_vars): Ditto. + (get_guard_cond): Ditto. + (set_guard): Ditto. + (one_static_initialization_or_destruction): Ditto. + (do_static_initialization_or_destruction): Ditto. + (generate_ctor_or_dtor_function): Ditto. + (build_offset_ref_call_from_tree): Ditto. + * parser.c (cp_parser_postfix_expression): Fix calls for SFINAE. + (cp_parser_postfix_dot_deref_expression): Ditto. + (cp_parser_unary_expression): Ditto. + (cp_parser_new_expression): Ditto. + (cp_parser_cast_expression): Ditto. + (cp_parser_binary_expression): Ditto. + (cp_parser_question_colon_clause): Ditto. + (cp_parser_assignment_expression): Ditto. + (cp_parser_expression): Ditto. + (cp_parser_builtin_offsetof): Ditto. + (cp_parser_template_argument): Ditto. + (cp_parser_functional_cast): Ditto. 2008-03-24 Tom Tromey @@ -1483,8 +2091,8 @@ 2008-03-18 Paolo Bonzini - * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. - + * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. + 2008-03-17 Jason Merrill PR c++/35548 @@ -1497,17 +2105,17 @@ Revert: 2008-02-04 Richard Guenther - PR java/35035 - * decl.c (record_builtin_java_type): Make jboolean a - integer type again where its mode doesn't match that of bool. + PR java/35035 + * decl.c (record_builtin_java_type): Make jboolean a + integer type again where its mode doesn't match that of bool. 2008-01-25 Richard Guenther - PR c++/33887 - * decl.c (record_builtin_java_type): Make __java_boolean - a variant of bool. - * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check - after TYPE_MAIN_VARIANT check. + PR c++/33887 + * decl.c (record_builtin_java_type): Make __java_boolean + a variant of bool. + * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check + after TYPE_MAIN_VARIANT check. 2008-03-10 Jakub Jelinek @@ -1563,7 +2171,7 @@ (convert_to_void): Use error instead of pedwarn. * error.c (cp_cpp_error): Use pedantic_warning_kind. * decl.c (compute_array_index_type): Use constant_expression_error. - + 2008-03-01 Douglas Gregor * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Note @@ -1636,7 +2244,7 @@ PR 26264 * call.c (magic_varargs_p): Remove BUILT_IN_STDARG_START. - + 2008-02-26 Richard Guenther * decl.c (duplicate_decls): Remove decl from global mapping @@ -1644,25 +2252,25 @@ 2008-02-26 Paolo Carlini - PR c++/35323 - * name-lookup.c (arg_assoc_type): Handle FIXED_POINT_TYPE. + PR c++/35323 + * name-lookup.c (arg_assoc_type): Handle FIXED_POINT_TYPE. 2008-02-26 Manuel Lopez-Ibanez - + * typeck.c (build_class_member_access_expr): Add appropriate OPT_W* parameter to warning. (build_reinterpret_cast_1): Likewise. * name-lookup.c (push_overloaded_decl): Likewise. - + 2008-02-25 Paolo Carlini - PR c++/35333 - * error.c (dump_expr): Handle CONJ_EXPR. + PR c++/35333 + * error.c (dump_expr): Handle CONJ_EXPR. 2008-02-25 Paolo Carlini - PR c++/35338 - * error.c (dump_type): Handle FIXED_POINT_TYPE. + PR c++/35338 + * error.c (dump_type): Handle FIXED_POINT_TYPE. (dump_expr): Handle FIXED_CST. 2008-02-24 Jason Merrill @@ -1671,7 +2279,7 @@ (cp_parser_namespace_definition): Likewise. PR c++/33486 - * name-lookup.c (arg_assoc_namespace): Look down into inline + * name-lookup.c (arg_assoc_namespace): Look down into inline namespaces, too. 2008-02-23 Manuel Lopez-Ibanez @@ -1683,7 +2291,7 @@ (build_reinterpret_cast_1): Update call to check_for_casting_away_constness. (build_const_cast_1): Likewise. - + 2008-02-24 Paolo Carlini * error.c (dump_expr): Don't deal directly with NEW_EXPR (and @@ -1707,8 +2315,8 @@ Revert: 2008-02-14 Paolo Carlini - PR c++/28743 - * pt.c (determine_specialization): In case of function templates, + PR c++/28743 + * pt.c (determine_specialization): In case of function templates, when the type of DECL does not match FN there is no match. 2008-02-22 Ralf Wildenhues @@ -1775,8 +2383,8 @@ 2008-02-14 Paolo Carlini - PR c++/28743 - * pt.c (determine_specialization): In case of function templates, + PR c++/28743 + * pt.c (determine_specialization): In case of function templates, when the type of DECL does not match FN there is no match. 2008-02-13 Jakub Jelinek @@ -1789,7 +2397,7 @@ 2008-02-13 Jason Merrill PR c++/34962, c++/34937, c++/34939 - * decl2.c (is_late_template_attribute): Always defer attributes + * decl2.c (is_late_template_attribute): Always defer attributes vector_size and weak. PR c++/34774 @@ -1823,12 +2431,12 @@ 2008-02-11 Douglas Gregor - PR c++/35113 - * tree.c (cp_build_qualified_type_real): When building a - cv-qualified array type, build it as a unique type with - build_cplus_array_type_1 and then adopt the unqualified type's - main variant. - + PR c++/35113 + * tree.c (cp_build_qualified_type_real): When building a + cv-qualified array type, build it as a unique type with + build_cplus_array_type_1 and then adopt the unqualified type's + main variant. + 2008-02-11 Paolo Carlini PR c++/35077 @@ -1837,7 +2445,7 @@ 2008-02-10 Jason Merrill PR c++/34094 - * decl2.c (cp_write_global_declarations): Don't write out static + * decl2.c (cp_write_global_declarations): Don't write out static data members with DECL_IN_AGGR_P set. 2008-02-08 Jason Merrill @@ -1890,7 +2498,7 @@ TYPE_MAIN_VARIANT to add new attributes, be sure to also modify all of the other variants to add those same attributes. Otherwise, the main variant will be inconsistent with those other variants. - + 2008-02-04 Richard Guenther PR java/35035 @@ -1906,7 +2514,7 @@ * typeck2.c (build_functional_cast): Call it. * cp-gimplify.c (cp_gimplify_init_expr): Handle its output. - * cp-tree.h (TYPE_HAS_USER_CONSTRUCTOR): Rename from + * cp-tree.h (TYPE_HAS_USER_CONSTRUCTOR): Rename from TYPE_HAS_CONSTRUCTOR. * class.c (finish_struct_bits, maybe_warn_about_overly_private_class, add_implicitly_declared_members): Adjust. @@ -1923,15 +2531,15 @@ (instantiate_class_template): Adjust. 2008-01-31 Douglas Gregor - Jakub Jelinek + Jakub Jelinek - PR c++/34935 - PR c++/34936 - * typeck.c (structural_comptypes): Handle comparisons of - VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and - REAL_TYPE nodes. - * mangle.c (write_builtin_type): Map down to the canonical type, - which will be one of the predefined type nodes. + PR c++/34935 + PR c++/34936 + * typeck.c (structural_comptypes): Handle comparisons of + VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and + REAL_TYPE nodes. + * mangle.c (write_builtin_type): Map down to the canonical type, + which will be one of the predefined type nodes. 2008-01-29 Michael Meissner @@ -1964,7 +2572,7 @@ (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to - check_for_bare_parameter_packs. + check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an @@ -2032,7 +2640,7 @@ to complex. (compare_ics): Such a conversion is worse than a normal arithmetic conversion. - + 2008-01-25 Richard Guenther PR c++/33887 @@ -2041,14 +2649,14 @@ 2008-01-24 Paolo Carlini - PR c++/34603 - * pt.c (push_template_decl_real): Return error_mark_node in case + PR c++/34603 + * pt.c (push_template_decl_real): Return error_mark_node in case of template definition of non-template. 2008-01-24 Jason Merrill PR c++/34913 - * decl2.c (is_late_template_attribute): Defer any attribute with + * decl2.c (is_late_template_attribute): Defer any attribute with dependent args. Also defer type attributes if the type is dependent. 2008-01-22 Jakub Jelinek @@ -2064,13 +2672,13 @@ 2008-01-22 Jason Merrill PR c++/28560 - * decl.c (groktypename): Also ignore attributes on dependent + * decl.c (groktypename): Also ignore attributes on dependent possibly-class types. PR c++/34912 - * friend.c (do_friend): Check for prior declaration of a friend + * friend.c (do_friend): Check for prior declaration of a friend function of a local class. - * name-lookup.c (lookup_name_innermost_nonclass_level): + * name-lookup.c (lookup_name_innermost_nonclass_level): No longer static. * name-lookup.h: Declare it. @@ -2112,14 +2720,14 @@ 2008-01-20 Paolo Carlini - PR c++/34891 - * error.c (dump_expr): Deal with VIEW_CONVERT_EXPR. + PR c++/34891 + * error.c (dump_expr): Deal with VIEW_CONVERT_EXPR. 2008-01-20 Paolo Carlini - PR c++/34776 + PR c++/34776 PR c++/34486 - * name-lookup.c (do_class_using_decl): Do not call constructor_name_p + * name-lookup.c (do_class_using_decl): Do not call constructor_name_p on non-IS_AGGR_TYPE scope. (constructor_name_p): Assert IS_AGGR_TYPE. @@ -2199,42 +2807,42 @@ 2008-01-15 Douglas Gregor - PR c++/34314 - * error.c (dump_simple_decl): Display ellipsis for template - non-type parameter packs. - (dump_decl): Display ellipsis for template type parameter packs. - (dump_template_decl): Display ellipsis for template template - parameter packs. - * pt.c (redeclare_class_template): When redeclaring a class - template, check for collisions between template parameters and - template parameter packs. + PR c++/34314 + * error.c (dump_simple_decl): Display ellipsis for template + non-type parameter packs. + (dump_decl): Display ellipsis for template type parameter packs. + (dump_template_decl): Display ellipsis for template template + parameter packs. + * pt.c (redeclare_class_template): When redeclaring a class + template, check for collisions between template parameters and + template parameter packs. 2008-01-15 Douglas Gregor - PR c++/33964 - * pt.c (process_partial_specialization): Don't mark template - parameters that occur in non-deduced contexts. - (struct pair_fn_data): Add include_nondeduced_p. - (for_each_template_parm_r): Only visit non-deduced contexts if - include_nondeduced_p is set. - (for_each_template_parm): Added parameter include_nondeduced_p, - which states whether template parameters found in non-deduced - contexts should be visited. - (uses_template_parms): Visit all template parameters, even those - in non-deduced contexts. + PR c++/33964 + * pt.c (process_partial_specialization): Don't mark template + parameters that occur in non-deduced contexts. + (struct pair_fn_data): Add include_nondeduced_p. + (for_each_template_parm_r): Only visit non-deduced contexts if + include_nondeduced_p is set. + (for_each_template_parm): Added parameter include_nondeduced_p, + which states whether template parameters found in non-deduced + contexts should be visited. + (uses_template_parms): Visit all template parameters, even those + in non-deduced contexts. 2008-01-15 Douglas Gregor - PR c++/34052 - * pt.c (check_default_tmpl_args): Check for parameter packs that - aren't at the end of a primary template. - (push_template_decl_real): Remove check for parameter packs that - aren't at the end of a primary template; that now happens in - check_default_tmpl_args. - * semantics.c (finish_template_template_parm): Use - check_default_tmpl_args to check for errors in the template - parameter list. - + PR c++/34052 + * pt.c (check_default_tmpl_args): Check for parameter packs that + aren't at the end of a primary template. + (push_template_decl_real): Remove check for parameter packs that + aren't at the end of a primary template; that now happens in + check_default_tmpl_args. + * semantics.c (finish_template_template_parm): Use + check_default_tmpl_args to check for errors in the template + parameter list. + 2008-01-12 Doug Kwan * decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers @@ -2258,9 +2866,9 @@ 2008-01-01 Douglas Gregor - * parser.c (cp_parser_check_decl_spec): Don't warn about "long - long" in C++0x mode; change the warning to note that "long long" - is only unsupported in C++98 mode. + * parser.c (cp_parser_check_decl_spec): Don't warn about "long + long" in C++0x mode; change the warning to note that "long long" + is only unsupported in C++98 mode. 2007-12-20 Jason Merrill @@ -2278,13 +2886,13 @@ 2007-12-18 Jason Merrill PR c++/34206 - * pt.c (tsubst_aggr_type): Do nothing if the type already doesn't + * pt.c (tsubst_aggr_type): Do nothing if the type already doesn't use template parms. (dependent_type_p_r): Handle the domain of an array. 2007-12-18 Douglas Gregor - Jakub Jelinek - + Jakub Jelinek + PR c++/32565 PR c++/33943 PR c++/33965 @@ -2293,9 +2901,9 @@ arguments have been deduced. (coerce_template_parms): Don't complain when COMPLAIN doesn't include tf_error. - (fn_type_unification): Use template_template_parm_bindings_ok_p. - (unify): Deal with variadic, bound template template parameters. - (get_class_bindings): Use template_template_parm_bindings_ok_p. + (fn_type_unification): Use template_template_parm_bindings_ok_p. + (unify): Deal with variadic, bound template template parameters. + (get_class_bindings): Use template_template_parm_bindings_ok_p. 2007-12-18 Jakub Jelinek @@ -2365,38 +2973,38 @@ 2007-12-04 Douglas Gregor - PR c++/34101 - * name-lookup.c (arg_assoc_template_arg): Recurse on argument - packs. - (arg_assoc_type): We don't need to handle TYPE_ARGUMENT_PACK here, - since arg_assoc_template_arg will deal with them (better). + PR c++/34101 + * name-lookup.c (arg_assoc_template_arg): Recurse on argument + packs. + (arg_assoc_type): We don't need to handle TYPE_ARGUMENT_PACK here, + since arg_assoc_template_arg will deal with them (better). 2007-12-04 Douglas Gregor - PR c++/33509 - * pt.c (tsubst_exception_specification): Handle substitutions into - member templates, where tsubst_pack_expansion returns a - TYPE_PACK_EXPANSION. + PR c++/33509 + * pt.c (tsubst_exception_specification): Handle substitutions into + member templates, where tsubst_pack_expansion returns a + TYPE_PACK_EXPANSION. 2007-12-04 Douglas Gregor - PR c++/33091 - * pt.c (unify_pack_expansion): If we didn't deduce any actual - bindings for the template parameter pack, don't try to keep the - empty deduced arguments. - (unify): If a parameter is a template-id whose template argument - list contains a pack expansion that is not at the end, then we - cannot unify against that template-id. + PR c++/33091 + * pt.c (unify_pack_expansion): If we didn't deduce any actual + bindings for the template parameter pack, don't try to keep the + empty deduced arguments. + (unify): If a parameter is a template-id whose template argument + list contains a pack expansion that is not at the end, then we + cannot unify against that template-id. 2007-12-02 Paolo Carlini - PR c++/34061 - * pt.c (current_template_args): Use error_operand_p. + PR c++/34061 + * pt.c (current_template_args): Use error_operand_p. 2007-12-02 Paolo Carlini - PR c++/34273 - * error.c (dump_decl): Handle TREE_BINFO. + PR c++/34273 + * error.c (dump_decl): Handle TREE_BINFO. 2007-12-01 Ollie Wild @@ -2436,7 +3044,7 @@ 2007-11-26 Andreas Krebbel PR c++/34081 - * decl.c (start_preparsed_function): Pass + * decl.c (start_preparsed_function): Pass processing_template_decl for the new allocate_struct_function parameter. @@ -2465,11 +3073,11 @@ 2007-11-23 Mark Mitchell Manuel Lopez-Ibanez - + PR c++/5310 * call.c (convert_like_real): Build a zero constant when __null is converted to an integer type. - + 2007-11-22 Jakub Jelinek PR c++/34094 @@ -2640,7 +3248,7 @@ check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. - + 2007-11-06 Jakub Jelinek PR target/33168 @@ -2678,7 +3286,7 @@ PR c++/33939 * pt.c (unify_pack_expansion): bring handling of function call - arguments into line with type_unification_real. + arguments into line with type_unification_real. 2007-11-05 Manuel Lopez-Ibanez @@ -2752,12 +3360,12 @@ Fix typo. 2007-10-31 Christian Bruel - Mark Mitchell + Mark Mitchell PR c++/19531 * typeck.c (check_return_expr): Don't set named_return_value_okay_p - if retval is volatile. - + if retval is volatile. + 2007-10-30 Jakub Jelinek PR c++/33616 @@ -2824,7 +3432,7 @@ PR c++/24791 * pt.c (get_template_info): New fn. (template_class_depth): Use it. - (push_template_decl_real): Check that the template args of the + (push_template_decl_real): Check that the template args of the definition match the args of the previous declaration. 2007-10-26 Paolo Carlini @@ -2868,8 +3476,8 @@ PR c++/25950 (DR 391) * call.c (struct conversion): Remove check_copy_constructor_p. - (reference_binding): Always bind a reference directly to a - compatible class rvalue. Pass down LOOKUP_NO_TEMP_BIND during + (reference_binding): Always bind a reference directly to a + compatible class rvalue. Pass down LOOKUP_NO_TEMP_BIND during temporary creation. (check_constructor_callable): Remove. (convert_like_real): Don't call it. @@ -2974,7 +3582,7 @@ (leave_scope): Don't pop_visibility. * name-lookup.h (struct cp_binding_level): Remove has_visibility. * parser.c (cp_parser_namespace_definition): Call - handle_namespace_attrs and pop_visibility as appropriate. + handle_namespace_attrs and pop_visibility as appropriate. PR c++/11756 * mangle.c (write_type) [TYPEOF_TYPE]: Just sorry. @@ -2994,7 +3602,7 @@ 2007-09-29 Jason Merrill PR c++/33094 - * decl.c (make_rtl_for_nonlocal_decl): It's ok for a member + * decl.c (make_rtl_for_nonlocal_decl): It's ok for a member constant to not have DECL_EXTERNAL if it's file-local. 2007-09-28 Ollie Wild @@ -3077,14 +3685,14 @@ 2007-09-24 Danny Smith PR c++/14688 - * search.c (check_final_overrider): Fail if + * search.c (check_final_overrider): Fail if targetm.comp_type_attributes returns 0. 2007-09-24 Jason Merrill PR c++/33239 * pt.c (resolve_typename_type): Don't look things up in the original - template if it would mean losing template arguments. + template if it would mean losing template arguments. 2007-09-24 Jakub Jelinek @@ -3095,22 +3703,22 @@ 2007-09-24 Douglas Gregor - PR c++/33185 + PR c++/33185 * tree.c (cp_build_qualified_type_real): Build a canonical ARRAY_TYPE if the original ARRAY_TYPE was not a canonical type. - + 2007-09-24 Douglas Gregor PR c++/33112 - PR c++/33185 + PR c++/33185 * tree.c (cplus_array_compare): Compare pointers, not types. (build_cplus_array_type_1): Store new array type into the hash table before building the canonical type; build the canonical type correctly. (cp_build_qualified_type_real): Put all of the array types with - cv-qualified element types into the C++ array hash table, built as + cv-qualified element types into the C++ array hash table, built as variants of the unqualified versions. - + 2007-09-23 Jason Merrill PR c++/16370 @@ -3156,7 +3764,7 @@ PR c++/7586 * pt.c (tsubst): Handle typedefs by looking for the specialization. - (retrieve_specialization): Only tagged types use + (retrieve_specialization): Only tagged types use DECL_TEMPLATE_INSTANTIATIONS. (instantiate_class_template): Push nested classes too. (tsubst_decl) [TYPE_DECL]: Only check for canonical decl for @@ -3393,7 +4001,7 @@ 2007-08-31 Douglas Gregor * mangle.c (write_type): Change mangling of rvalue reference from - `RR' to `O'. + `RR' to `O'. 2007-08-31 Jakub Jelinek @@ -3451,7 +4059,7 @@ 2007-08-27 Jason Merrill PR c++/29000 - * pt.c (build_non_dependent_expr, type_dependent_expression_p): + * pt.c (build_non_dependent_expr, type_dependent_expression_p): Look inside STMT_EXPR. * semantics.c (stmt_expr_value_expr): New fn. * cp-tree.h: Declare it. @@ -3464,7 +4072,7 @@ * decl.c (duplicate_decls): Merge DECL_DISREGARD_INLINE_LIMITS. 2007-08-28 Gabriel Dos Reis - + * error.c (dump_expr): Handle COMPLEX_CST. * cxx-pretty-print.c (pp_cxx_primary_expression): Likewise. (pp_cxx_expression): Likewise. @@ -3812,9 +4420,9 @@ PR c++/30851 * parser.c (cp_parser_asm_definition): Detect and discard asm statements with invalid inputs or outputs. - (cp_parser_asm_operand_list): Return error mark node if any - of the operands are invalid. Adjust documentation. - + (cp_parser_asm_operand_list): Return error mark node if any + of the operands are invalid. Adjust documentation. + 2007-08-02 Nick Clifton * typeck.c: Change copyright header to refer to version 3 of the @@ -3965,7 +4573,7 @@ canonical types; otherwise, fall back to structural type comparisons. If ENABLE_CHECKING and USE_CANONICAL_TYPES, give an internal compiler error if the canonical types are wrong. - + 2007-07-11 Paolo Carlini PR c++/32560 @@ -4032,7 +4640,7 @@ tests when comparing pointer-to-member-function types, because the handling of TYPE_GET_PTRMEMFUNC_TYPE currently defeats canonical types. - + 2007-07-03 Mark Mitchell * init.c (build_new): Tweak comment. @@ -4181,7 +4789,7 @@ * init.c (avoid_placement_new_aliasing): New static function. (build_new_1): Call it. -2007-06-11 Rafael Avila de Espindola +2007-06-11 Rafael Ávila de Espíndola * cp-objcp-common.h (LANG_HOOKS_SIGNED_TYPE): Remove. (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. @@ -4252,9 +4860,9 @@ * semantics.c (finish_trait_expr): Complete the types. 2007-05-30 Russell Yanofsky - Douglas Gregor - Pedro Lamarao - Howard Hinnant + Douglas Gregor + Pedro Lamarao + Howard Hinnant PR c++/7412 PR c++/29939 @@ -4295,7 +4903,7 @@ rvalue references. (cp_parser_make_indirect_declarator): New. (cp_parser_new_declarator_opt): Call - cp_parser_make_indirect_declarator. + cp_parser_make_indirect_declarator. (cp_parser_conversion_declarator_opt): Ditto. (cp_parser_declarator): Ditto. (cp_parser_ptr_operator): Parse "&&" tokens into rvalue reference @@ -4324,7 +4932,7 @@ case POSTDECREMENT_EXPR>): Return the error_mark_node if either the real or imaginary parts would an error_mark_node. - + 2007-05-25 Simon Martin Manuel Lopez-Ibanez @@ -4410,7 +5018,7 @@ * rtti.c (get_tinfo_decl_dynamic, get_typeid): Try to complete the type only if is a class type (5.2.8/4). -2007-05-14 Rafael Avila de Espindola +2007-05-14 Rafael Ávila de Espíndola * cp-objcp-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove. * decl.c (grokdeclarator): Use unsigned_type_for instead of @@ -4421,14 +5029,14 @@ * typeck.c (build_indirect_ref): Add call to strict_aliasing_warning. (build_reinterpret_cast_1): Condition call to - strict_aliasing_warning. + strict_aliasing_warning. 2007-05-11 Jan Hubicka * semantics.c (expand_or_defer_fn): Do not call c_record_cdtor_fn. * decl2.c (start_objects): ctors and dtors are no longer public. (cp_write_global_declarations): Do not call c_build_cdtor_fns. - + 2007-05-07 Andrew Pinski * typeck.c (build_unary_op): Remove code that used to @@ -4454,7 +5062,7 @@ 2007-05-02 Seongbae Park PR c++/31663 - * decl2.c (constrain_class_visibility): + * decl2.c (constrain_class_visibility): Use strip_pointer_or_array_types instead of strip_array_types. 2007-04-28 Andrew Pinski @@ -4470,8 +5078,8 @@ 2007-04-27 Douglas Gregor * error.c (maybe_warn_variadic_templates): Variadic templates are - now in C++0x, so only warn about them in C++98 mode. - + now in C++0x, so only warn about them in C++98 mode. + 2007-04-26 Andrew Pinski PR C++/30016 @@ -4578,7 +5186,7 @@ * cp-objcp-common.c (cxx_staticp): Remove. * cp-objcp-common.h (LANG_HOOKS_STATICP): Remove. - * cp-tree.h (cxx_staticp): + * cp-tree.h (cxx_staticp): 2007-04-04 Danny Smith @@ -4615,11 +5223,11 @@ (cp_parser_parameter_declaration): Ditto. Also, handle when TYPE is NULL. * pt.c (find_parameter_packs_r): Look into the bounds on integer - types (they could be used as array bounds). + types (they could be used as array bounds). (check_for_bare_parameter_packs): Deal with TEMPLATE_PARM_INDEX. (tsubst_pack_expansion): Handle failure to expand parameter packs. - + 2007-03-30 Paolo Carlini PR c++/26099 @@ -4757,13 +5365,13 @@ (cp_parser_namespace_alias_definition): if we find an open brace instead of '=', then this is actually a misplaced namespace definition. - + 2007-03-15 Manuel Lopez-Ibanez PR c++/24924 * decl.c (cxx_init_decl_processing): Move command-line options processing to c-opts.c. - + 2007-03-15 Douglas Gregor * ptree.c (cxx_print_type): Use formatting markup for integers @@ -4787,7 +5395,7 @@ (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Ditto. * name-lookup.c (push_to_top_level): Make need_pop a bool value. - + 2007-03-14 Andrew Pinski PR c++/31165 @@ -4810,13 +5418,13 @@ 2007-03-14 Manuel Lopez-Ibanez * class.c (warn_hidden): Add OPT_Woverloaded_virtual to warning. - + 2007-03-14 Manuel Lopez-Ibanez PR c/21438 * typeck.c (build_binary_op): Call warn_for_div_zero instead of warning. - + 2007-03-13 Alexandre Oliva * repo.c (init_repo): Initialize random_seed saved options. @@ -4845,7 +5453,7 @@ PR c++/30328 * semantics.c (finish_typeof): Use unlowered_expr_type. - + 2007-03-10 Mark Mitchell PR c++/30274 @@ -4889,7 +5497,7 @@ * operators.def: Add ellipsis operator for EXPR_PACK_EXPANSION. * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK, NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION, - CAST_EXPR. + CAST_EXPR. * mangle.c (write_type): Mangle TYPE_PACK_EXPANSION. (write_template_arg): Write argument packs as separate arguments. * cp-tree.h (struct template_parm_index_s): Add flag that @@ -4916,17 +5524,17 @@ (struct cp_declarator): Add parameter_pack_p flag. (maybe_warn_variadic_templates): Declare. (process_template_parm): Add bool parameter IS_PARAMETER_PACK, to - indicate a template parameter pack. + indicate a template parameter pack. (uses_parameter_packs): Declare. (template_parameter_pack_p): Declare. (template_parms_variadic_p): Declare. (make_pack_expansion): Declare. (check_for_bare_parameter_packs): Declare. * cxx-pretty-print.c (pp_cxx_unary_expression): Print - sizeof... expressions. + sizeof... expressions. (pp_cxx_expression): Print pack expansions and non-type argument packs. - (pp_cxx_exception_specification): Print pack expansions. + (pp_cxx_exception_specification): Print pack expansions. (pp_cxx_direct_declarator): Print ellipsis for parameter packs. (pp_cxx_ctor_initializer): Print pack expansions. (pp_cxx_type_id): Print pack expansions. @@ -4968,7 +5576,7 @@ comparing template argument lists. (mangle_class_name_for_template): Make argument packs as separate template arguments. - (for_each_template_parm_r): No need to handle BASELINK. + (for_each_template_parm_r): No need to handle BASELINK. (instantiate_class_template): Handle pack expansions in the base class list. (tsubst_pack_expansion): New. @@ -4980,10 +5588,10 @@ argument types. (tsubst_exception_specification): Handle pack expansions in exception specifiers. - (tsubst): See through ARGUMENT_PACK_SELECT arguments when + (tsubst): See through ARGUMENT_PACK_SELECT arguments when replacing a template parameter with its argument. If we encounter a substitution for an argument pack, just return the parameter - itself. + itself. (tsubst_copy): sizeof(X...) returns the number of elements in parameter pack X. See through ARGUMENT_PACK_SELECT when the PARM_DECL is a parameter pack. @@ -5069,13 +5677,13 @@ end a template argument. * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK, NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION, - CAST_EXPR. + CAST_EXPR. 2007-03-09 Dirk Mueller * call.c (build_new_op): Call warn_logical_operator. -2007-03-08 Volker Reichelt +2007-03-08 Volker Reichelt PR c++/30852 * semantics.c (finish_offsetof): Handle COMPOUND_EXPR. @@ -5089,7 +5697,7 @@ * decl.c (grokdeclarator): Disable warnings for anonymous bitfields. -2007-03-05 Volker Reichelt +2007-03-05 Volker Reichelt * typeck2.c (readonly_error): Always emit a hard error. Remove last argument. @@ -5113,7 +5721,7 @@ (cp_parser_selection_statement): Set IN_IF_STMT bit when parsing body of 'if'. (cp_parser_jump_statement): Mask new IN_IF_STMT bit. - + 2007-03-02 Simon Martin PR c++/28253 @@ -5129,7 +5737,7 @@ 2007-03-02 Manuel Lopez-Ibanez * typeck.c (common_base_type): Delete unused function. - + 2007-03-01 Brooks Moses * Make-lang.in: Add dummy lang.install-pdf target. @@ -5226,7 +5834,7 @@ 2007-02-15 Andrew Pinski PR C++/30158 - * semantics.c (finish_stmt_expr_expr): Set TREE_TYPE of the + * semantics.c (finish_stmt_expr_expr): Set TREE_TYPE of the statement expression if we had an error mark node. 2007-02-15 Sandra Loosemore @@ -5236,15 +5844,15 @@ * cp-tree.def (AGGR_INIT_EXPR): Adjust documentation. Change class to tcc_vl_exp. - * call.c (build_call): Use build_call_list instead - of build3. + * call.c (build_call): Use build_call_list instead + of build3. (build_over_call): Likewise. - (build_new_method_call): Use build_min_non_dep_call_list + (build_new_method_call): Use build_min_non_dep_call_list instead of build_min_non_dep. * error.c (dump_call_expr_args): New function. (dump_aggr_init_expr_args): New function. - (dump_expr) : Use them. + (dump_expr) : Use them. Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros. * cvt.c (convert_to_void): Use build_call_array instead @@ -5256,7 +5864,7 @@ * dump.c (cp_dump_tree) : Update to use new AGGR_INIT_EXPR accessor macros. - * cp-gimplify.c (cp_gimplify_init_expr): Use + * cp-gimplify.c (cp_gimplify_init_expr): Use AGGR_INIT_EXPR_SLOT to set the slot operand. * cp-tree.h (AGGR_INIT_EXPR_FN): New macro. @@ -5285,7 +5893,7 @@ (cp_tree_equal) : Iterate through the arguments to check for equality instead of recursing. Handle tcc_vl_exp tree code classes. - (stabilize_call): Update to only handle CALL_EXPRs, not + (stabilize_call): Update to only handle CALL_EXPRs, not AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros. (stabilize_aggr_init): New function. (stabilize_init): Use it. @@ -5293,23 +5901,23 @@ * cxx-pretty-print.c (pp_cxx_postfix_expression) : Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros and argument iterators. - + * pt.c (tsubst_copy) : Replace build_nt with - build_vl_exp. Iterate through the operands, recursively + build_vl_exp. Iterate through the operands, recursively processing each one. (tsubst_copy_and_build) : Update to use new CALL_EXPR accessor macros. (value_dependent_expression_p) : Handle tcc_vl_exp - tree code classes. Use TREE_OPERAND_LENGTH instead of + tree code classes. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. * semantics.c (finish_call_expr): Use build_nt_call_list instead of build_nt. - (simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR - accessor macros. Use build_call_array to construct the + (simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR + accessor macros. Use build_call_array to construct the CALL_EXPR node instead of build3 - - * decl2.c (build_offset_ref_call_from_tree): Use + + * decl2.c (build_offset_ref_call_from_tree): Use build_nt_call_list and build_min_non_dep_call_list instead of build_min_nt and build_min_non_dep. @@ -5320,7 +5928,7 @@ PR c++/28943 * call.c (build_conditional_expr): Improve error message. - + 2007-02-13 Dirk Mueller * friend.c (do_friend): Annotate warning about friend @@ -5397,9 +6005,9 @@ o2007-02-06 Mark Mitchell 2007-02-03 Douglas Gregor - * parser.c (cp_lexer_get_preprocessor_token): Attach the C++0x - keyword warning to -Wc++0x-compat. - + * parser.c (cp_lexer_get_preprocessor_token): Attach the C++0x + keyword warning to -Wc++0x-compat. + 2007-02-03 Gabriel Dos Reis * decl.c (grokdeclarator): Update documentation. @@ -5424,7 +6032,7 @@ o2007-02-06 Mark Mitchell to -Wpointer-arith. * call.c (convert_like_real): Don't warn when converting to boolean type. - + 2007-01-29 Manuel Lopez-Ibanez * decl.c (pop_label): Replace warning with call to @@ -5512,13 +6120,13 @@ o2007-02-06 Mark Mitchell * typeck.c (build_binary_op): Call overflow_warning if TREE_OVERFLOW_P is true for the result and not for any of the operands. - + 2007-01-06 Lee Millward - PR c++/19439 - * class.c (add_method): Don't wait until template - instantiation time to complain about duplicate methods. - + PR c++/19439 + * class.c (add_method): Don't wait until template + instantiation time to complain about duplicate methods. + 2007-01-05 Manuel Lopez-Ibanez PR c/19978 @@ -5549,7 +6157,7 @@ o2007-02-06 Mark Mitchell 2007-01-02 Douglas Gregor * pt.c (canonical_template_parms): Correct typo in comment. - + 2007-01-02 Douglas Gregor * typeck.c (structural_comptypes): Renamed from "comptypes".