re PR c++/69889 (ICE: in assign_temp, at function.c:961)
[platform/upstream/gcc.git] / gcc / cp / ChangeLog
index 743e059..ecab545 100644 (file)
@@ -1,3 +1,172 @@
+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.