X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=19e751d5d600a93cd5434382169cba0ec10158c5;hb=62ed126e6a4f6b95a0986b8ae5db9cee9f32a83b;hp=520262e21fe0f999beeaec1b99a1a6ddc1237cc3;hpb=507ecda4bbc12ebf473af893ac397b0ca0b24b0e;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 520262e21fe..19e751d5d60 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,274 @@ +2009-12-11 Dodji Seketeli + + PR c++/42251 + * pt.c (convert_template_argument): Avoid missing folding of SCOPE_REFs. + +2009-12-10 Jakub Jelinek + + PR c++/42317 + * decl2.c (cp_write_global_declarations): Clear DECL_EXTERNAL + also on all other functions in the same comdat group. + * optimize.c (maybe_clone_body): Also optimize virtual implicit + dtors. For virtual comdat dtors tell cgraph that base and deleting + dtor are in the same comdat group. + +2009-12-04 Jason Merrill + + PR c++/42010 + * cp-tree.h (DECL_DISCRIMINATOR_SET_P): New. + * mangle.c (discriminator_for_local_entity): Check it. + + PR c++/42277 + * semantics.c (finish_decltype_type): Defer handling of decltype + of a non-dependent COMPONENT_REF in a template. + +2009-12-04 Dodji Seketeli + + PR c++/42218 + * cxx-pretty-print.c (pp_cxx_unqualified_id): Print only innermost + template arguments. + +2009-12-03 Jason Merrill + + PR c++/41611 + * decl2.c (get_guard): Don't use the same comdat group as the decl. + + PR c++/42266 + * cvt.c (convert_from_reference): Do nothing if TREE_TYPE is null. + +2009-12-03 Dodji Seketeli + + PR c++/42217 + * class.c (remove_zero_width_bit_fields): The width of the bit field is + in DECL_SIZE, not in DECL_INITIAL. + +2009-12-03 Jakub Jelinek + + PR c++/42256 + * optimize.c (maybe_clone_body): Call emit_associated_thunks + after expand_or_defer_fn_1. + +2009-12-02 Taras Glek + + * parser.c (cp_parser_class_specifier): Back out my previous change. + * semantics.c (begin_class_definition): Back out my previous change. + +2009-12-02 Paolo Bonzini + Shujing Zhao + + PR c++/29917 + * call.c (op_error): Accept a boolean to indicate no match/ambiguous + match, instead of a string. Callers adjusted. + + PR c++/34836 + * cp-tree.h (readonly_error_kind): New type. + (readonly_error): Adjust prototype with new argument. + * typeck2.c (readonly_error): Accept readonly_error_kind as argument + and add macro ERROR_FOR_ASSIGNMENT to emit diagnostics. + * semantics.c (finish_asm_stmt): Adjust readonly_error call. + * typeck.c (cp_build_unary_op, cp_build_modify_expr): Likewise. + + * decl.c (grokparms, grok_op_properties): Put the diagnostics in full + sentences for easy translation and wrap the diagnostics into G_() when + needed. + (create_array_type_for_decl): Likewise. + * pt.c (tsubst): Likewise. + * typeck2.c (cp_build_unary_op): Wrap diagnostic into _(). + * rtti.c (build_dynamic_cast_1): Likewise. + * Make-lang.in: Adjust. + +2009-12-02 Jakub Jelinek + + * g++spec.c (lang_specific_driver): Remove unused saw_verbose_flag + variable. + * pt.c (tsubst_pack_expansion): Remove unused first_arg_pack variable. + * init.c (build_vec_init): Remove unused size variable. + * typeck2.c (check_narrowing): Remove unused was_decl variable. + * decl.c (poplevel): Remove unused tmp and real_functionbody + variables. + (decls_match): Remove unused tree_name variable. + (start_decl): Remove unused type variable. + * parser.c (cp_parser_type_parameter): Remove unused parameter_list + variable. + (cp_parser_template_id, cp_parser_explicit_instantiation, + cp_parser_declarator): Remove unused token variable. + (cp_parser_simple_type_specifier): Remove unused id variable. + (cp_parser_parameter_declaration): Remove unused + greater_than_is_operator_p variable. + (cp_parser_check_declarator_template_parameters): Remove unused + member variable. + (c_parse_file): Remove unused error_occurred variable. + * cp-gimplify.c (cp_gimplify_init_expr): Remove unused slot variable. + * typeck.c (cp_build_function_call_vec): Remove unused name variable. + * class.c (resolve_address_of_overloaded_function): Remove unused + is_reference variable. + (build_rtti_vtbl_entries): Remove unused basetype variable. + * mangle.c (write_template_param): Remove unused parm_level and + parm_type variables. + +2009-12-01 Taras Glek + + * parser.c (cp_parser_class_specifier): Set class location to that + of IDENTIFIER_NODE instead of '{' when possible. + +2009-12-01 Taras Glek + + * semantics.c (begin_class_definition): Do not overide locations with less precise ones. + +2009-12-01 Jason Merrill + + PR c++/41611 + * decl2.c (get_guard): Copy DECL_COMDAT. + (comdat_linkage): Set DECL_COMDAT unconditionally. + +2009-12-01 Jakub Jelinek + + PR c++/3187 + * optimize.c (cdtor_comdat_group): New function. + (maybe_clone_body): Also optimize DECL_COMDAT base/complete cdtors + and in that case put also the deleting dtor in the same comdat group + as base and complete dtor if dtor is virtual. + +2009-11-30 Paolo Carlini + + PR c++/40371 + * call.c (add_template_candidate_real): Early return NULL if + the arglist length is smaller than skip_without_in_chrg; tidy. + +2009-11-30 Dodji Seketeli + + PR c++/42069 + * pt.c (convert_template_argument): Strip typedefs from SCOPE_REFs. + +2009-11-29 Dodji Seketeli + + PR c++/36408 + * semantics.c (empty_expr_stmt_p): Handle void_zero_node and fix + bad indentation. + * pt.c (tsubst_copy_and_build): Fix typo. + +2009-11-29 Jan Hubicka + + * optimize.c (maybe_clone_body): Emit thunks associated to alias. + * Make-lang.in (method.o): Add dependency on gimple.h. + * method.c: Include gimple.h + (make_alias_for_thunk): Use same body alias instead of assemble_alias. + (use_thunk): Drop codegen; use cgraph_add_thunk; gimplify + generic thunks. + * semantics.c (expand_or_defer_fn): Emit associated thunks. + +2009-11-28 Dodji Seketeli + + PR c++/36408 + * cp-tree.h (empty_expr_stmt_p): Declare ... + * semantics.c (empty_expr_stmt_p): ... this. + * pt.c (tsubst_copy_and_build) : Use it. + +2009-11-27 Paolo Carlini + + PR c++/38656 + * cxx-pretty-print.c (pp_cxx_expression): Handle TEMPLATE_ID_EXPR. + +2009-11-27 Paolo Carlini + + PR c++/35112 + * pt.c (print_overloaded_functions): New. + (print_candidates): Call the latter. + * parser.c (cp_parser_class_name): Do not duplicate the diagnostics + after the cp_parser_lookup_name call. + +2009-11-26 Jason Merrill + + PR c++/42026, DR 239 + * parser.c (cp_parser_postfix_expression): A local extern also + prevents arg-dependent lookup. + +2009-11-26 Gabriel Dos Reis + + * decl.c (grokdeclarator): Remove period at end of diagnosic message. + +2009-11-25 Jason Merrill + + PR c++/10690 + * rtti.c (get_tinfo_decl_dynamic): Call resolve_nondeduced_context. + +2009-11-24 Jason Merrill + + PR c++/42137 + * parser.c (cp_parser_mem_initializer_id): Pass typename_type to + cp_parser_class_name. + (cp_parser_unqualified_id): Same, rather than class_type. + + PR c++/11764 + * parser.c (cp_parser_expression_statement): Give helpful error + for constructor name used as type. + + * pt.c (determine_specialization): Give helpful error about missing + "template<>". + +2009-11-23 Jakub Jelinek + + PR middle-end/42095 + * tree.c: Include cgraph.h. + (cp_fix_function_decl_p): Don't return true for same_body aliases. + * Make-lang.in (cp/tree.o): Depend on $(CGRAPH_H). + +2009-11-23 Dodji Seketeli + + PR c++/14777 + * cp-tree.def : Declare new kind of tree + node. + * cp-tree.h (struct tree_template_info, + struct qualified_typedef_usage_s): New. + (cp_tree_node_structure_enum): add TS_CP_TEMPLATE_INFO. + (union lang_tree_node): Add template_info. + (TI_TEMPLATE, TI_ARGS, TI_TYPEDEFS_NEEDING_ACCESS_CHECKING): + Adjust. + (build_template_info): Declare. + (get_types_needing_access_check): Adjust return type. + (add_typedef_to_current_template_for_access_check): Declare. + * cp-objcp-common.c (cp_tree_size): Handle TEMPLATE_INFO. + * semantics.c (add_typedef_to_current_template_for_access_check): + Split from ... + (check_accessibility_of_qualified_id): ... here. + * decl.c (make_typename_type): Use it. + * pt.c (build_template_info): Define. + (check_explicit_specialization, find_parameter_packs_r, + push_template_decl_real, lookup_template_class, + for_each_template_parm_r, tsubst_decl, tsubst): Use + build_template_info. + (get_types_needing_access_check): Adjust return type. + (append_type_to_template_for_access_check_1): Record the + location of the usage point of the typedef. Adjust to TEMPLATE_INFO. + (append_type_to_template_for_access_check): Add new location + parameter. Pass it to append_type_to_template_for_access_check_1. + Adjust to TEMPLATE_INFO. + (perform_typedefs_access_check): Temporarily set input_location to + the usage point of the typedef we are checking access for. Adjust + to new TEMPLATE_INFO tree node. + * tree.c (bind_template_template_parm): Use build_template_info. + * call.c (add_template_candidate_real): Likewise. + * decl.c (grokfndecl): Likewise. + (cp_tree_node_structure): Handle TEMPLATE_INFO. + +2009-11-20 Jason Merrill + + PR c++/9050, DR 147, DR 318 + * parser.c (cp_parser_lookup_name): If the name matches the explicit + class scope, we're naming the constructor. + (cp_parser_constructor_declarator_p): Just use cp_parser_unqualified_id + if we have a nested-name-specifier. + (cp_parser_direct_declarator): Handle getting an overload set as a + constructor declarator. + (cp_parser_unqualified_id): Avoid looking up the constructor when + naming the destructor. + (cp_parser_diagnose_invalid_type_name): Give good + diagnostic for improper use of constructor as template. + * typeck.c (finish_class_member_access_expr): Give good diagnostic + about calling constructor. + + * error.c (dump_aggr_type): Don't print A::A for injected-class-name. + 2009-11-20 Simon Martin PR c++/38646