PR c++/88815 - narrowing conversion lost in decltype.
[gcc.git] / gcc / cp / ChangeLog
index 01a57601f4c9cf4293a1dbcbe7823b8fc8138c02..dcac8e7d1063523d2afbdac894ce547e85331582 100644 (file)
@@ -1,5 +1,101 @@
+2019-01-27  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/88815 - narrowing conversion lost in decltype.
+       PR c++/78244 - narrowing conversion in template not detected.
+       * cp-tree.h (CONSTRUCTOR_IS_DEPENDENT): New.
+       * pt.c (instantiation_dependent_r): Consider a CONSTRUCTOR with
+       CONSTRUCTOR_IS_DEPENDENT instantiation-dependent.
+       * semantics.c (finish_compound_literal): When the compound literal
+       isn't instantiation-dependent and the type isn't type-dependent,
+       fall back to the normal processing.  Set CONSTRUCTOR_IS_DEPENDENT.
+
+       PR c++/89024 - ICE with incomplete enum type.
+       * call.c (standard_conversion): When converting an
+       ARITHMETIC_TYPE_P to an incomplete type, return NULL.
+       
+2019-01-25  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/88969
+       * call.c (build_op_delete_call): Implement 7.6.2.5/(10.1).
+       * decl2.c (coerce_delete_type): Use build_pointer_type instead
+       of TYPE_POINTER_TO.
+
+2019-01-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/89001 - mangling of reference temporaries
+       * cp-tree.h (struct saved_scope): Add ref_temp_count.
+       (current_ref_temp_count): New macro.
+       * mangle.c (mangle_ref_init_variable): Use it.
+       * typeck2.c (store_init_value): Clear it.
+       * call.c (make_temporary_var_for_ref_to_temp): Copy public and
+       comdat.
+
+2019-01-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/88976
+       * semantics.c (finish_omp_cancel): Diagnose more than one if
+       on #pragma omp cancel with different modifiers.  Use
+       maybe_convert_cond when not in template or build_x_binary_op
+       otherwise.
+
+2019-01-23  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/88757 - qualified name treated wrongly as type.
+       * parser.c (cp_parser_direct_declarator): Don't treat qualified-ids
+       in parameter-list as types if name lookup for declarator-id didn't
+       find one or more function templates.
+
+2019-01-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/44715
+       * cp-gimplify.c (genericize_cp_loop): Call begin_bc_block only
+       after genericizing cond and incr expressions.
+
+       PR c++/88984
+       * cp-gimplify.c (genericize_switch_stmt): Move cond genericization
+       before the begin_bc_block call.
+
+2019-01-21  Jason Merrill  <jason@redhat.com>
+
+       PR c++/87893 - constexpr ctor ICE on ARM.
+       PR c++/88293 - ICE with comma expression.
+       * constexpr.c (initialized_type): Don't shortcut non-void type.
+       Handle COMPOUND_EXPR.
+       (cxx_eval_outermost_constant_expr): Return early for void type.
+
+2019-01-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/88949
+       * optimize.c (cxx_copy_decl): New function.
+       (clone_body): Use it instead of copy_decl_no_change.
+
+       PR sanitizer/88901
+       * typeck.c (cp_build_binary_op): Don't instrument
+       SANITIZE_POINTER_COMPARE if processing_template_decl.
+       (pointer_diff): Similarly for SANITIZE_POINTER_SUBTRACT.
+
+2019-01-18  Jason Merrill  <jason@redhat.com>
+
+       PR c++/88875 - error with explicit list constructor.
+       * call.c (reference_binding): Don't modify EXPR.  Set
+       need_temporary_p on the ck_user conversion for a temporary.
+       (convert_like_real): Check it.
+
+2019-01-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR c/51628
+       PR c/88664
+       * call.c (convert_for_arg_passing): Upate the
+       warn_for_address_or_pointer_of_packed_member call.
+       * typeck.c (convert_for_assignment): Likewise.
+
 2019-01-17  Jason Merrill  <jason@redhat.com>
 
+       PR c++/86205 - ICE with ?: of throw and template-id.
+       * pt.c (resolve_nondeduced_context_or_error): Split out from...
+       * typeck.c (decay_conversion): ...here.
+       * call.c (build_conditional_expr_1): Use it.
+
        PR c++/86740, ICE with constexpr if and nested generic lambdas.
        * tree.c (cp_walk_subtrees): Handle LAMBDA_EXPR.