diff options
Diffstat (limited to 'gcc/cp/ChangeLog')
-rw-r--r-- | gcc/cp/ChangeLog | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7bd5f934812..11be689a536 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,257 @@ +2009-05-28 Dodji Seketeli <dodji@redhat.com> + + PR c++/39754 + * cp-tree.h (canonical_type_variant): Remove this function declaration. + (strip_typedefs): New function declaration. + * tree.c (strip_typedefs): New function definition. + (canonical_type_variant): Remove function definition. + * cvt.c (convert_from_reference): No need to use + canonical_type_variant. + * typeck.c (cp_build_indirect_ref): Likewise. + * error.c (dump_template_bindings): Use strip_typedefs instead of + canonical_type_variant. + * pt.c (convert_template_argument, unify): Likewise. + * mangle.c (canonicalize_for_substitution): Don't use + canonical_type_variant. + +2009-05-27 Jason Merrill <jason@redhat.com> + + * call.c (implicit_conversion): Handle conversion from + initializer-list to scalar. + (convert_like_real): Likewise. Avoid crashing on list + initialization with bad conversions. + (can_convert): Use LOOKUP_EXPLICIT. + (can_convert_arg_bad): Add flags parm. + * cp-tree.h: Adjust. + * typeck.c (convert_for_assignment): Pass flags. + +2009-05-27 Ian Lance Taylor <iant@google.com> + + * Make-lang.in (g++$(exeext)): Change $(COMPILER) to $(LINKER). + (cc1plus-dummy$(exeext), cc1plus$(exeext)): Likewise. + +2009-05-26 Ian Lance Taylor <iant@google.com> + + * Make-lang.in (g++spec.o): Use $(COMPILER). + (g++$(exeext), cc1plus-dummy$(exeext)): Likewise. + (cc1plus$(exeext)): Likewise. + +2009-05-26 Dodji Seketeli <dodji@redhat.com> + + PR c++/40007 + * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): Remove this accessor. + (TI_TYPEDEFS_NEEDING_ACCESS_CHECKING): New accessor. + (get_types_needing_access_check): Declare new entry point. + * pt.c (append_type_to_template_for_access_check_1, + get_types_needing_access_check): New functions. + (perform_typedefs_access_check): Accept FUNCTION_DECLs and + RECORD_TYPEs rather than TEMPLATE_DECLs. Use the new + get_types_needing_access_check, no more + MEMBER_TYPES_NEEDING_ACCESS_CHECK. + (instantiate_class_template): Set input_location to the source + location of the most specialized template definition. + Perform access check using the RECORD_TYPE of the template, not its + associated most generic TEMPLATE_DECL. + (append_type_to_template_for_access_check): Augment function + comments. Use the new get_types_needing_access_check, not + MEMBER_TYPE_NEEDING_ACCESS_CHECK. Use the new + append_type_to_template_for_access_check_1 subroutine. + +2009-05-22 Jason Merrill <jason@redhat.com> + + PR c++/38064 + * typeck.c (cp_build_binary_op): Allow ENUMERAL_TYPE in + arithmetic comparisons. + (cp_common_type): Handle scoped enums. + + * call.c (promoted_arithmetic_type_p): Don't use INTEGRAL_TYPE_P. + (add_builtin_candidate, add_builtin_candidates): Likewise. + (convert_like_real): Likewise. + * class.c (check_bitfield_decl): Likewise. + * decl.c (check_static_variable_definition): Likewise. + (compute_array_index_type): Likewise. + * decl2.c (grokbitfield): Likewise. + * init.c (build_new_1): Likewise. + * pt.c (convert_nontype_argument): Likewise. + (current_instantiation): Likewise. + * tree.c (pod_type_p): Likewise. + * typeck.c (build_static_cast_1): Likewise. + (build_reinterpret_cast_1): Likewise. + +2009-05-22 Richard Guenther <rguenther@suse.de> + + PR middle-end/38964 + * init.c (avoid_placement_new_aliasing): Remove. + (build_new_1): Do not call it. + +2009-05-22 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (decl_needed_p): Consider dllexport'd functions needed. + * semantics.c (expand_or_defer_fn): Similarly. + +2009-05-20 Ian Lance Taylor <iant@google.com> + + * parser.c (cp_parser_postfix_expression): Change args to a vec. + Release it when done. + (tree_vector): Define typedef. Define VEC functions. + (cp_parser_parenthesized_expression_list): Change return type to + vec. Change all callers. + (cp_parser_new_expression): Change placement and initializer to + vecs. Release them when done. + (cp_parser_new_placement): Change return type to vec. Change all + callers. + (cp_parser_new_initializer): Likewise. + * typeck.c (build_function_call_vec): Just call + cp_build_function_call_vec. + (cp_build_function_call): Just build a vec and call + cp_build_function_call_vec. + (cp_build_function_call_vec): New function based on old + cp_build_function_call. + (convert_arguments): Remove nargs and argarray parameters. Change + values to a vec. Change caller. + (build_x_compound_expr_from_vec): New function. + (cp_build_modify_expr): Build vec to pass to + build_special_member_call. + * call.c (struct z_candidate): Add first_arg field. Change args + field to vec. + (convert_class_to_reference): Handle first argument separately. + (add_candidate): Add first_arg parameter. Change args parameter + to vec. Change all callers. + (add_function_candidate, add_conv_candidate): Likewise. + (add_template_candidate_real, add_template_candidate): Likewise. + (add_template_conv_candidate): Likewise. + (build_user_type_conversion_1): Handle first argument separately. + (resolve_args): Change return type and parameter type to vecs. + Change all callers. + (perform_overload_resolution): Change args parameter to vec. + Change all callers. + (build_new_function_call, build_operator_new_call): Likewise. + (add_candidates): Likewise. + (build_op_call): New globally visible function, built from and + replacing static function build_object_call. + (build_new_op): Don't handle CALL_EXPR. Build vec, not tree_list, + of arguments. + (build_op_delete_call): Build vec to pass to + cp_build_function_call_vec. + (build_temp): Build vec to pass to build_special_member_call. + (convert_like_real): Likewise. + (perform_direct_initialization_if_possible): Likewise. + (build_over_call): Handle first_arg field. Use build_call_array + rather than build_call_list. + (build_special_member_call): Change args parameter to vec. Change + all callers. + (build_new_method_call): Likewise. + * init.c (expand_default_init): Change parms to vec. + (build_raw_new_expr): Change placement and init to vecs. Change + all callers. + (build_new_1, build_new): Likewise. + * class.c (resolve_address_of_overloaded_function): Build array to + pass to fn_type_unification. + * pt.c (tsubst_copy_and_build): For NEW_EXPR build vecs to pass to + build_new. For CALL_EXPR create a vec rather than a tree_list; + expand a pack if necessary. + (fn_type_unification): Change args parameter to const tree *. Add + nargs parameter. Change all callers. + (type_unification_real): Likewise. + (unify): Build array to pass to type_unification_real. + (get_bindings): Build array to pass to fn_type_unification. + (any_type_dependent_arguments_p): Change args parameter to a vec. + Change all callers. + (make_args_non_dependent): Renamed from build_non_dependent_args. + Change return type to void. Change parameter type to vec. Change + all callers. + (do_auto_deduction): Pass an array to type_unification_real. + * semantics.c (perform_koenig_lookup): Change args to vec. Change + all callers. + (finish_call_expr): Change args to vec. Change all callers. Call + build_op_call instead of passing CALL_EXPR to build_new_op. + (cxx_omp_create_clause_info): Allocate vec to pass to + build_special_member_call. + * decl2.c (build_offset_ref_call_from_tree): Change args parameter + to vec. Change all callers. + * name-lookup.c (lookup_function_nonclass): Likewise. + (struct arg_lookup): Change args to vec. + (arg_assoc_namespace): Handle args as a vec. + (arg_assoc_args_vec): New static function. + (lookup_arg_dependent): Change args parameter to vec. Change all + callers. + * method.c (do_build_assign_ref): Allocate vec to pass to + build_special_member_call. + * except.c (build_throw): Likewise. + * typeck2.c (build_functional_cast): Likewise. + * cvt.c (ocp_convert): Likewise. + * tree.c (build_min_non_dep_call_vec): Change last parameter to + vec. Change all callers. + * cp-tree.h: Update declarations. + * name-lookup.h: Update declarations. + +2009-05-20 Sandra Loosemore <sandra@codesourcery.com> + + * typeck.c (default_conversion): Check targetm.promoted_type. + * decl.c (grokdeclarator): Check targetm.invalid_return_type. + (grokparms): Check targetm.invalid_parameter_type. + * cvt.c (ocp_convert): Check targetm.convert_to_type. + (build_expr_type_conversion): Check targetm.promoted_type. + +2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com> + + * typeck.c (build_binary_op): Allow % on integal vectors. + +2009-05-18 Jason Merrill <jason@redhat.com> + + Implement explicit conversions ops as specified in N2437. + * decl.c (grokdeclarator): Handle explicit conversion ops. + (check_initializer): Pass flags to store_init_value. + * decl2.c (maybe_emit_vtables): Likewise. + * init.c (expand_aggr_init_1): Likewise. + * call.c (convert_class_to_reference): Take flags parm, + check DECL_NONCONVERTING_P. + (build_user_type_conversion_1): Check DECL_NONCONVERTING_P. + (add_builtin_candidates): Simplify getting type of conversion. + (build_object_call): Likewise. Check DECL_NONCONVERTING_P. + (implicit_conversion): Pass through LOOKUP_ONLYCONVERTING. + (reference_binding): Take flags parm. Direct-initialize copy parm. + (add_function_candidate): Direct-initialize the copy parm. + (add_conv_candidate): Use LOOKUP_IMPLICIT, not LOOKUP_NORMAL. + (build_builtin_candidate): Add LOOKUP_ONLYCONVERTING. + (conditional_conversion): Likewise. + (convert_like_real): Only complain about DECL_NONCONVERTING_P + constructors. + (perform_implicit_conversion_flags): Add flags parm to + perform_implicit_conversion. Improve diagnostics. + * cp-tree.h (LOOKUP_IMPLICIT): New macro. + (LOOKUP_COPY_PARM): New bit macro. + * cvt.c (build_expr_type_conversion): Check DECL_NONCONVERTING_P. + * typeck.c (convert_for_assignment): Take flags parm, pass it to + perform_implicit_conversion_flags. + (cp_build_modify_expr): Pass flags to convert_for_assignment. + (convert_for_initialization): Likewise. + * typeck2.c (store_init_value): Take flags parm, pass to + digest_init_flags. + (digest_init_flags): Add flags parm to digest_init. + (digest_init_r): Take flags parm, pass to convert_for_initialization. + (process_init_constructor_array): Pass it. + (process_init_constructor_record): Likewise. + (process_init_constructor_union): Likewise. + +2009-05-16 Jason Merrill <jason@redhat.com> + + PR c++/40139 + * pt.c (tsubst_qualified_id): Retain the type if we aren't dealing + with a dependent type. Actually look up the destructor. + * semantics.c (finish_id_expression): Fix logic. + (finish_qualified_id_expr): Don't try to use 'this' if we aren't in + a function. + * typeck.c (build_x_unary_op): Diagnose taking the address of a + constructor or destructor. + * tree.c (get_first_fn): Handle OFFSET_REF. + +2009-05-17 Joseph Myers <joseph@codesourcery.com> + + * tree.c (cxx_printable_name_internal): Allow consecutive + translated and untranslated cached copies of the name of the + current function. + 2009-05-15 Ian Lance Taylor <iant@google.com> * cp-tree.h (enum cp_lvalue_kind_flags): Rename from |