Further P0135 refinement.
[gcc.git] / gcc / cp / ChangeLog
index 085e0a53c3874a5aa9f3b527244da4574f0eb0b3..0bd0457f01a7c283cb57f93fe453c3319af83f95 100644 (file)
@@ -1,3 +1,48 @@
+2016-10-07  Jason Merrill  <jason@redhat.com>
+
+       Further P0135 refinement.
+       * call.c (build_user_type_conversion_1): Consider conversions from
+       a single element in an initializer-list.
+       (build_temp): Undo early_elide_copy change.
+       (build_over_call): Check that we don't try to copy a TARGET_EXPR
+       in C++17 mode.  Set user_conv_p here.
+       (convert_like_real): Not here.
+       (check_self_delegation): Split out from...
+       (build_special_member_call): ...here.  Handle C++17 copy elision.
+       * cvt.c (early_elide_copy): Remove.
+       (ocp_convert): Undo early_elide_copy change.
+       * except.c (build_throw): Likewise.
+       * init.c (expand_default_init): Likewise.
+       * typeck.c (cp_build_modify_expr): Likewise.
+
+2016-10-07  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/64433
+       DR1658, DR1611
+       * init.c (emit_mem_initializers): Don't construct vbases of
+       abstract classes.
+       (push_base_cleanups): Don't push vbase cleanups for abstract class
+       when in C++14 mode.
+       * method.c (synthethesized_method_walk): Don't walk vbases of
+       abstract classes when in C++14 mode.
+
+2016-10-07  Jakub Jelinek  <jakub@redhat.com>
+
+       Implement LWG2296 helper intrinsic
+       * parser.c (cp_parser_postfix_expression): Handle RID_ADDRESSOF.
+       * cp-objcp-common.c (cp_common_init_ts): Handle ADDRESSOF_EXPR.
+       * constexpr.c (potential_constant_expression_1): Likewise.
+       * error.c (dump_expr): Likewise.
+       * typeck.c (cp_build_addressof): New function.
+       * cp-tree.h (cp_build_addressof): Declare.
+       * cxx-pretty-print.h (pp_cxx_addressof_expression): Declare.
+       * cp-tree.def (ADDRESSOF_EXPR): New tree code.
+       * cxx-pretty-print.c (cxx_pretty_printer::primary_expression): Handle
+       ADDRESSOF_EXPR.  Add __builtin_addressof and
+       __has_unique_object_representations into syntax in function comment.
+       (pp_cxx_addressof_expression): New function.
+       * pt.c (tsubst_copy_and_build): Handle ADDRESSOF_EXPR.
+
 2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
        PR c++/77700