cgraph.h: Update copyrights;
[gcc.git] / gcc / cp / ChangeLog
index 69677aea99ad4abd8dd7a01512f1ff0584575804..a00d7815b61f9ba2bf34bb89af8a822ece26611b 100644 (file)
@@ -1,3 +1,252 @@
+2012-04-14  Jan Hubicka  <jh@suse.cz>
+
+       * tree.c: Update field referenced for new cgraph/varpool layout.
+       * decl2.c: Likewise.
+
+2012-04-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52824
+       * pt.c (any_pack_expanson_args_p): New.
+       (coerce_template_parms): Use it.
+
+       PR c++/52905
+       * call.c (joust): Handle comparing list and non-list ctors.
+
+       PR c++/52915
+       * decl2.c (finish_anon_union): Use cp_finish_decl.
+       * error.c (dump_function_name): Avoid showing anonymous "name".
+
+2012-04-11  Fabien Chêne  <fabien@gcc.gnu.org>
+
+       PR c++/52465
+       * parser.c (cp_parser_class_name): Call strip_using_decl and
+       return the target decl.
+       * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
+       to be stripped is NULL_TREE.
+       (qualify_lookup): Call strip_using_decl and perform some checks on
+       the target decl.
+
+2012-04-11  Jason Merrill  <jason@redhat.com>
+
+       PR debug/45088
+       * decl.c (grokdeclarator): Strip the injected-class-name typedef
+       if we are building a declaration or compound type.
+
+       PR c++/52906
+       * decl.c (check_tag_decl): Don't complain about attributes if we
+       don't even have a type.
+
+2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * cvt.c (convert_to_void): Update comment.
+
+2012-04-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52596
+       * semantics.c (finish_non_static_data_member): In templates, pass
+       the decl to build_qualified_name.
+       * tree.c (lvalue_kind) [SCOPE_REF]: Handle FIELD_DECL.
+
+2012-04-04  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52845
+       * decl.c (finish_function): Update fntype after deducing return type.
+
+2012-04-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52796
+       * pt.c (tsubst_initializer_list): A pack expansion with no elements
+       means value-initialization.
+
+2012-04-01  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50043
+       * class.c (deduce_noexcept_on_destructor,
+       deduce_noexcept_on_destructors): New.
+       (check_bases_and_members): Call the latter.
+       * decl.c (grokfndecl): Call the former.
+       * method.c (implicitly_declare_fn): Not static.
+       * cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
+       Declare
+
+2012-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/52718
+       * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
+       warn for a zero as null pointer constant default argument.
+
+2012-03-29  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52685
+       * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
+
+2012-03-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/52759
+       * decl.c (start_decl): Don't call maybe_apply_pragma_weak
+       if processing_template_decl.
+
+2012-03-29  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52743
+       * call.c (compare_ics): Handle ck_aggr like ck_list.
+
+2012-03-28  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52746
+       * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
+       we didn't get an explicit scope.
+       * pt.c (tsubst_baselink): Likewise.
+
+2012-03-28  Richard Guenther  <rguenther@suse.de>
+
+       * typeck2.c (process_init_constructor_array): Use the proper
+       type for computing the array length.
+
+2012-03-27  Meador Inge  <meadori@codesourcery.com>
+
+       PR c++/52672
+       * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
+       stripped child trees that are not pointer types.
+
+2012-03-21  Jason Merrill  <jason@redhat.com>
+
+       Implement return type deduction for normal functions with -std=c++1y.
+       * cp-tree.h (FNDECL_USED_AUTO): New macro.
+       (LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): Remove.
+       (dependent_lambda_return_type_node): Remove.
+       (CPTI_DEPENDENT_LAMBDA_RETURN_TYPE): Remove.
+       (struct language_function): Add x_auto_return_pattern field.
+       (current_function_auto_return_pattern): New.
+       (enum tsubst_flags): Add tf_partial.
+       * decl.c (decls_match): Handle auto return comparison.
+       (duplicate_decls): Adjust error message for auto return.
+       (cxx_init_decl_processing): Remove dependent_lambda_return_type_node.
+       (cp_finish_decl): Don't do auto deduction for functions.
+       (grokdeclarator): Allow auto return without trailing return type in
+       C++1y mode.
+       (check_function_type): Defer checking of deduced return type.
+       (start_preparsed_function): Set current_function_auto_return_pattern.
+       (finish_function): Set deduced return type to void if not previously
+       deduced.
+       * decl2.c (change_return_type): Handle error_mark_node.
+       (mark_used): Always instantiate functions with deduced return type.
+       Complain about use if deduction isn't done.
+       * parser.c (cp_parser_lambda_declarator_opt): Use 'auto' for
+       initial return type.
+       (cp_parser_lambda_body): Don't deduce return type in a template.
+       (cp_parser_conversion_type_id): Allow auto in C++1y.
+       * pt.c (instantiate_class_template_1): Don't mess with
+       LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P.
+       (tsubst_copy_and_build): Likewise.
+       (fn_type_unification, tsubst): Don't reduce the template parm level
+       of 'auto' during deduction.
+       (unify): Compare 'auto' specially.
+       (get_bindings): Change test.
+       (always_instantiate_p): Always instantiate functions with deduced
+       return type.
+       (do_auto_deduction): Handle error_mark_node and lambda context.
+       Don't check for use in initializer.
+       (contains_auto_r): Remove.
+       * search.c (lookup_conversions_r): Handle auto conversion function.
+       * semantics.c (lambda_return_type): Handle null return.  Don't mess
+       with dependent_lambda_return_type_node.
+       (apply_deduced_return_type): Rename from apply_lambda_return_type.
+       * typeck.c (merge_types): Handle auto.
+       (check_return_expr): Do auto deduction.
+       * typeck2.c (add_exception_specifier): Fix complain check.
+
+2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/52487
+       * class.c (check_field_decls): Call literal_type_p only
+       on complete types.
+
+2012-03-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/52671
+       * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
+       on CLASS_TYPE_P types.
+
+2012-03-20  Jason Merrill  <jason@redhat.com>
+
+       * lex.c (init_reswords): Use >= for cxx_dialect test.
+       * parser.c (cp_parser_exception_specification_opt): Likewise.
+
+       * mangle.c (write_type): Handle 'auto'.
+       * init.c (build_new): Don't do auto deduction where it might
+       affect template mangling.
+
+       PR c++/52510
+       * decl.c (reshape_init_class): Handle repeated reshaping.
+       * search.c (lookup_field_1): Add sanity check.
+
+2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/14710
+       * cp-tree.h (xvalue_p, maybe_warn_about_useless_cast): Declare.
+       * tree.c (xvalue_p): Define.
+       * typeck.c (maybe_warn_about_useless_cast): Define.
+       (build_reinterpret_cast, build_const_cast,
+       build_static_cast, cp_build_c_cast): Use maybe_warn_about_useless_cast.
+       * rtti.c (build_dynamic_cast): Likewise.
+       * pt.c (tsubst_copy_and_build, case CAST_EXPR): Increment/decrement
+       c_inhibit_evaluation_warnings before/after the build_* calls.
+
+2012-03-15  Jason Merrill  <jason@redhat.com>
+
+       PR c++/52582
+       * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
+
+2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR c++/44783
+       * error.c (print_instantiation_partial_context): Use
+       template_backtrace_limit.
+
+2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
+
+2012-03-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/52521
+       * parser.c (lookup_literal_operator): Return fn only if
+       processed all arguments from args vector and argtypes is
+       void_list_node.
+
+2012-01-30  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/51641
+       * cp-tree.h (template_type_parameter_p): Declare new function.
+       (parameter_of_template_p): Remove.
+       * pt.c (template_type_parameter_p): Define new function.
+       (parameter_of_template_p): Remove.
+       * name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
+       on parameter_of_template_p anymore.  Compare the level of the
+       template parameter to the depth of the template.
+
+2011-12-15  Dodji Seketeli  <dodji@redhat.com>
+
+       * call.c (standard_conversion, build_integral_nontype_arg_conv)
+       (build_new_op_1, convert_like_real, is_subseq)
+       (maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics)
+       (joust): Use next_conversion instead of accessing fields of struct
+       conversion directly.
+
+2012-03-12  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/52299
+       * pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus
+       division by zero warnings.
+
+2012-03-08  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem,
+       build_ptrmemfunc): Consistently forward the tsubst_flags_t
+       parameter.
+       * call.c (resolve_args): Likewise.
+
 2012-03-07  Jason Merrill  <jason@redhat.com>
 
        PR c++/52521