Further P0135 refinement.
[gcc.git] / gcc / cp / ChangeLog
index ce875ce3b3e53c1b5ea6f317b733e4a0d40f29af..0bd0457f01a7c283cb57f93fe453c3319af83f95 100644 (file)
@@ -1,3 +1,31 @@
+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