X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=2407446de0658b6ffe73d60a7c2fd06e874a3f66;hb=0b2fe6d2460f813bb0193c6540f6a4a6ae9e92ae;hp=d98d4154af8b74ea3c7260cb6601dc13269b5cd4;hpb=3f24af9bf4eb9b03c7bfe188eba1e9cadc1ae4ad;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d98d4154af8..2407446de06 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,706 @@ +2009-11-10 Jason Merrill + + * call.c (build_op_delete_call): Tweak error. + + PR c++/34158 + PR c++/36406 + * call.c (non_placement_deallocation_fn_p): Split out... + (build_op_delete_call): ...from here. Use instantiate_type + for placement delete. Simplify logic. + * pt.c (primary_template_instantiation_p): Non-static. + * cp-tree.h: Declare it. + +2009-11-09 Jason Merrill + + PR c++/41972 + * parser.c (cp_parser_template_argument): Accept SCOPE_REF around + VAR_DECL. + + PR c++/41994 + * pt.c (tsubst_baselink): tsubst the name. + +2009-11-07 Jason Merrill + + PR c++/37920 + * pt.c (tsubst) [TYPEOF_TYPE]: Set cp_unevaluated_operand. + + PR c++/18451 + PR c++/40738 + * cp-tree.h (cp_decl_specifier_seq): Add any_type_specifiers_p. + * parser.c (cp_parser_single_declaration): Call + cp_parser_parse_and_diagnose_invalid_type_name here, too. + (cp_parser_parameter_declaration): And here. + (cp_parser_parse_and_diagnose_invalid_type_name): Be + less picky about declarator form. Don't skip to + the end of the block if we're in a declarator. + (cp_parser_decl_specifier_seq): Set any_type_specifiers_p. + (cp_parser_simple_declaration): Check it. + (cp_parser_member_declaration): Likewise. + (cp_parser_diagnose_invalid_type_name): Tweak error message. + (cp_parser_expression_statement): Likewise. + * decl2.c (grokfield): Mention decltype instead of typeof. + +2009-11-06 Jason Merrill + + PR c++/15946 + * parser.c (cp_parser_check_template_parameters): Don't talk about + specialization at function scope. + (cp_parser_diagnose_invalid_type_name): Handle dependent scope. + (cp_parser_parse_and_diagnose_invalid_type_name): Likewise. + (cp_parser_expression_statement): Suggest typename. + * error.c (dump_decl) [SCOPE_REF]: Print the type here. + (dump_expr) [SCOPE_REF]: Call it. + (dump_type) [UNBOUND_CLASS_TEMPLATE]: Check TFF_UNQUALIFIED_NAME. + * cxx-pretty-print.c (pp_cxx_unqualified_id): Print class template + args. + + PR c++/9381 + * decl2.c (build_memfn_type): Preserve attributes. + (cp_reconstruct_complex_type): Likewise. + (maybe_retrofit_in_chrg): Likewise. + * class.c (adjust_clone_args): Likewise. + * call.c (standard_conversion): Use build_memfn_type. + * pt.c (tsubst): Likewise. + * decl.c (build_ptrmem_type): Likewise + (check_function_type): Preserve attributes. + * tree.c (cp_build_type_attribute_variant): Propagate exception + specs on METHOD_TYPE, too. + (strip_typedefs): Preserve exception specs and attributes. + +2009-11-06 Andrew Pinski + + PR c++/41536 + * optimize.c (maybe_clone_body): Copy DECL_ATTRIBUTES and + DECL_DISREGARD_INLINE_LIMITS also. + +2009-11-06 Jakub Jelinek + + PR c++/41967 + * parser.c (cp_parser_omp_for_loop): After diagnosing not perfectly + nested loop and parsing statements, don't cp_parser_require }, instead + exit the loop if next token is CPP_EOF. + +2009-11-05 Jason Merrill + + PR c++/34180 + * method.c (do_build_copy_constructor): Don't drop cv-quals from + the field type. + + PR c++/7046 + * class.c (finish_struct): Store maximum_field_alignment in + TYPE_PRECISION. + * pt.c (instantiate_class_template): Set maximum_field_alignment. + + PR c++/34870 + * name-lookup.c (arg_assoc_class): Call complete_type. + * pt.c (instantiate_class_template): Call uses_template_parms + instead of dependent_type_p. + + PR c++/41703 + * pt.c (check_undeduced_parms): New subroutine of... + (more_specialized_fn): ...here. Undeduced template parms can make + a template less specialized than another. + +2009-11-04 Jason Merrill + + PR c++/39413 + * search.c (lookup_base): Don't complete_type (base). + + PR c++/35067 + * method.c (use_thunk): Check DECL_WEAK as well as + DECL_ONE_ONLY. + + PR c++/17365, DR 218 + * name-lookup.c (add_function): Ignore non-functions. + +2009-11-03 Jason Merrill + + PR c++/36959 + * decl2.c (cxx_callgraph_analyze_expr): Don't reference a function + just because a static variable in it is needed unless -frepo. + + PR c++/41876 + * parser.c (cp_parser_type_specifier_seq): Rename is_condition to + is_declaration. + (cp_parser_exception_declaration): Pass true. + (cp_parser_omp_for_loop): Likewise. + + PR c++/41927 + * typeck.c (build_x_binary_op): Don't do warn_parentheses + if we're in a SFINAE context. + + PR c++/41815 + * call.c (build_call_a): Strip cv-quals from rvalue result. + + PR c++/40944 + * call.c (initialize_reference): Add complain parm. + * typeck.c (convert_for_initialization): Pass it. + * decl.c (grok_reference_init): Likewise. + * cp-tree.h: Declare it. + + PR c++/40687 + * pt.c (do_auto_deduction): Diagnose inconsistent deduction. + +2009-11-02 Dodji Seketeli + + PR c++/37093 + * pt.c (check_valid_ptrmem_cst_expr): New function. + (convert_nontype_argument): Use it to output an error for + illegal pointer to member expressions used as template arguments. + +2009-11-02 Jason Merrill + + Restrict DR 757 change to C++0x mode. + * decl2.c (mark_used): Check cxx_dialect. + * decl.c (grokfndecl): Do check type linkage in C++98 mode. + (grokvardecl): Likewise. + * pt.c (check_instantiated_arg): Likewise. + +2009-11-02 Jakub Jelinek + + PR c++/41774 + * name-lookup.c (handle_namespace_attrs): Pass 1 as last argument to + push_visibility. + * parser.c (cp_parser_namespace_definition): Pass 1 as argument to + pop_visibility. + * rtti.c (push_abi_namespace): Pass 2 as last argument to + push_visibility. + (pop_abi_namespace): Pass 2 as argument to pop_visibility. + +2009-10-31 Jason Merrill + + * tree.c (cv_unqualified): New fn. + * cp-tree.h: Declare it. + * typeck.c (decay_conversion): Use it instead of TYPE_MAIN_VARIANT. + + * rtti.c (tinfo_name): Fix lengths for private case. + +2009-10-31 Jason Merrill + + PR c++/41754 + * call.c (compare_ics): Avoid bad union use when + comparing two ck_lists. + +2009-10-30 Jerry Quinn + + * mangle.c (mangle_type_string_for_rtti): Reapply 153734. + (needs_fake_anon): Likewise. + (write_name): Likewise. + (write_nested_name): Likewise. + * cp-tree.h (mangle_type_string_for_rtti): Likewise. + (get_anonymous_namespace): Likewise. + * name-lookup.c (get_anonymous_namespace_name): Likewise. + * rtti.c (tinfo_name): Likewise, with +1 in the second + build_string call fixed. + (tinfo_base_init): Likewise. + +2009-10-30 Jason Merrill + + Revert: + * decl.c (cp_fname_init): Correct build_string argument. + +2009-10-30 Jerry Quinn + + * mangle.c (mangle_type_string_for_rtti): Revert 153734. + (needs_fake_anon): Likewise. + (write_name): Likewise. + (write_nested_name): Likewise. + * cp-tree.h (mangle_type_string_for_rtti): Likewise. + (get_anonymous_namespace): Likewise. + * name-lookup.c (get_anonymous_namespace_name): Likewise. + * rtti.c (tinfo_name): Likewise. + (tinfo_base_init): Likewise. + +2009-10-30 Dodji Seketeli + + PR c++/41863 + * pt.c (iterative_hash_template_arg): articifial parms + don't have DECL_PARM_INDEX set. Do not hash it. + +2009-10-28 Jerry Quinn + + * mangle.c (mangle_type_string_for_rtti): Revert r149964. + (needs_fake_anon): Likewise. + (write_name): Likewise. + (write_nested_name): Likewise. + * cp-tree.h (mangle_type_string_for_rtti): Likewise. + (get_anonymous_namespace): Likewise. + * name-lookup.c (get_anonymous_namespace_name): Likewise. + * rtti.c (tinfo_name): Insert '*' in front of private names. + (tinfo_base_init): Use it. + +2009-10-28 Jason Merrill + + Core issue 812, 861 + * name-lookup.c (set_decl_namespace): Deal properly with inline + namespaces. + (qualified_lookup_using_namespace): Overhaul. + * pt.c (print_candidates): Handle getting an OVERLOAD. + +2009-10-28 Jason Merrill + + * decl.c (cp_fname_init): Correct build_string argument. + +2009-10-27 Jason Merrill + + Allow no-capture lambdas to convert to function pointer. + * semantics.c (maybe_add_lambda_conv_op): New. + * parser.c (cp_parser_lambda_expression): Call it. + (cp_parser_lambda_declarator_opt): Make op() static if + no captures. + * mangle.c (write_closure_type_name): Adjust. + * semantics.c (finish_this_expr): Adjust. + * decl.c (grok_op_properties): Allow it. + * call.c (build_user_type_conversion_1): Handle static conversion op. + (build_op_call): And op(). + +2009-10-26 Jakub Jelinek + + PR debug/41828 + * cp-lang.c (cxx_dwarf_name): Return NULL instead of + for anonymous aggregate names. + +2009-10-26 Jason Merrill + + PR c++/38796, Core issue 906 + * cp-tree.h (DECL_DEFAULTED_OUTSIDE_CLASS_P): New. + (DECL_DEFAULTED_IN_CLASS_P): New. + * class.c (user_provided_p): Non-static. + (check_methods): Use it. + (check_bases_and_members): Check defaulted fns. + (defaultable_fn_p): Move and rename to... + * method.c (defaultable_fn_check): ...this. + (defaulted_late_check): New. + * pt.c (tsubst_decl): Call it. + * decl2.c (grokfield): Adjust. + * decl.c (cp_finish_decl): Adjust. + (grok_special_member_properties): Use user_provided_p. + +2009-10-26 Dodji Seketeli + + PR c++/41785 + * pt.c (template_args_equal): Handle comparison of + an ARGUMENT_PACK_SELECT node with the arguments node it selects into. + * cp-tree.def: Fix a typo in the description of TYPE_PACK_EXPANSION. + +2009-10-26 Dodji Seketeli + + PR c++/41020 + * decl.c (decls_match): Use DECL_IS_BUILTIN instead of + DECL_BUILT_IN. + +2009-10-23 Dodji Seketeli + + PR c++/40808 + * mangle.c (write_template_args): Allow mangling of empty template + argument list. Updated function comments. + +2009-10-23 Jason Merrill + + * semantics.c (lambda_expr_this_capture): Use thisify_lambda_field. + + * semantics.c (outer_lambda_capture_p): New fn. + (thisify_lambda_field): Factor out... + (add_default_capture): ...from here. + (finish_id_expression): Use them. + + Core issue 899 + * call.c (add_function_candidate): Only permit explicit conversion + ops if copy ctor was called with a single argument. + + * call.c (initialize_reference): Tweak error message. + +2009-10-21 Jakub Jelinek + + * mangle.c (finish_mangling_get_identifier): Use + obstack_base (mangle_obstack) instead of name_base. + +2009-10-19 Jakub Jelinek + + * parser.c (cp_lexer_print_token, cp_parser_is_string_literal, + cp_parser_string_literal, cp_parser_primary_expression): Likewise. + (cp_lexer_get_preprocessor_token): Use C_LEX_STRING_JOIN instead + of C_LEX_RAW_STRINGS. + +2009-10-15 Jason Merrill + + PR c++/38888 + * error.c (dump_template_bindings): Wrap argument packs in {}. + + PR c++/38798 + * parser.c (CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS): New. + (cp_parser_type_specifier): Don't try to parse a class-specifier + or enum-specifier in that case. + (cp_parser_trailing_type_id): New. + (cp_parser_late_return_type_opt): Call it. + (cp_parser_type_id_1): Add is_trailing_return parm. + (cp_parser_type_specifier_seq): Likewise. + +2009-10-14 Jason Merrill + + PR c++/39866 + * call.c (print_z_candidates): Don't print deleted candidates. + (print_z_candidate): Note deleted candidates. + +2009-10-14 Larry Evans + + PR c++/40092 + * tree.c (cp_tree_equal): Add test for TEMPLATE_PARM_PARAMETER_PACK + equality. + +2009-10-12 Jason Merrill + + PR c++/37875 + * parser.c (cp_parser_decltype): Set greater_than_is_operator_p. + + PR c++/37766 + * pt.c (type_unification_real): Call convert_template_argument + for function default template arguments. + (check_default_tmpl_args): Suggest -std=c++0x when function default + template args seen in C++98 mode. + +2009-10-11 Jason Merrill + + PR c++/37204 + * typeck.c (build_reinterpret_cast_1): Handle rvalue refs + properly. + +2009-10-11 Richard Guenther + + * tree.c (cp_free_lang_data): Drop anonymous aggregate names. + +2009-10-08 Jason Merrill + + PR c++/36816 + * pt.c (maybe_adjust_types_for_deduction): Do rvalue ref adjustment + even when DEDUCE_EXACT. + + PR c++/37177 + * pt.c (resolve_nondeduced_context): New. + * cvt.c (convert_to_void): Call it. + * semantics.c (finish_decltype_type): Likewise. + * typeck.c (decay_conversion): Here too. + * pt.c (tsubst_decl): Don't clobber input_location. + Don't register a bad specialization. + +2009-10-07 Gabriel Dos Reis + + * cp-tree.h: Fix location of documentation for DECL_LANG_FLAG_7. + +2009-10-07 Jason Merrill + + PR c++/39863 + * pt.c (tsubst_pack_expansion): Don't do anything now if we + have incomplete packs of different lengths. + + PR c++/41038 + * tree.c (build_qualified_name): Call convert_from_reference. + +2009-10-06 Jason Merrill + + Fix lookup of initialized captures in unevaluated context. + * cp-tree.h (DECL_NORMAL_CAPTURE_P): New. + * name-lookup.c (qualify_lookup): Check it. + * parser.c (cp_parser_lambda_introducer): Pass explicit_init_p + to add_capture. + * semantics.c (add_capture): Set DECL_NORMAL_CAPTURE_P + on captures without explicit init. + (add_default_capture): Pass explicit_init_p. + + Fix capture by copy of types with explicit copy constructor. + * cp-tree.h (TARGET_EXPR_DIRECT_INIT_P): New. + (DIRECT_INIT_EXPR_P): New. + * typeck.c (convert_for_initialization): Just return if + DIRECT_INIT_EXPR_P. + * semantics.c (build_lambda_object): Use + TARGET_EXPR_DIRECT_INIT_P for normal captures. + +2009-10-05 Jason Merrill + + * parser.c: Mark lambda_scope and lambda_count for PCH. + +2009-10-03 Jason Merrill + + PR c++/41553 + * parser.c (cp_parser_lambda_introducer): Avoid infinite loop on + parse error. + +2009-10-02 Jason Merrill + + * mangle.c (write_unnamed_type_name): Implement. + (local_class_index): Split out from... + (discriminator_for_local_entity): ...here. + (nested_anon_class_index): New. + * cp-tree.h (TYPE_FUNCTION_SCOPE_P): New. + +2009-10-02 Janis Johnson + + * call.c (convert_arg_to_ellipsis): Avoid promoting decimal32 + to double. + +2009-10-01 Jason Merrill + + * parser.c (cp_parser_lambda_expression): Compute visibility. + (no_linkage_lambda_type_p): Remove. + * cp-tree.h: Remove declaration. + * tree.c (no_linkage_check): Don't call it. Don't check template + args. Don't check TREE_PUBLIC Types. + +2009-10-01 Gabriel Dos Reis + Jason Merrill + + * decl.c (grokdeclarator): Set constexprness before announcing + friendship. + +2009-10-01 Gabriel Dos Reis + + * decl.c (record_builtin_java_type): Undo unintended change. + (cxx_init_decl_processing): Likewise. + +2009-10-01 Jason Merrill + + * pt.c (register_specialization): Push DECL_SOURCE_LOCATION to the + clones. + + * decl.c (grok_special_member_properties): Only adjust + TYPE_HAS_COMPLEX_* if the function is defaulted in the class body. + (cp_finish_decl): Push DECL_DELETED_FN/DECL_DEFAULTED_FN to the + clones. + +2009-09-30 Gabriel Dos Reis + + * decl.c (check_for_uninitialized_const_var): Check constexpr + variables too. + (grokdeclarator): Handle `constexpr'. + (check_tag_decl): Reject `constexpr'. + (check_function_type): Check constexpr functions. + * cp-tree.h (ds_constexpr): New cp_decl_spec enumerator. + (CLASSTYPE_LITERAL_P): New. + (lang_type_class::is_literal): New. + (lang_type_class::dummy): Adjust width. + (literal_type_p): Declare. + * parser.c (cp_parser_check_decl_spec): Print it. + (cp_parser_decl_specifier_seq): Accept "constexpr". + * semantics.c (validate_constexpr_fundecl): Define. + (literal_type_p): Define. + +2009-09-30 Jason Merrill + + * semantics.c (lambda_expr_this_capture): Fix default capture + of explicit capture of 'this'. + +2009-09-30 Jason Merrill + + * parser.c (cp_parser_lambda_expression): Don't add __ to __this. + +2009-09-30 Jason Merrill + + * cp-tree.h (LANG_DECL_U2_CHECK): Check LANG_DECL_HAS_MIN. + +2009-09-29 John Freeman + Jason Merrill + + Add support for lambda-expressions as per N2927. + * cp-tree.def (VEC_INIT_EXPR, LAMBDA_EXPR): New. + * cp-tree.h (LAMBDA_TYPE_P, LAMBDA_FUNCTION_P): New. + (LAMBDA_EXPR_DEFAULT_CAPTURE_MODE): New. + (LAMBDA_EXPR_DEFAULT_CAPTURE_LIST): New. + (LAMBDA_EXPR_THIS_CAPTURE, LAMBDA_EXPR_CAPTURES_THIS_P): New. + (LAMBDA_EXPR_MUTABLE_P, LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): New. + (LAMBDA_EXPR_RETURN_TYPE, LAMBDA_EXPR_LOCATION): New. + (LAMBDA_EXPR_EXTRA_SCOPE, LAMBDA_EXPR_DISCRIMINATOR): New. + (struct tree_lambda_expr): New. + (union lang_tree_node): Add lambda_expression. + (struct lang_type_class): Add lazy_move_ctor flag, lambda_expr field. + (CLASSTYPE_LAZY_MOVE_CTOR, CLASSTYPE_LAMBDA_EXPR): New. + (LAMBDA_TYPE_EXTRA_SCOPE, VEC_INIT_EXPR_SLOT): New. + (VEC_INIT_EXPR_INIT, DECLTYPE_FOR_LAMBDA_CAPTURE): New. + (DECLTYPE_FOR_LAMBDA_RETURN): New. + (enum special_function_kind): Add sfk_move_constructor. + (LAMBDANAME_PREFIX, LAMBDANAME_FORMAT, LAMBDANAME_P): New. + * parser.c (cp_parser_lambda_expression, cp_parser_lambda_introducer) + (cp_parser_lambda_declarator_opt, cp_parser_lambda_body): New. + (start_lambda_scope, record_lambda_scope, finish_lambda_scope): New. + (no_linkage_lambda_type_p): New. + (cp_parser_primary_expression): Recognize lambda expression. + (cp_parser_init_declarator): Note lambda scope. + (cp_parser_function_definition_after_declarator): Likewise. + (cp_parser_late_parsing_default_args): Likewise. + (cp_parser_skip_to_closing_parenthesis): Skip to end of lambda capture + lists, too. + (cp_parser_parameter_declaration): Don't defer lambda default args. + * semantics.c (finish_non_static_data_member, finish_id_expression): + Handle default capture for lambda expressions. + (finish_this_expr): Handle 'this' keyword inside of lambda expressions. + (outer_automatic_var_p): New. + (finish_decltype_type): Handle decltypes within lambda expressions. + (classtype_has_nothrow_assign_or_copy_p): Synthesized move constructor. + (build_lambda_expr, build_lambda_object, begin_lambda_type) + (lambda_return_type, lambda_capture_field_type, apply_lambda_return_type) + (capture_decltype, add_capture, add_default_capture) + (lambda_expr_this_capture): New. + * mangle.c (write_unnamed_type_name): New. Incomplete. + (write_closure_type_name): New. + (write_unqualified_name): Recognize unnamed, closure types. + (write_type): Do not write decltypes from lambda expressions. + (decl_mangling_context): New. + (write_name): Use it. Handle PARM_DECL scope. + (write_prefix): Likewise. Handle VAR_DECL/FIELD_DECL scope. + (write_compact_number): Factor out from... + (write_expression, write_template_param): ...here. + (discriminator_for_local_entity): Recognize lambdas. + (write_local_name): Handle PARM_DECL scope. + * typeck.c (structural_comptypes): Compare decltypes from lambda + expressions. + (check_return_expr): Deduce lambda return type from multiple return + statements. + * class.c (add_implicitly_declared_members): Add lazy move constructor + for lambda types. + (check_bases_and_members): Delete default constructor and assignment + operator for lambda types. + (maybe_note_name_used_in_class): Do not confuse lambda expression with + defining a class. + * decl.c (reshape_init_r): Array copy. + (grokfndecl): Synthesized move constructor. + (cp_tree_node_structure): Lambda expression. + * method.c (use_thunk): Synthesized move constructor. + (do_build_copy_constructor): Likewise. + (locate_copy): Likewise. + (implicitly_declare_fn): Likewise. + * cp-objcp-common.c (cp_tree_size): Handle LAMBDA_EXPR. + * error.c (dump_aggr_type): Recognize lambda type. + (dump_function_decl): Recognize lambda function. + (function_category): Likewise. + (dump_function_name): Hide lambda name. + * tree.c (build_array_copy, move): New. + (special_function_p): Synthesized move constructor. + (no_linkage_check): Handle lambdas. + * search.c (lookup_fnfields_1): Synthesized move constructor. + * cp-gimplify.c (cp_gimplify_init_expr, cp_gimplify_expr): + Handle VEC_INIT_EXPR. + * typeck2.c (digest_init_r): Array copy. + * pt.c (get_template_info): Don't touch typedefs. + (instantiate_decl): Don't resubstitute artificial decls. + (tsubst_decl, tsubst, tsubst_copy_and_build): Handle lambdas. + (lookup_template_class): Don't fall back on name lookup. + * name-lookup.c (make_lambda_name): New. + (pushdecl_class_level): Handle default capture for lambda expressions. + (qualify_lookup): Handle decltypes within lambda expressions. + (pushtag): Handle ts_within_enclosing_non_class in function scope. + +2009-09-28 Janis Johnson + + * mangle.c (write_builtin_type): Support decimal float types. + +2009-09-28 Richard Henderson + + * cp-objcp-common.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New. + +2009-09-24 Jakub Jelinek + + * method.c (make_thunk, make_alias_for): Don't set + DECL_NO_STATIC_CHAIN. + * decl.c (builtin_function_1, grokfndecl): Likewise. + * lex.c (build_lang_decl): Likewise. + +2009-09-23 Dodji Seketeli + + PR debug/41065 + * decl.c (cp_finish_decl): Record the types used by the global + variable declaration we've just parsed. + +2009-09-22 Dodji Seketeli + + * cp-lang.c (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P, + LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P, + LANG_HOOKS_GET_GENERIC_FUNCTION_DECL): Initialize these + hooks for the c++ FE. + * cp-tree.h (function_parameter_pack_p, get_function_template_decl, + function_parameter_expanded_from_pack_p): Declare ... + * pt.c (function_parameter_pack_p, get_function_template_decl, + function_parameter_expanded_from_pack_p): ... new hooks. + (get_template_info): Make this more robust. + (template_args_variadic_p, make_ith_pack_parameter_name): Add a new + line between comment and function. + (get_template_argument_pack_elems): Fix comment. + (tsubst_decl): Arguments of function parameter packs are not + parameter packs themselves. + +2009-09-21 Jason Merrill + + PR c++/41421 + * tree.c (trivial_type_p): Fix logic. + +2009-09-21 Jason Merrill + + * name-lookup.c (push_class_level_binding): Sanity check. + +2009-09-18 Jason Merrill + + * decl2.c (determine_visibility): Make anonymous types internal. + (mark_used): Complain about types without linkage used in + decls with internal linkage. + (vague_linkage_fn_p): Split out from... + * decl.c (maybe_commonize_var): ...here. + (grokdeclarator): Adjust linkage when a typedef gives linkage name. + * tree.c (no_linkage_check): Check the enclosing class and template + arguments. + + * cp-tree.h (TYPE_NAMESPACE_SCOPE_P): New. + + * pt.c (get_pattern_parm): New. + (listify): Split out from... + (listify_autos): ...here. + (unify): Deduce std::initializer_list for T. + * call.c (build_over_call): Warn about it. + +2009-09-17 Andrew Pinski + + PR c++/39365 + * typeck.c (cp_build_unary_op): Check TREE_CODE for bools instead of + using same_type_p. + (convert_for_assignment): Likewise. + * cvt.c (type_promotes_to): Likewise. + +2009-09-14 Richard Henderson + Jakub Jelinek + + * cp-tree.h (finish_asm_stmt): Update decl. + * parser.c (cp_parser_asm_definition): Parse asm goto. + (cp_parser_asm_label_list): New. + * pt.c (tsubst_copy_asm_operands): Don't recurse on labels. + (tsubst_expr): Handle asm labels. + * semantics.c (finish_asm_stmt): Add and use labels parameter. + +2009-09-14 Richard Henderson + + * except.c (init_exception_processing): Don't call + default_init_unwind_resume_libfunc. + (cp_protect_cleanup_actions): Return the decl to call. + (build_exc_ptr): Use __builtin_eh_pointer. + * optimize.c (clone_body): Set eh_lp_nr, not eh_region. + +2009-09-13 Richard Guenther + Rafael Avila de Espindola + + * except.c (init_exception_processing): Do not set + lang_eh_runtime_type. + (choose_personality_routine): Do not set eh_personality_decl, + set pragma_java_exceptions. + * cp-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. + (LANG_HOOKS_EH_PERSONALITY): Likewise. + (cp_eh_personality_decl): New. + (cp_eh_personality): Likewise. + * Make-lang.in (cp-lang.o): Add $(EXPR_H) and $(EXCEPT_H) + dependencies. + +2009-09-13 Wei Guozhi + + PR c++/3187 + * cp/optimize.c (build_delete_destructor_body): New function. + (maybe_clone_body): Call build_delete_destructor_body for + deleting destructor. + 2009-09-10 Jason Merrill * repo.c (extract_string, get_base_filename, init_repo): constify. @@ -22,7 +725,7 @@ * decl.c (build_init_list_var_init): Check return value of perform_implicit_conversion. -2009-09-03 Jason Merrill +2009-09-08 Jason Merrill * class.c (currently_open_class): Make sure we're dealing with the main variant.