re PR c++/69889 (ICE: in assign_temp, at function.c:961)
[platform/upstream/gcc.git] / gcc / cp / ChangeLog
index 628f4d1..ecab545 100644 (file)
@@ -1,5 +1,247 @@
+2016-02-25  Jason Merrill  <jason@redhat.com>
+
+       PR c++/69889
+       * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
+       * tree.c (build_aggr_init_expr): Set it.
+       * semantics.c (simplify_aggr_init_expr): Check it.
+       * cp-gimplify.c (cp_genericize_r): Don't walk into
+       a call/aggr_init from a thunk.
+
+       PR c++/69842
+       * method.c (forward_parm): Handle parameter packs.
+       * lambda.c (maybe_add_lambda_conv_op): Use it for them.
+
+       PR c++/67364
+       * constexpr.c (cxx_eval_component_reference): Don't complain about
+       unevaluated empty classes.
+
+       PR c++/68049
+       * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
+
+2016-02-25  Patrick Palka  <ppalka@gcc.gnu.org>
+
+       PR c++/69736
+       * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
+       (maybe_undo_parenthesized_ref): Declare.
+       * semantics.c (maybe_undo_parenthesized_ref): Split out from
+       check_return_expr.
+       (finish_call_expr): Use it.
+       * typeck.c (check_return_expr): Use it.
+       * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
+       REF_PARENTHESIZED_P flag.
+
+2016-02-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/69922
+       * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
+       Avoid folding it.
+       * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
+       tests.
+       * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
+       unless they are folded into INTEGER_CST, error_mark_node or some
+       comparison with NULL, avoid folding them and use either the original
+       comparison or non-folded comparison of folded arguments.
+       * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
+       comparison, don't fold the comparison right away.
+
+2016-02-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/69323
+       * friend.c (make_friend_class): Likewise.
+       * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
+
+2016-02-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/69323
+       * pt.c (instantiate_class_template_1): Set
+       processing_template_decl before substituting friend_type.
+
+016-02-24  Martin Sebor  <msebor@redhat.com>
+
+       PR c++/69912
+       * tree.c (build_ctor_subob_ref): Compare types' main variants
+       instead of the types as they are.
+
+2016-02-24  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (start_preparsed_function): Condition ctor clobber on
+       flag_lifetime_dse > 1.
+
+       * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
+
+2016-02-19  Jason Merrill  <jason@redhat.com>
+
+       PR c++/69743
+       * call.c (remaining_arguments): No longer static.
+       * cp-tree.h: Declare it.
+       * pt.c (more_specialized_fn): Use it.
+
+2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+           Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       * Make-lang.in: Invoke gperf with -L C++.
+       * cfns.gperf: Remove prototypes for hash and libc_name_p
+       inlines.
+       * cfns.h: Regenerated.
+       * except.c (nothrow_libfn_p): Adjust.
+
+2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/69850
+       * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
+       NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
+
+2016-02-19  Patrick Palka  <ppalka@gcc.gnu.org>
+
+       PR c++/68948
+       * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
+       call here.
+       * semantics.c (finish_call_expr): Don't assume a constructor
+       call is dependent if only the "this" pointer is dependent.  When
+       building a constructor call, always use a dummy object.
+
+2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/69850
+       * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
+       condition.
+       * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
+       operators if folding preserved the binop, just with different
+       arguments.
+
+       PR c++/67767
+       * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
+       attr_spec is always single element chain, chain all the attributes
+       properly together in the right order.
+
+2016-02-18  Jason Merrill  <jason@redhat.com>
+
+       * mangle.c (maybe_check_abi_tags): Add for_decl parm.  Call
+       mangle_decl.
+       (mangle_decl): Call maybe_check_abi_tags for function scope.
+       (mangle_guard_variable): Call maybe_check_abi_tags here.
+       (write_guarded_var_name): Not here.
+
+2016-02-17  Jason Merrill  <jason@redhat.com>
+
+       PR c++/65985
+       * constexpr.c (build_constexpr_constructor_member_initializers):
+       Handle an additional STATEMENT_LIST.
+
+       PR c++/68585
+       * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
+
+       PR c++/68679
+       * decl2.c (reset_type_linkage_2): Look through member templates.
+
+2016-02-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/69850
+       * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
+
+2016-02-17  Jason Merrill  <jason@redhat.com>
+
+       PR c++/69842
+       * method.c (forward_parm): Split out from...
+       (add_one_base_init): ...here.
+       * lambda.c (maybe_add_lambda_conv_op): Use it.
+
+2016-02-16  Jason Merrill  <jason@redhat.com>
+
+       PR c++/10200
+       PR c++/69753
+       * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
+       tree.c, typeck2.c: Revert earlier changes.
+       * parser.c (cp_parser_lookup_name): Ignore namespace-scope
+       non-type templates after -> or .
+
+2016-02-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/69835
+       * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
+
+2016-02-16  Jason Merrill  <jason@redhat.com>
+
+       PR c++/69657
+       * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
+       (set_decl_namespace): Pass it.  Complain about finding a hidden friend.
+       * name-lookup.h: Adjust.
+
+2016-02-16  James Norris  <jnorris@codesourcery.com>
+
+       * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
+       * semantics.c (finish_omp_clauses): Add deviceptr checking.
+
+2016-02-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/69658
+       * init.c (expand_default_init): Only call reshape_init
+       in the direct-initialization from an initializer list case.
+
+2016-02-15  Jason Merrill  <jason@redhat.com>
+
+       PR c++/69753
+       * semantics.c (finish_call_expr): Implicit 'this' does not make
+       the call dependent.
+       * search.c (any_dependent_bases_p): Split out...
+       * name-lookup.c (do_class_using_decl): ...from here.
+       * call.c (build_new_method_call_1): Don't complain about missing object
+       if there are dependent bases.  Tweak error.
+       * tree.c (non_static_member_function_p): Remove.
+       * pt.c (type_dependent_expression_p): A member template of a
+       dependent type is dependent.
+       * cp-tree.h: Adjust.
+
+       PR c++/68890
+       * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
+
+2016-02-12  Patrick Palka  <ppalka@gcc.gnu.org>
+
+       PR c++/69098
+       * pt.c (lookup_and_finish_template_variable): New function,
+       extracted from ...
+       (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here.  Use it.
+       (tsubst_qualified_id): Consider that EXPR might be a variable
+       template.
+       * typeck.c (check_template_keyword): Don't emit an error
+       if DECL is a variable template.
+
+2016-02-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * error.c: Spelling fixes - behaviour -> behavior and
+       neighbour -> neighbor.
+       * decl.c: Likewise.
+       * typeck.c (cp_build_binary_op): Fix up behavior spelling in
+       diagnostics.
+       * init.c (build_delete): Likewise.
+
+2016-02-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/69768
+       * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
+       arguments for -Waddress warning.  Fix up formatting.
+
+2016-02-11  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/68726
+       * pt.c (lookup_template_class_1): Check tsubst return value for
+       error_mark_node.
+
 2016-02-10  Jason Merrill  <jason@redhat.com>
 
+       PR c++/68926
+       * pt.c (resolve_nondeduced_context): Add complain parm.
+       (do_auto_deduction): Pass it.
+       * cvt.c (convert_to_void): Likewise.
+       * decl.c (cp_finish_decl): Likewise.
+       * init.c (build_new): Likewise.
+       * rtti.c (get_tinfo_decl_dynamic): Likewise.
+       * semantics.c (finish_decltype_type): Likewise.
+       * typeck.c (decay_conversion): Likewise.
+       * cp-tree.h: Adjust declaration.
+       * call.c (standard_conversion): Add complain parm, pass it along.
+       (implicit_conversion): Pass it.
+
        PR c++/69657
        * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
        (lookup_name_real_1): Likewise.