]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/cp/ChangeLog
Update copyright years.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
index a53ea05251017a3cbf440cfd1af560f7ebd1d385..4c9083a857bebc905d6202427123b0c4b17f168b 100644 (file)
-2018-12-27  Martin Liska  <mliska@suse.cz>
-
-       PR c++/88263
-       * decl2.c (get_local_tls_init_fn): Add location_t argument and
-       use it.
-       (get_tls_init_fn): Call it with location of variable for which
-       we'll need to create tls_init function.
-       (handle_tls_init): Likewise.
-
-2018-12-21  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/86524
-       PR c++/88446
-       * cp-tree.h (cp_fold_maybe_rvalue, cp_fold_rvalue): Declare.
-       (fold_non_dependent_expr): Add manifestly_const_eval argument.
-       * constexpr.c (cxx_eval_builtin_function_call): Evaluate
-       __builtin_constant_p if ctx->manifestly_const_eval even in constexpr
-       functions.  Don't reuse dummy{1,2} vars between different arguments.
-       Use cp_fold_rvalue instead of cp_fully_fold.  Fix comment typo.
-       (fold_non_dependent_expr): Add manifestly_const_eval argument, pass
-       it through to cxx_eval_outermost_constant_expr and
-       maybe_constant_value.
-       * cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): No longer
-       static.
-       * semantics.c (finish_static_assert): Call fold_non_dependent_expr
-       with true as manifestly_const_eval.
-
-2018-12-20  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/88196 - ICE with class non-type template parameter.
-       * pt.c (convert_nontype_argument): If the expr is a PTRMEM_CST, also
-       check if the type we're converting it to is TYPE_PTRMEM_P.
-
-2018-12-20  H.J. Lu  <hongjiu.lu@intel.com>
-
-       PR c/51628
-       * call.c (convert_for_arg_passing): Call
-       warn_for_address_or_pointer_of_packed_member.
-       * typeck.c (convert_for_assignment): Likewise.
-
-2018-12-20  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88180
-       * parser.c (cp_parser_class_specifier_1): If
-       cp_parser_check_type_definition fails, skip default arguments, NSDMIs,
-       etc. like for erroneous template args.
-
-       * cp-tree.h (cp_fully_fold_init): Declare.
-       * cp-gimplify.c (cp_fully_fold_init): New function.
-       * typeck2.c (split_nonconstant_init, store_init_value): Use it
-       instead of cp_fully_fold.
-
-2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
-
-       * parser.c (cp_parser_asm_definition): Do not allow any asm qualifiers
-       on top-level asm.
-
-2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
-
-       * parser.c (cp_parser_asm_definition) <RID_CONST, RID_RESTRICT>: Give
-       a more specific error message (instead of just falling through).
-
-2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
-
-       * parser.c (cp_parser_asm_definition): Rewrite the loop to work without
-       "done" boolean variable.
-       * parser.c (cp_parser_asm_definition): Keep track of the location each
-       asm qualifier is first seen; use that to give nicer "duplicate asm
-       qualifier" messages.
-
-2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
-
-       * parser.c (cp_parser_asm_definition): Rewrite the loop to work without
-       "done" boolean variable.
-
-2018-12-19  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/88375
-       * typeck.c (convert_for_assignment): Capture location of rhs
-       before stripping, and if available.  Use the location when
-       complaining about bad conversions, labelling it with the
-       rhstype if the location was present.
-       * typeck2.c (digest_init_r): Capture location of init before
-       stripping.
-
-2018-12-19  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/87504
-       * call.c (op_error): Convert 1st param from location_t to
-       const op_location_t &.  Use binary_op_rich_location for binary
-       ops.
-       (build_conditional_expr_1): Convert 1st param from location_t to
-       const op_location_t &.
-       (build_conditional_expr): Likewise.
-       (build_new_op_1): Likewise.
-       (build_new_op): Likewise.
-       * cp-tree.h (build_conditional_expr): Likewise.
-       (build_new_op): Likewise.
-       (build_x_binary_op): Likewise.
-       (cp_build_binary_op): Likewise.
-       * parser.c (cp_parser_primary_expression): Build a location
-       for id-expression nodes.
-       (cp_parser_binary_expression): Use an op_location_t when
-       calling build_x_binary_op.
-       (cp_parser_operator): Build a location for user-defined literals.
-       * typeck.c (build_x_binary_op): Convert 1st param from location_t
-       to const op_location_t &.
-       (cp_build_binary_op): Likewise.  Use binary_op_rich_location.
-
-2018-12-19  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/43064
-       PR c++/43486
-       * call.c (build_conditional_expr_1): Strip location wrappers when
-       checking for CONST_DECL.
-       (conversion_null_warnings): Use location of "expr" if available.
-       * class.c (fixed_type_or_null): Handle location wrappers.
-       * constexpr.c (potential_constant_expression_1): Likewise.
-       * cvt.c (ignore_overflows): Strip location wrappers when
-       checking for INTEGER_CST, and re-wrap the result if present.
-       (ocp_convert): Call fold_for_warn before checking for INTEGER_CST.
-       * decl.c (reshape_init_r): Strip any location wrapper.
-       (undeduced_auto_decl): Likewise.
-       * expr.c (mark_discarded_use): Likewise for expr.
-       * init.c (build_aggr_init): Likewise before checking init for
-       DECL_P.
-       (warn_placement_new_too_small): Call fold_for_warn on adj before
-       checking for CONSTANT_CLASS_P, and on nelts.  Strip any location
-       wrapper from op0 and on oper before checking for VAR_P.
-       * parser.c (cp_parser_primary_expression): Call
-       maybe_add_location_wrapper on numeric and string literals.
-       (cp_parser_postfix_expression): Strip any location wrapper when
-       checking for DECL_IS_BUILTIN_CONSTANT_P.
-       (cp_parser_unary_expression): Ensure that folding of NEGATE_EXPR
-       around a constant happens in the presence of location wrappers and
-       returns a wrapped result.
-       (cp_parser_has_attribute_expression): Strip any location wrapper
-       from "oper".
-       (cp_parser_binary_expression): Strip any location wrapper when
-       checking for DECL_P on the lhs.
-       (cp_parser_decltype): Strip any location wrapper from result of
-       cp_parser_decltype_expr.
-       (cp_parser_mem_initializer): Add location wrappers to the
-       parenthesized expression list.
-       (cp_parser_template_parameter_list): Don't create wrapper nodes
-       within a template-parameter-list.
-       (cp_parser_template_argument_list): Don't create wrapper nodes
-       within a template-argument-list.
-       (cp_parser_parameter_declaration): Strip location wrappers from
-       default arguments.
-       (cp_parser_gnu_attribute_list): Don't create wrapper nodes.
-       (cp_parser_std_attribute_spec_seq): Likewise.
-       (cp_parser_omp_all_clauses): Don't create wrapper nodes within
-       OpenMP clauses.
-       (cp_parser_omp_for_loop): Likewise.
-       (cp_parser_omp_declare_reduction_exprs): Likewise.
-       * pt.c (convert_nontype_argument_function): Strip location
-       wrappers from fn_no_ptr before checking for FUNCTION_DECL.
-       (tsubst_default_argument): Move note about which callsite led to
-       instantiation to after the check_default_argument call.
-       (do_auto_deduction): Likewise from init before checking for
-       DECL_P.
-       * semantics.c (force_paren_expr): Likewise from expr before
-       checking for DECL_P.
-       (finish_parenthesized_expr): Likewise from expr before
-       checking for STRING_CST.
-       (perform_koenig_lookup): Likewise from fn.
-       (finish_call_expr): Likewise.
-       (finish_id_expression): Rename to...
-       (finish_id_expression_1): ...this, calling
-       maybe_add_location_wrapper on the result.
-       (capture_decltype): Use lookup_name_real rather than value_member
-       when looking up decl within the capture-list.
-       * tree.c (cp_stabilize_reference): Strip any location wrapper.
-       (builtin_valid_in_constant_expr_p): Likewise.
-       (strip_typedefs_expr): Strip any location wrapper before checking
-       for decls or constants.
-       (is_overloaded_fn): Likewise.
-       (maybe_get_fns): Likewise.
-       (selftest::test_lvalue_kind): Verify lvalue_p.
-       * typeck.c (cxx_sizeof_expr): Strip any location wrapper.
-       (cxx_alignof_expr): Likewise.
-       (is_bitfield_expr_with_lowered_type): Handle location wrappers.
-       (cp_build_array_ref): Call maybe_constant_value on "idx".
-       (cp_build_binary_op): Strip location wrapper from first_arg before
-       checking for PARM_DECL.  Likewise for op1 before checking for
-       INTEGER_CST in two places.  Likewise for orig_op0 and orig_op1
-       when checking for STRING_CST.
-       (cp_build_addr_expr_1): Likewise for arg when checking for
-       FUNCTION_DECL.
-       (cp_build_modify_expr): Likewise for newrhs when checking for
-       STRING_CST.
-       (convert_for_assignment): Don't strip location wrappers when
-       stripping NON_LVALUE_EXPR.
-       (maybe_warn_about_returning_address_of_local): Strip location
-       wrapper from whats_returned before checking for DECL_P.
-       (can_do_nrvo_p): Strip location wrapper from retval.
-       (treat_lvalue_as_rvalue_p): Likewise.
-       (check_return_expr): Likewise.
-       * typeck2.c (cxx_incomplete_type_diagnostic): Strip location
-       wrapper from value before checking for VAR_P or PARM_DECL.
-       (digest_init_r): Strip location wrapper from init.  When
-       copying "init", also copy the wrapped node.
-
-2018-12-19  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/87934
-       * constexpr.c (cxx_eval_constant_expression) <case CONSTRUCTOR>: Do
-       re-process TREE_CONSTANT CONSTRUCTORs if they aren't reduced constant
-       expressions.
-
-2018-12-19  Alexandre Oliva <aoliva@redhat.com>
-
-       PR c++/87012
-       * pt.c (convert_template_argument): Canonicalize type after
-       tsubst/deduce.
-
-       PR c++/88146
-       * method.c (do_build_copy_constructor): Guard cvquals init and
-       loop over fields to run for non-inherited ctors only.
-       (synthesize_method): Retain location of inherited ctor.
-
-2018-12-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88410
-       * cp-gimplify.c (cp_fold) <case ADDR_EXPR>: For offsetof-like folding,
-       call maybe_constant_value on val to see if it is INTEGER_CST.
-
-2018-12-17  Jonathan Wakely  <jwakely@redhat.com>
-
-       PR c++/52321
-       * typeck.c (build_static_cast): Print a note when the destination
-       type or the operand is a pointer/reference to incomplete class type.
-
-2018-12-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88482
-       * except.c (verify_library_fn): New function.
-       (declare_library_fn): Use it.  Initialize TM even if the non-TM
-       library function has been user declared.
-       (do_end_catch): Don't set TREE_NOTHROW on error_mark_node.
-       (expand_start_catch_block): Don't call initialize_handler_parm
-       for error_mark_node.
-       (build_throw): Use verify_library_fn.  Initialize TM even if the
-       non-TM library function has been user declared.  Don't crash if
-       any library fn is error_mark_node.
-
-2018-12-14  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (tsubst_expr) [DECL_EXPR]: Ignore class-scope bindings when
-       looking up a capture proxy.
-
-2018-12-15  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84644
-       * decl.c (check_tag_decl): A decltype with no declarator
-       doesn't declare anything.
-
-2018-12-14  Alexandre Oliva <aoliva@redhat.com>
-
-       PR c++/87814
-       * pt.c (tsubst_exception_specification): Handle
-       DEFERRED_NOEXCEPT with !defer_ok.
-
-2018-12-14  Jason Merrill <jason@redhat.com>
-
-       PR c++/86823
-       * parser.c (cp_parser_template_id): Rearrange deferred access
-       checks into the firewall.
-
-2018-12-14  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/82294
-       PR c++/87436
-       * init.c (build_vec_init): Change num_initialized_elts type from int
-       to HOST_WIDE_INT.  Build a RANGE_EXPR if e needs to be repeated more
-       than once.
-
-2018-12-13  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/88216 - ICE with class type in non-type template parameter.
-       * mangle.c (write_expression): Handle TARGET_EXPR and
-       VIEW_CONVERT_EXPR.
-       * pt.c (convert_nontype_argument): Don't call
-       get_template_parm_object for value-dependent expressions.
-
-2018-12-13  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/87531
-       * class.c (finish_struct): Set DECL_CONTEXT of template assign op.
-       * name-lookup.c (get_class_binding_direct): Don't strip using-decl
-       of overload here.
-       * parser.c (cp_parser_postfix_expression): Cope with using decl in
-       overload set.
-       * semantics.c (finish_id_expr): Likewise.
-
-2018-12-12  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (grokdeclarator): Fix location of error message about
-       static data member definition.
-
-2018-12-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88446
-       * cp-tree.h (maybe_constant_value): Add manifestly_const_eval
-       argument.
-       * constexpr.c (struct constexpr_call): Rename pretend_const_required
-       member to manifestly_const_eval.
-       (struct constexpr_ctx): Likewise.
-       (constexpr_call_hasher::equal): Adjust users.
-       (cxx_eval_builtin_function_call): Likewise.  Formatting fix.
-       (cxx_eval_call_expression): Adjust users.
-       (cxx_eval_outermost_constant_expr, maybe_constant_init_1,
-       maybe_constant_init): Rename pretend_const_required argument to
-       manifestly_const_eval, adjust function comments.
-       (maybe_constant_value): Add manifestly_const_eval argument.  If true,
-       don't cache and call cxx_eval_outermost_constant_expr with true as
-       manifestly_const_eval.
-       * decl.c (compute_array_index_type_loc): Call maybe_constant_value
-       with true as manifestly_const_eval.
-
-       PR c++/88449
-       * constexpr.c (struct constexpr_call): Add pretend_const_required
-       member.
-       (constexpr_call_hasher::equal): Return false if pretend_const_required
-       members differ.
-       (cxx_eval_call_expression): Adjust new_call initialization.  Hash in
-       ctx->pretend_const_required.
-
-2018-12-11  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/87861
-       * class.c (build_vtbl_initializer): For TARGET_VTABLE_USES_DESCRIPTORS
-       bump index for each added word.
-       * constexpr.c (find_array_ctor_elt): Add forward declaration.
-       (cxx_eval_call_expression): Handle TARGET_VTABLE_USES_DESCRIPTORS
-       vtable calls.
-       (cxx_eval_constant_expression) <case OBJ_TYPE_REF>: Divide token
-       by TARGET_VTABLE_USES_DESCRIPTORS if non-zero.
-
-2018-12-11  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86608 - reading constexpr volatile variable.
-       * constexpr.c (potential_constant_expression_1): Check want_rval
-       instead of checking if we have a decl.
-       * decl2.c (decl_maybe_constant_var_p): Don't consider volatile
-       constexpr variables as maybe constant.
-
-2018-12-11  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (grokvardecl): Add location_t parameter and use it
-       in build_lang_decl_loc and build_decl calls.
-       (grokdeclarator): Move up loc declaration and use it in the
-       grokvardecl call too.
-
-2018-12-09  Cesar Philippidis  <cesar@codesourcery.com>
-
-       * parser.c (cp_parser_oacc_kernels_parallel): Adjust EXPR_LOCATION
-       on the combined acc loop.
-
-2018-12-07  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in error messages
-       about bit-fields with function type, warn_if_not_aligned type, and
-       static bit-fields; avoid DECL_NAME for unnamed declarations.
-
-2018-12-07  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/86669
-       * call.c (make_temporary_var_for_ref_to_temp): Call pushdecl even for
-       automatic vars.
-
-       PR c++/87506
-       * constexpr.c (adjust_temp_type): Handle EMPTY_CLASS_EXPR.
-
-2018-12-06  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * class.c (check_bitfield_decl): In error message about non-integral
-       type print the type itself too.
-       * decl.c (grokdeclarator): Do not ICE on unnamed bit-fields declared
-       friends; when calling build_decl for a FIELD_DECL possibly pass the
-       declarator->id_loc.
-
-2018-12-06  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/86747
-       * pt.c (tsubst_friend_class): Enter tsubsted class context.
-
-       PR c++/86397
-       * except.c (build_noexcept_spec): Resolve nondependent
-       expressions.
-
-2018-12-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/88136 - -Wdeprecated-copy false positives
-       * class.c (classtype_has_depr_implicit_copy): Rename from
-       classtype_has_user_copy_or_dtor.
-       * method.c (lazily_declare_fn): Adjust.
-       * decl2.c (cp_warn_deprecated_use): Refer to -Wdeprecated-copy-dtor
-       if deprecation is due to a destructor.
-
-2018-12-06  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/88373 - wrong parse error with ~.
-       * parser.c (cp_parser_template_name): Check tag_type for
-       none_type.
-
-2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
-
-       * cp-tree.h (finish_asm_stmt): Update declaration.
-       * parser.c (cp_parser_asm_definition): Detect the inline keyword
-       after asm.  Pass a flag for it to finish_asm_stmt.
-       * pt.c (tsubst_expr): Pass the ASM_INLINE_P flag to finish_asm_stmt.
-       * semantics.c (finish_asm_stmt): Add inline_p parameter.  Use it to
-       set ASM_INLINE_P.
-
-2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
-
-       PR inline-asm/55681
-       * parser.c (cp_parser_asm_definition): Update grammar.  Allow any
-       combination of volatile and goto, in any order, without repetitions.
-
-2018-12-06  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/85110
-       * call.c (conversion_null_warnings): Try to use the location of
-       the expression for the warnings.  Add notes showing the parameter
-       of the function decl, where available.
-       (get_fndecl_argument_location): For implicitly-declared functions,
-       use the fndecl location rather than that of the param.
-       (maybe_inform_about_fndecl_for_bogus_argument_init): New function.
-       (convert_like_real): Use it in various places to avoid repetition.
-       (complain_about_bad_argument): Likewise.
-       * cp-tree.h (maybe_inform_about_fndecl_for_bogus_argument_init):
-       New declaration.
-       * decl2.c (check_default_args): Put all diagnostics for the fndecl
-       into a diagnostic group.  Use the location of the parameter when
-       complaining about parameters with missing default arguments in
-       preference to that of the fndecl.  Attempt to record the location
-       of the first parameter with a default argument and emit a note
-       for the first parameter that's missing one.
-       * typeck.c (convert_arguments): When complaining about parameters
-       with incomplete types, attempt to use the location of the
-       argument.  Where available, add a note showing the pertinent
-       parameter in the fndecl.
-       (convert_for_assignment): When complaining about bad conversions
-       at function calls, use the location of the unstripped argument.
-       (convert_for_initialization): When checking for bogus references,
-       add an auto_diagnostic_group, and update the note to use the
-       location of the pertinent parameter, rather than just the callee.
-
-2018-12-06  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in error message;
-       print the type too; fix thinko in INDIRECT_TYPE_P use.
-
-2018-12-05  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/85569
-       * constexpr.c (adjust_temp_type): Test for type equality with
-       same_type_p.
-       (constexpr_call_hasher::equal): Likewise.
-
-2018-12-04  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84636
-       * decl.c (grokdeclarator): Avoid crashing on an anonymous bit-field
-       with function type.
-
-2018-12-04  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/88184 - ICE when treating name as template-name.
-       * pt.c (lookup_template_function): Always build the TEMPLATE_ID_EXPR
-       with unknown_type_node.
-
-2018-12-04  Julian Brown  <julian@codesourcery.com>
-
-       * parser.c (cp_parser_oacc_wait_list): Fix error message and avoid
-       duplicate diagnostic.
-
-2018-12-04  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88103
-       * typeck.c (build_class_member_access_expr): If unary_complex_lvalue
-       turned xvalue_p into non-xvalue_p, call move on it.
-
-2018-12-02  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88258
-       * parser.c (cp_parser_skip_to_closing_parenthesis_1,
-       cp_parser_skip_to_end_of_statement,
-       cp_parser_skip_to_end_of_block_or_statement,
-       cp_parser_skip_to_closing_brace,
-       cp_parser_skip_to_closing_square_bracket,
-       cp_parser_skip_balanced_tokens): Don't treat CPP_PRAGMA_EOL specially
-       if in_pragma is false.
-
-2018-12-01  Marek Polacek  <polacek@redhat.com>
-
-       Implement P0634R3, Down with typename!
-       * parser.c (CP_PARSER_FLAGS_TYPENAME_OPTIONAL): New enumerator.
-       (cp_parser_type_name): Remove declaration.
-       (cp_parser_postfix_expression): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
-       to cp_parser_type_id.
-       (cp_parser_new_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to
-       cp_parser_type_specifier_seq.
-       (cp_parser_lambda_declarator_opt): Pass
-       CP_PARSER_FLAGS_TYPENAME_OPTIONAL to
-       cp_parser_parameter_declaration_clause.
-       (cp_parser_condition): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_declarator.
-       (cp_parser_simple_declaration): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_init_declarator.
-       (cp_parser_conversion_type_id): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_type_specifier_seq.
-       (cp_parser_default_type_template_argument): Pass
-       CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id.
-       (cp_parser_template_parameter): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
-       to cp_parser_parameter_declaration.
-       (cp_parser_explicit_instantiation): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_declarator.
-       (cp_parser_simple_type_specifier): Adjust call to cp_parser_type_name
-       to relay if we should treat the typename keyword as optional.  Maybe
-       call cp_parser_make_typename_type is parsing a template-id and it's
-       not a TYPE_DECL.
-       (cp_parser_type_name): Remove unused function.
-       (cp_parser_enum_specifier): Pass to CP_PARSER_FLAGS_NONE
-       cp_parser_type_specifier_seq.
-       (cp_parser_alias_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
-       to cp_parser_type_id.
-       (cp_parser_init_declarator): New parameter.  Pass it down to
-       cp_parser_declarator.
-       (cp_parser_declarator): New parameter.  Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_declarator.  Pass the new parameter to
-       cp_parser_direct_declarator.
-       (cp_parser_direct_declarator): New parameter.  Pass it to
-       cp_parser_parameter_declaration_clause and cp_parser_declarator.
-       (cp_parser_declarator_id):
-       (cp_parser_type_id_1): New parameter.  Pass it to
-       cp_parser_type_specifier_seq.  Adjust call to cp_parser_declarator.
-       (cp_parser_type_id): New parameter.  Pass it to cp_parser_type_id_1.
-       (cp_parser_template_type_arg): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_type_id_1.
-       (cp_parser_trailing_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
-       to cp_parser_type_id_1.
-       (cp_parser_type_specifier_seq): New parameter.
-       (function_being_declared_is_template_p):
-       (cp_parser_parameter_declaration_clause): New parameter.  Pass it to
-       cp_parser_parameter_declaration_list.
-       (cp_parser_parameter_declaration_list): New parameter.  Pass it to
-       cp_parser_parameter_declaration.
-       (cp_parser_parameter_declaration): New parameter.  Pass it to
-       cp_parser_decl_specifier_seq.  Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_declarator.
-       (cp_parser_member_declaration): Adjust call to
-       cp_parser_decl_specifier_seq to also include
-       CP_PARSER_FLAGS_TYPENAME_OPTIONAL.  Pass
-       CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_declarator.
-       (cp_parser_exception_declaration): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_type_specifier_seq and cp_parser_declarator.
-       (cp_parser_requirement_parameter_list): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_parameter_declaration_clause.
-       (cp_parser_constructor_declarator_p): Resolve the TYPENAME_TYPE.
-       (cp_parser_single_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
-       to cp_parser_decl_specifier_seq and cp_parser_init_declarator.
-       (cp_parser_cache_defarg): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_declarator and cp_parser_parameter_declaration_list.
-       (cp_parser_objc_method_tail_params_opt): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_parameter_declaration.
-       (cp_parser_objc_class_ivars): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_declarator.
-       (cp_parser_objc_try_catch_finally_statement): Pass CP_PARSER_FLAGS_NONE
-       to cp_parser_parameter_declaration
-       (cp_parser_objc_struct_declaration): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_declarator.
-       (cp_parser_omp_for_loop_init): Pass CP_PARSER_FLAGS_NONE to
-       cp_parser_declarator and cp_parser_type_specifier_seq.
-
-2018-11-30  David Malcolm  <dmalcolm@redhat.com>
-
-       * typeck2.c: Include "gcc-rich-location.h".
-       (cxx_incomplete_type_diagnostic): When complaining about possibly
-       missing parens, add a fix-it hint if the member function takes no
-       additional params.
-
-2018-11-30  James Norris  <jnorris@codesourcery.com>
-
-       * parser.c (cp_parser_oacc_enter_exit_data): Use existing local
-       variable.
-
-2018-11-29  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (compute_array_index_type_loc): New, like the current
-       compute_array_index_type but takes a location_t too.
-       (compute_array_index_type): Forward to the latter.
-       (create_array_type_for_decl): Use compute_array_index_type_loc.
-
-2018-11-29  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/88121
-       * cp-name-hint.h (suggest_alternative_in_scoped_enum): New decl.
-       * error.c (dump_scope): Ensure that we print any scope for values
-       of unscoped enums.  Print the scope of values of scoped enums.
-       (qualified_name_lookup_error): Offer suggestions for failures
-       within scoped enums by calling suggest_alternative_in_scoped_enum.
-       * name-lookup.c (class namespace_hints): Update comment to mention
-       scoped enums.
-       (namespace_hints::namespace_hints): Call
-       maybe_add_candidate_for_scoped_enum.
-       (namespace_hints::maybe_add_candidate_for_scoped_enum): New member
-       (suggest_alternatives_for): Update comment to mention scoped
-       enums.
-       (suggest_alternative_in_scoped_enum): New function.
-
-2018-11-28  Marek Polacek  <polacek@redhat.com>
-
-       Implement P1094R2, Nested inline namespaces.
-       * parser.c (cp_parser_namespace_definition): Parse the optional inline
-       keyword in a nested-namespace-definition.  Adjust push_namespace call.
-       Formatting fix.
-
-2018-11-28  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/87531
-       * class.c (finish_struct): In a template, add artificial using
-       decl for operator=.
-
-2018-11-28  Jan Hubicka  <hubicka@ucw.cz>
-
-       * except.c (do_allocate_exception): Annotate __cxa_allocate_exception
-       as COLD.
-
-2018-11-28  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/88222 - ICE with bit-field with invalid type.
-       * decl.c (grokdeclarator): Check if declarator is null.
-
-2018-11-28  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/87476
-       * typeck2.c (digest_init_r): Re-add handing of signed/unsigned char
-       strings and add it to the initialization of wide array from non-wide
-       string diagnostics too.
-
-2018-11-27  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88187
-       * decl.c (grokdeclarator): Don't diagnose deduction guide errors
-       if !funcdecl_p.
-
-       PR c++/88181
-       * class.c (fixup_attribute_variants): Also propagate TYPE_PACKED
-       to variants.
-
-2018-11-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/88120 - ICE when calling save_expr in a template.
-       * typeck.c (cp_build_binary_op): Call cp_save_expr instead of
-       save_expr.
-
-2018-11-22  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/87386
-       * parser.c (cp_parser_operator): Use str.get_value () instead of just
-       str in USERDEF_LITERAL_VALUE and USERDEF_LITERAL_SUFFIX_ID arguments.
-
-2018-11-21  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88122
-       * method.c (maybe_explain_implicit_delete): If
-       FUNCTION_FIRST_USER_PARMTYPE (decl) is NULL, set const_p to false
-       instead of ICEing.
-
-       PR c++/87386
-       * parser.c (cp_parser_primary_expression): Use
-       id_expression.get_location () instead of id_expr_token->location.
-       Adjust the range from id_expr_token->location to
-       id_expressio.get_finish ().
-       (cp_parser_operator_function_id): Pass location of the operator
-       token down to cp_parser_operator.
-       (cp_parser_operator): Add start_loc argument, always construct a
-       location with caret at start_loc and range from start_loc to the
-       finish of the last token.
-
-       PR c++/87393
-       * parser.c (cp_parser_linkage_specification): Remove useless
-       dereference of the consume_open method result.
-
-2018-11-20  Martin Sebor  <msebor@redhat.com>
-
-       * cp-tree.h (cp_check_const_attributes): Declare.
-       * decl2.c (cp_check_const_attributes): Declare extern.
-       * parser.c (cp_parser_has_attribute_expression): New function.
-       (cp_parser_unary_expression): Handle RID_HAS_ATTRIBUTE_EXPRESSION.
-       (cp_parser_gnu_attribute_list): Add argument.
-
-2018-11-20  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/88110
-       * constexpr.c (cxx_eval_constant_expression) <case OBJ_TYPE_REF>: Punt
-       if get_base_address of ADDR_EXPR operand is not a DECL_P.
-
-2018-11-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87781 - detect invalid elaborated-type-specifier.
-       * parser.c (cp_parser_elaborated_type_specifier): Ensure that
-       typename follows a nested-name-specifier.
-
-2018-11-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl2.c (grokfield): Remove obsolete _vptr check; fix
-       explicit template argument list error location.
-
-2018-11-16  Kamlesh Kumar  <kamleshbhalui@gmail.com>
-
-       DR 1207
-       PR c++/52869
-       * parser.c (cp_parser_noexcept_specification_opt): Call
-       inject_this_parameter.
-
-2018-11-16  Jason Merrill  <jason@redhat.com>
-
-       Implement P0479R5, [[likely]] and [[unlikely]].
-       * tree.c (handle_likeliness_attribute): New.
-       (std_attribute_table): Add likely/unlikely.
-       * cp-gimplify.c (lookup_hotness_attribute, remove_hotness_attribute)
-       (process_stmt_hotness_attribute, first_stmt): New.
-       (genericize_if_stmt): Check for duplicate predictions.
-       * parser.c (cp_parser_statement): Call
-       process_stmt_hotness_attribute.
-       (cp_parser_label_for_labeled_statement): Apply attributes to case.
-       * decl.c (finish_case_label): Give label in template type void.
-       * pt.c (tsubst_expr) [CASE_LABEL_EXPR]: Copy attributes.
-       [PREDICT_EXPR]: Handle.
-
-2018-11-16  Nathan Sidwell  <nathan@acm.org>
-
-       Remove ovl_used, it is no longer needed
-       * cp-tree.h (OVL_USED_P): Delete.
-       (lookup_keep): Delete.
-       * friend.c (add_friend): Don't call it.
-       * parser.c (lookup_literal_operator): Likewise.
-       (cp_parser_primary_expression): Likewise.
-       * semantics.c (perform_koenig_lookup): Likewise.
-       * pt.c (tsubst_copy <OVERLOAD>): Don't assert OVL_USED_P.
-       * tree.c (ovl_copy): Delete.
-       (ovl_insert): Remove OVL_USED_P checks.
-       (ovl_iterator::reveal_node): Likewise.
-       (ovl_iterator::remove__node): Likewise.
-       (ovl_used, lookup_keep): Delete.
-
-       PR c++/87269
-       * parser.c (lookup_literal_operator): Mark overload for keeping
-       when inside template.  Refactor.
-
-2018-11-15  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/86246
-       PR c++/87989
-       * typeck.c (finish_class_member_access_expr): Conversion operator
-       to dependent type is dependent.
-
-2018-11-15  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * constexpr.c (ensure_literal_type_for_constexpr_object): Use
-       DECL_SOURCE_LOCATION in error_at calls.
-
-2018-11-15  Nathan Sidwell  <nathan@acm.org>
-
-       DR 2336
-       * cp-tree.h (enum special_function_kind): Add sfk_virtual_destructor.
-       * method.c (type_has_trivial_fn): Add it.
-       (SFK_DTOR_P): Likewise.
-       (synthesized_method_base_walk): Don't check access of vbases of
-       abstract classes when sfk_virtual_destructor.
-       (synthesized_method_walk): Skip vbases of abstract classes except
-       when sfk_virtual_destructor.
-       (get_defaulted_eh_spec): Set sfk_virtual_destructor as needed.
-
-       * cp-tree.h (enum special_function_kind): Reorder and comment.
-       * method.c (SFK_CTOR_P, SFK_DTOR_P, SFK_ASSIGN_P, SFK_COPY_P)
-       (SFK_MOVE_P): New predicates.
-       (walk_field_subobs, synthesized_method_base_walk): Drop
-       copy_arg_p, move_p, assign_p args.  Use new SFK predicates.  Order
-       parameters consistently.
-       (synthesized_method_walk): Drop ctor_p, copy_arg_p, move_p,
-       assign_p calculations.  Use new SFK predicates.  Adjust calls to
-       worker functions.
-
-2018-11-14  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * parser.c (make_id_declarator): Add location_t parameter.
-       (cp_parser_lambda_declarator_opt): Adjust call.
-       (cp_parser_decomposition_declaration): Likewise.
-       (cp_parser_alias_declaration): Likewise.
-       (cp_parser_direct_declarator): Likewise.
-       (cp_parser_member_declaration): Likewise.
-       (cp_parser_objc_class_ivars): Likewise.
-       * decl.c (grokdeclarator): Use declarator->id_loc in two error
-       messages.
-
-2018-11-14  Jakub Jelinek  <jakub@redhat.com>
-
-       P1236R1 - Signed integers are two's complement
-       * constexpr.c (cxx_eval_check_shift_p): Disable the signed LSHIFT_EXPR
-       checks for c++2a.
-
-2018-11-13  David Malcolm  <dmalcolm@redhat.com>
-
-       * call.c: Replace "source_location" with "location_t".
-       * cp-tree.h: Likewise.
-       * cvt.c: Likewise.
-       * name-lookup.c: Likewise.
-       * parser.c: Likewise.
-       * typeck.c: Likewise.
-
-2018-11-12  Jason Merrill  <jason@redhat.com>
-
-       Implement P0315R4, Lambdas in unevaluated contexts.
-       * decl2.c (min_vis_expr_r): Handle LAMBDA_EXPR.
-       * mangle.c (write_expression): Handle LAMBDA_EXPR.
-       * parser.c (cp_parser_lambda_expression): Allow lambdas in
-       unevaluated context.  Start the tentative firewall sooner.
-       (cp_parser_lambda_body): Use cp_evaluated.
-       * pt.c (iterative_hash_template_arg): Handle LAMBDA_EXPR.
-       (tsubst_function_decl): Substitute a lambda even if it isn't
-       dependent.
-       (tsubst_lambda_expr): Use cp_evaluated.  Always complain.
-       (tsubst_copy_and_build) [LAMBDA_EXPR]: Do nothing if tf_partial.
-       * semantics.c (begin_class_definition): Allow in template parm list.
-       * tree.c (strip_typedefs_expr): Pass through LAMBDA_EXPR.
-       (cp_tree_equal): Handle LAMBDA_EXPR.
-
-       * pt.c (fn_type_unification): If we have a full set of explicit
-       arguments, go straight to substitution.
-
-       * decl2.c (min_vis_expr_r, expr_visibility): New.
-       (min_vis_r): Call expr_visibility.
-       (constrain_visibility_for_template): Likewise.
-
-       Implement P0722R3, destroying operator delete.
-       * call.c (std_destroying_delete_t_p, destroying_delete_p): New.
-       (aligned_deallocation_fn_p, usual_deallocation_fn_p): Use
-       destroying_delete_p.
-       (build_op_delete_call): Handle destroying delete.
-       * decl2.c (coerce_delete_type): Handle destroying delete.
-       * init.c (build_delete): Don't call dtor with destroying delete.
-       * optimize.c (build_delete_destructor_body): Likewise.
-
-       Implement P0780R2, pack expansion in lambda init-capture.
-       * parser.c (cp_parser_lambda_introducer): Parse pack init-capture.
-       * pt.c (tsubst_pack_expansion): Handle init-capture packs.
-       (lookup_init_capture_pack): New.
-       (tsubst_expr) [DECL_EXPR]: Use it.
-       (tsubst_lambda_expr): Remember field pack expansions for
-       init-captures.
-
-       * cp-tree.h (struct cp_evaluated): New.
-       * init.c (get_nsdmi): Use it.
-       * parser.c (cp_parser_enclosed_template_argument_list): Use it.
-       * pt.c (coerce_template_parms, tsubst_aggr_type): Use it.
-
-2018-11-09  Jakub Jelinek  <jakub@redhat.com>
-
-       * parser.c (cp_parser_omp_clause_final, cp_parser_omp_clause_if): Use
-       cp_parser_assignment_expression instead of cp_parser_condition.
-       (cp_parser_omp_clause_num_threads, cp_parser_omp_clause_num_tasks,
-       cp_parser_omp_clause_grainsize, cp_parser_omp_clause_priority,
-       cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
-       cp_parser_omp_clause_linear, cp_parser_omp_clause_device): Use
-       cp_parser_assignment_expression instead of cp_parser_expression.
-       (cp_parser_omp_clause_hint): Likewise.  Formatting fix.
-
-       * parser.c (cp_parser_omp_clause_reduction): Call sorry_at on
-       reduction clause with inscan modifier.
-
-       * parser.c (cp_parser_omp_requires): Call sorry_at on requires
-       clauses other than atomic_default_mem_order.
-
-2018-11-09  Martin Sebor  <msebor@redhat.com>
-
-       PR middle-end/81824
-       * pt.c (warn_spec_missing_attributes): Move code to attribs.c.
-       Call decls_mismatched_attributes.
-
-2018-11-08  Jakub Jelinek  <jakub@redhat.com>
-
-       * constexpr.c (potential_constant_expression_1): Handle OMP_DEPOBJ.
-       * cp-gimplify.c (cp_genericize_r): Handle
-       OMP_CLAUSE_{IN,TASK}_REDUCTION.
-       (cxx_omp_predetermined_sharing_1): Don't return
-       OMP_CLAUSE_DEFAULT_SHARED for const qualified decls with no mutable
-       member.  Return OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for this pointer.
-       * cp-objcp-common.c (cp_common_init_ts): Handle OMP_DEPOBJ.
-       * cp-tree.def (OMP_DEPOBJ): New tree code.
-       * cp-tree.h (OMP_ATOMIC_DEPENDENT_P): Return true also for first
-       argument being OMP_CLAUSE.
-       (OMP_DEPOBJ_DEPOBJ, OMP_DEPOBJ_CLAUSES): Define.
-       (cp_convert_omp_range_for, cp_finish_omp_range_for): Declare.
-       (finish_omp_atomic): Add LOC, CLAUSES and MO arguments.  Remove
-       SEQ_CST argument.
-       (finish_omp_for_block): Declare.
-       (finish_omp_flush): Add MO argument.
-       (finish_omp_depobj): Declare.
-       * cxx-pretty-print.c (cxx_pretty_printer::statement): Handle
-       OMP_DEPOBJ.
-       * dump.c (cp_dump_tree): Likewise.
-       * lex.c (cxx_init): Likewise.
-       * parser.c: Include memmodel.h.
-       (cp_parser_for): Pass false as new is_omp argument to
-       cp_parser_range_for.
-       (cp_parser_range_for): Add IS_OMP argument, return before finalizing
-       if it is true.
-       (cp_parser_omp_clause_name): Handle nontemporal, in_reduction and
-       task_reduction clauses.
-       (cp_parser_omp_var_list_no_open): Handle
-       OMP_CLAUSE_{IN,TASK}_REDUCTION.  For OMP_CLAUSE_DEPEND, parse clause
-       operands as either an array section, or lvalue assignment expression.
-       (cp_parser_omp_clause_if): Handle cancel and simd modifiers.
-       (cp_parser_omp_clause_defaultmap): Parse new kinds of defaultmap
-       clause.
-       (cp_parser_omp_clause_reduction): Add IS_OMP and KIND arguments.
-       Parse reduction modifiers.  Pass KIND to c_parser_omp_variable_list.
-       (cp_parser_omp_clause_lastprivate, cp_parser_omp_iterators): New
-       functions.
-       (cp_parser_omp_clause_depend): Parse iterator modifier and handle
-       iterators.  Parse mutexinoutset and depobj kinds.
-       (cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_reduction
-       callers.
-       (cp_parser_omp_all_clauses): Likewise.  Handle
-       PRAGMA_OMP_CLAUSE_NONTEMPORAL and
-       PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.  Call
-       cp_parser_omp_clause_lastprivate for OpenMP lastprivate clause.
-       (cp_parser_omp_atomic): Pass pragma_tok->location as
-       LOC to finish_omp_atomic.  Parse hint and memory order clauses.
-       Handle default memory order from requires directive if any.  Adjust
-       finish_omp_atomic caller.
-       (cp_parser_omp_critical): Allow comma in between (name) and hint
-       clause.
-       (cp_parser_omp_depobj): New function.
-       (cp_parser_omp_flush): Parse flush with memory-order-clause.
-       (cp_parser_omp_for_cond): Allow NE_EXPR even in OpenMP loops.
-       (cp_convert_omp_range_for, cp_finish_omp_range_for): New functions.
-       (cp_parser_omp_for_loop): Parse C++11 range for loops among omp
-       loops.  Handle OMP_CLAUSE_IN_REDUCTION like OMP_CLAUSE_REDUCTION.
-       (OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses.
-       (cp_parser_omp_simd, cp_parser_omp_for): Call keep_next_level before
-       begin_omp_structured_block and call finish_omp_for_block on
-       finish_omp_structured_block result.
-       (cp_parser_omp_master): Add p_name, mask and cclauses arguments.
-       Allow to be called while parsing combined parallel master.
-       Parse combined master taskloop{, simd}.
-       (cp_parser_omp_parallel): Parse combined
-       parallel master{, taskloop{, simd}} constructs.
-       (cp_parser_omp_single): Use SET_EXPR_LOCATION.
-       (OMP_TASK_CLAUSE_MASK): Add in_reduction clause.
-       (OMP_TASKWAIT_CLAUSE_MASK): Define.
-       (cp_parser_omp_taskwait): Handle taskwait with depend clauses.
-       (OMP_TASKGROUP_CLAUSE_MASK): Define.
-       (cp_parser_omp_taskgroup): Parse taskgroup clauses, adjust
-       c_finish_omp_taskgroup caller.
-       (cp_parser_omp_distribute): Call keep_next_level before
-       begin_omp_structured_block and call finish_omp_for_block on
-       finish_omp_structured_block result.
-       (cp_parser_omp_teams): Force a BIND_EXPR with BLOCK around teams
-       body.
-       (cp_parser_omp_target_data): Allow target data with only
-       use_device_ptr clauses.
-       (cp_parser_omp_target): Set OMP_REQUIRES_TARGET_USED bit in
-       omp_requires_mask.
-       (cp_parser_omp_requires): New function.
-       (OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses.
-       (cp_parser_omp_taskloop): Add forward declaration.  Disallow
-       in_reduction clause when combined with parallel master.  Call
-       keep_next_level before begin_omp_structured_block and call
-       finish_omp_for_block on finish_omp_structured_block result.
-       (cp_parser_omp_construct): Adjust cp_parser_omp_master caller.
-       (cp_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES.
-       * pt.c (tsubst_omp_clause_decl): Add iterators_cache argument.
-       Adjust recursive calls.  Handle iterators.
-       (tsubst_omp_clauses): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION and
-       OMP_CLAUSE_NONTEMPORAL.  Adjust tsubst_omp_clause_decl callers.
-       (tsubst_decomp_names):
-       (tsubst_omp_for_iterator): Change orig_declv into a reference.
-       Handle range for loops.  Move orig_declv handling after declv/initv
-       handling.
-       (tsubst_expr): Force a BIND_EXPR with BLOCK around teams body.
-       Adjust finish_omp_atomic caller.  Call keep_next_level before
-       begin_omp_structured_block.  Call cp_finish_omp_range_for for range
-       for loops and use {begin,finish}_omp_structured_block instead of
-       {push,pop}_stmt_list if there are any range for loops.  Call
-       finish_omp_for_block on finish_omp_structured_block result.
-       Handle OMP_DEPOBJ.  Handle taskwait with depend clauses.  For
-       OMP_ATOMIC call tsubst_omp_clauses on clauses if any, adjust
-       finish_omp_atomic caller.  Use OMP_ATOMIC_MEMORY_ORDER rather
-       than OMP_ATOMIC_SEQ_CST.  Handle clauses on OMP_TASKGROUP.
-       (dependent_omp_for_p): Always return true for range for loops if
-       processing_template_decl.  Return true if class type iterator
-       does not have INTEGER_CST increment.
-       * semantics.c: Include memmodel.h.
-       (handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION
-       like OMP_CLAUSE_REDUCTION.
-       (handle_omp_array_sections): Likewise.  Call save_expr on array
-       reductions before calling build_index_type.  Handle depend clauses
-       with iterators.
-       (finish_omp_reduction_clause): Call save_expr for whole array
-       reduction sizes.  Don't mark OMP_CLAUSE_DECL addressable if it has
-       reference type.  Do mark decl_placeholder addressable if needed.
-       Use error_at with OMP_CLAUSE_LOCATION (c) as first argument instead
-       of error.
-       (cp_omp_finish_iterators): New function.
-       (finish_omp_clauses): Don't diagnose nonmonotonic clause with static,
-       runtime or auto schedule kinds.  Diagnose nogroup clause used with
-       reduction clause(s).  Handle depend clause with
-       OMP_CLAUSE_DEPEND_DEPOBJ.  Diagnose bit-fields.  Require
-       omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and
-       some different type for other kinds.  Use cp_build_addr_expr
-       and cp_build_indirect_ref instead of cxx_mark_addressable.
-       Handle depend clauses with iterators.  Only handle static data members
-       in the special case that const qualified vars may be specified in
-       firstprivate clause.  Complain if const qualified vars without mutable
-       members are mentioned in data-sharing clauses other than firstprivate
-       or shared.  Use error_at with OMP_CLAUSE_LOCATION (c) as first
-       argument instead of error.  Diagnose more than one nontemporal clause
-       refering to the same variable.  Use error_at rather than error for
-       priority and hint clause diagnostics.  Fix pasto for hint clause.
-       Diagnose hint expression that doesn't fold into INTEGER_CST.
-       Diagnose if clause with modifier other than cancel.  Handle
-       OMP_CLAUSE_{IN,TASK}_REDUCTION like OMP_CLAUSE_REDUCTION.  Allow any
-       lvalue as OMP_CLAUSE_DEPEND operand (besides array section), adjust
-       diagnostics.
-       (handle_omp_for_class_iterator): Don't create a new TREE_LIST if one
-       has been created already for range for, just fill TREE_PURPOSE and
-       TREE_VALUE.  Call cp_fully_fold on incr.
-       (finish_omp_for): Don't check cond/incr if cond is global_namespace.
-       Pass to c_omp_check_loop_iv_exprs orig_declv if non-NULL.  Don't
-       use IS_EMPTY_STMT on NULL pre_body.  Adjust c_finish_omp_for caller.
-       (finish_omp_for_block): New function.
-       (finish_omp_atomic): Add LOC argument, pass it through
-       to c_finish_omp_atomic and set it as location of OMP_ATOMIC* trees.
-       Remove SEQ_CST argument.  Add CLAUSES and MO arguments.  Adjust
-       c_finish_omp_atomic caller.  Stick clauses if any into first argument
-       of wrapping OMP_ATOMIC.
-       (finish_omp_depobj): New function.
-       (finish_omp_flush): Add MO argument, if not
-       MEMMODEL_LAST, emit __atomic_thread_fence call with the given value.
-       (finish_omp_cancel): Diagnose if clause with modifier other than
-       cancel.
-
-2018-11-07  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/87904
-       * cp-tree.h (struct tree_overload): Fix comment.
-       * tree.c (ovl_iterator::reveal_node): Propagate OVL_DEDUP_P.
-
-2018-11-04  Jason Merrill  <jason@redhat.com>
-
-       Implement UDL changes from P0732R2.
-       * cp-tree.h (struct releasing_vec): Move from mangle.c.
-       Add get_ref method.
-       * parser.c (cp_parser_userdef_string_literal): Use it.  Handle
-       passing the string to a single template parameter of class type.
-       (cp_parser_template_declaration_after_parameters): Allow it.
-       Pedwarn about the character pack template that was proposed but not
-       accepted for C++14, and don't suggest it.
-
-       Implement P0732R2, class types in non-type template parameters.
-       * error.c (dump_simple_decl): Look through a template parm object.
-       * mangle.c (write_template_arg): Likewise.
-       (mangle_template_parm_object): New.
-       * pt.c (template_parm_object_p, get_template_parm_object): New.
-       (invalid_tparm_referent_p): Factor from convert_nontype_argument.
-       (convert_nontype_argument, invalid_nontype_parm_type_p): Handle
-       class-type template arguments.
-       * tree.c (lvalue_kind): Likewise.
-
-       * cvt.c (ocp_convert): Don't wrap a CONSTRUCTOR in a NOP_EXPR.
-       * constexpr.c (initialized_type): Fix AGGR_INIT_EXPR handling.
-       (cxx_eval_vec_init_1): Correct type of AGGR_INIT_EXPR.
-       (cxx_eval_outermost_constant_expr): Make sure a CONSTRUCTOR has the
-       right type.  Don't wrap a CONSTRUCTOR if one was passed in.
-       * tree.c (build_aggr_init_expr): Check for void.
-
-       PR c++/60503 - wrong lambda attribute syntax.
-       * parser.c (cp_parser_lambda_declarator_opt): Fix attribute
-       handling.
-
-2018-11-02  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (duplicate_decls): Refactor checks.
-
-2018-11-01  Marek Polacek  <polacek@redhat.com>
-
-       Implement P0846R0, ADL and function templates.
-       * decl.c (grokfndecl): Allow FUNCTION_DECL in assert.
-       * lex.c (unqualified_fn_lookup_error): Handle TEMPLATE_ID_EXPR.
-       * parser.c (cp_parser_postfix_expression): Do ADL for a template-name.
-       (cp_parser_template_id): Give errors if parsing the template argument
-       list didn't go well.  Allow FUNCTION_DECL in assert.
-       (cp_parser_template_name): Consider a name to refer to a template if
-       it is an unqualified-id followed by a <.  Don't return the identifier
-       if the decl is a function and dependent.
-       * pt.c (tsubst_copy) <case OVERLOAD>: Remove assert.
-
-2018-11-01  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (struct lang_function): Delete x_local_names field.
-       (struct lang_decl_base): Rename u2sel to spare.
-       (struct lang_decl_min): Remove lang_decl_u2 union.  Keep access
-       field.
-       (LANG_DECL_U2_CHECK): Delete.
-       (DECL_DISCRIMINATOR_P): Require function scope.
-       (DECL_DISCRIMINATOR): Adjust.
-       (DECL_DISCRIMINATOR_SET_P): Delete.
-       (DECL_CAPTURED_VARIABLE, DECL_ACCESS, THUnK_VIRTUAL_OFFSET): Adjust.
-       (local_classes): Don't declare.
-       (determine_local_discriminator): Declare.
-       * decl.c (push_local_name): Delete.
-       (local_entities, determina_local_discrminator): New.
-       (duplicate_decls): Copy DECL_ACCESS. Fix formatting.
-       (cp_finish_decl): Use determine_local_discriminator.
-       (save_function_data): Drop x_local_names.
-       (finish_function): Drop local_names.
-       * decl2.c (finish_anon_union): Use determine_local_disciminator.
-       * mangle.c (write_unnamed_type_name): Use
-       discriminator_for_local_entity.
-       (local_class_index): Delete.
-       (discriminator_for_local_entity): Reimplement.
-       (write_local_name): Adjust discriminator code.
-       * name-lookup.c (do_pushtag): Call determine_local_discrimiator.
-       * semantics.c (finish_omp_threadprivate): Drop DECL_DISCRIMINATOR
-       handling.
-       * class.c (local_classes): Delete.
-       (init_class_processing): Don't init it.
-
-2018-11-01  Martin Liska  <mliska@suse.cz>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/64266
-       PR bootstrap/70422
-       PR ipa/81277
-       * cp-tree.h (DECL_FNAME_P): New macro.
-       * decl.c (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P,
-       DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
-       (cp_finish_decl):
-       * lambda.c (is_capture_proxy): Use DECL_FNAME_P.
-       * pt.c (tsubst_expr): Handle DECL_PRETTY_FUNCTION_P.
-
-2018-10-31  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (OVL_DEDUP_P): New.
-       * name-lookup.c (name_lookup::add_overload): Check OVL_DEDUP_P.
-       (get_class_binding_direct): Likwise.
-       * tree.c (ovl_make): Propagate OVL_DEDUP_P.
-       (ovl_copy): Copy it.
-       (ovl_insert): Do not keep using-decls ordered.
-       (lookup_maybe_add): Adjust comment.
-
-2018-10-30  Marek Polacek  <polacek@redhat.com>
-
-       Implement P0892R2, explicit(bool).
-       * call.c (add_template_candidate_real): Return if the declaration is
-       explicit and we're only looking for non-converting constructor.
-       * cp-tree.h (lang_decl_fn): Add has_dependent_explicit_spec_p bit.
-       (DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P): New macro.
-       (cp_decl_specifier_seq): Add explicit_specifier field.
-       (build_explicit_specifier, store_explicit_specifier): Declare.
-       * decl.c (grokdeclarator): Call store_explicit_specifier.
-       (build_explicit_specifier): New function.
-       * parser.c (cp_parser_function_specifier_opt) <case RID_EXPLICIT>:
-       Parse C++20 explicit(bool).
-       * pt.c (store_explicit_specifier, lookup_explicit_specifier): New.
-       (tsubst_function_decl): Handle explicit(dependent-expr).
-
-2018-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (grokdeclarator): Use declarator->id_loc in diagnostic
-       about flexible array members.
-
-2018-10-29  David Malcolm  <dmalcolm@redhat.com>
-
-       * cp-name-hint.h: New file.
-       * cp-tree.h (expr_to_string): New decl.
-       (suggest_alternatives_for): Move to cp-name-hint.h, changing
-       return type from bool to name_hint.
-       (suggest_alternative_in_explicit_scope): Likewise.
-       * error.c: Define INCLUDE_UNIQUE_PTR.  Include "cp-name-hint.h".
-       (expr_to_string): Make non-static.
-       (qualified_name_lookup_error): For the non-"::" case, take
-       responsibity for issuing any suggestion from
-       suggest_alternative_in_explicit_scope, as it changes from
-       returning a bool to returning a name_hint.  Replace fallback call
-       to suggest_alternatives_for to a call to
-       suggest_alternatives_in_other_namespaces, capturing the fact that
-       we don't have enough location information to issue a fix-it hint
-       for this case.  Update the error to support emitting a fix-it hint
-       where appropriate.  For the "::" case, take responsibility for
-       issuing any suggestion from suggest_alternatives_for, supporting
-       emitting a fix-it hint.
-       * lex.c: Define INCLUDE_UNIQUE_PTR.  Include "gcc-rich-location.h"
-       and "cp-name-hint.h".
-       (unqualified_name_lookup_error): Take responsibility for issuing
-       any suggestion from suggest_alternatives_for, supporting emitting
-       a fix-it hint.
-       * name-lookup.c (class namespace_limit_reached): New subclass of
-       deferred_diagnostic.
-       (class show_candidate_location): Likewise.
-       (class suggest_alternatives): Likewise.
-       (class namespace_hints): New class.
-       (suggest_alternatives_for): Convert return type from bool to
-       name_hint, replacing all direct diagnostic emission by setting
-       suggestions on the return value, or creating deferred diagnostics.
-       Specifically, split out initial traversal of namespaces into
-       namespace_hints' ctor, and maybe_decorate_with_limit, and move the
-       rest of the implementation to
-       namespace_hints::convert_candidates_to_name_hint and
-       suggest_alternatives_for_1.
-       (namespace_hints::namespace_hints): New ctor, adapted from
-       suggest_alternatives_for's initial namespace traversal, storing
-       location and name, and converting locals "candidates", "limited"
-       and "limit" into members.
-       (namespace_hints::convert_candidates_to_name_hint): New member
-       function.
-       (namespace_hints::maybe_decorate_with_limit): New member function.
-       (suggest_alternatives_for_1): New function, based on second half
-       of old implementation of suggest_alternatives_for, converting from
-       immediate emission of suggestions to using name_hint.
-       (suggest_alternatives_in_other_namespaces): New function.
-       (maybe_suggest_missing_std_header): Convert from immediate
-       emission of suggestions to using name_hint, moving emission
-       implementation to...
-       (class missing_std_header): New subclass of deferred_diagnostic.
-       (maybe_suggest_missing_header): Convert return type from bool to
-       name_hint.
-       (suggest_alternative_in_explicit_scope): Convert from immediate
-       emission of suggestions to using name_hint.
-       * parser.c: Replace include of "c-family/name-hint.h" with
-       "cp-name-hint.h".
-       (cp_parser_diagnose_invalid_type_name): Update
-       "is there a suggestion" logic for change to
-       name_hint::operator bool.  Take responsibility for emitting
-       fix-it hints from suggest_alternative_in_explicit_scope.
-       (cp_parser_namespace_name): Take responsibility for emitting
-       fix-it hints from suggest_alternative_in_explicit_scope.  Don't
-       emit the "expected namespace-name" error if we've already emitted
-       an "is not a namespace-name" error.
-
-2018-10-29  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/56856
-       * call.c (build_over_call): Eliminate the "arglocs" array, and the
-       call to maybe_constant_value when building "fargs".
-
-2018-10-29  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (create_array_type_for_decl): Add location_t parameter
-       and use it.
-       (grokdeclarator): Adjust call.
-
-2018-10-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87594 - constexpr rejects-valid with range-based for.
-       * constexpr.c (potential_constant_expression_1): If the condition
-       can't be evaluated, return true.
-
-2018-10-29  Joseph Myers  <joseph@codesourcery.com>
-           Julian Brown  <julian@codesourcery.com>
-
-       PR c++/66053
-       * semantics.c (handle_omp_array_sections_1): Allow array
-       sections with "this" pointer for OpenACC.
-
-2018-10-25  Jason Merrill  <jason@redhat.com>
-
-       * parser.c (cp_parser_sizeof_operand): Remove redundant use of
-       grokdeclarator.
-
-2018-10-24  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/86288
-       * parser.c (cp_parser_std_attribute): Canonicalize attr_ns, and when
-       :: is not present and attr_ns non-NULL, canonicalize also attr_id.
-       (cp_parser_attribute_spec): Fix comment typo.
-
-2018-10-24  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/84851
-       * call.c (maybe_warn_class_memaccess): Tighten up.
-
-2018-10-17  David Malcolm  <dmalcolm@redhat.com>
-
-       * Make-lang.in (selftest-c++): New.
-       (CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
-       (selftest-c++-gdb, selftest-c++-valgrind): Move here from
-       gcc/Makefile.in.
-
-2018-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84705
-       * tree.c (build_cplus_new): Avoid duplicate diagnostic about
-       incomplete type, early return error_mark_node if the second
-       argument is error_mark_node.
-
-2018-10-12  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.h (struct cp_parser): Drop implicit_extern_c.
-       * parser.c (cp_debug_parser): Drop implicit_extern_c.
-       (cp_parser_new): Likewise.
-       (cp_parser_translation_unit): Handle implicit extern c here.  Call
-       cp_parser_toplevel_declaration.
-       (cp_parser_toplevel_declaration): New, broken out of ...
-       (cp_parser_declaration_seq_opt): ... here.  Call it.  Drop
-       implicit extern C handling.
-
-2018-10-11  Will Wray  <wjwray@gmail.com>
-
-       PR c++/87364
-       * cxx-pretty-print.c (pp_cxx_enumeration_constant): New function.
-       (cxx_pretty_printer::constant): Use it.
-
-2018-10-11  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/84993
-       * call.c (enforce_access): Move diagnostics to...
-       (complain_about_access): ...this new function.
-       * cp-tree.h (class access_failure_info): Rename split out field
-       "m_field_decl" into "m_decl" and "m_diag_decl".
-       (access_failure_info::record_access_failure): Add tree param.
-       (access_failure_info::was_inaccessible_p): New accessor.
-       (access_failure_info::get_decl): New accessor.
-       (access_failure_info::get_diag_decl): New accessor.
-       (access_failure_info::get_any_accessor): New member function.
-       (access_failure_info::add_fixit_hint): New static member function.
-       (complain_about_access): New decl.
-       * typeck.c (access_failure_info::record_access_failure): Update
-       for change to fields.
-       (access_failure_info::maybe_suggest_accessor): Split out into...
-       (access_failure_info::get_any_accessor): ...this new function...
-       (access_failure_info::add_fixit_hint): ...and this new function.
-       (finish_class_member_access_expr): Split out "has no member named"
-       error-handling into...
-       (complain_about_unrecognized_member): ...this new function, and
-       check that the guessed name is accessible along the access path.
-       Only provide a spell-correction fix-it hint if it is; otherwise,
-       attempt to issue an accessor fix-it hint.
-
-2018-10-11  Nathan Sidwell  <nathan@acm.org>
-
-       * parser.c (cp_parser_translation_unit): Return void.  Don't fail
-       at first extra }, simplify logic.
-       (c_parse_file): Call finish_translation_unit here.
-
-2018-10-11  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/87582
-       * typeck.c (maybe_warn_about_returning_address_of_local): If
-       whats_returned is a structured binding identifier and the structured
-       binding is a reference, recurse on its initializer.
-
-       PR c++/87547
-       * rtti.c (get_tinfo_decl_dynamic): Use unlowered_expr_type instead
-       of TREE_TYPE.
-
-2018-10-10  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87567 - constexpr rejects call to non-constexpr function.
-       * constexpr.c (potential_constant_expression_1) <case FOR_STMT>: Return
-       true if the condition is always false.
-       <case WHILE_STMT>: Likewise.
-
-2018-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84423
-       * pt.c (convert_template_argument): Immediately return error_mark_node
-       if the second argument is erroneous.
-       * parser.c (cp_parser_type_id): Add location_t * parameter.
-       (cp_parser_type_id_1): Likewise.
-       (cp_parser_alias_declaration): Adjust cp_parser_type_id call,
-       obtain the location of the type and save it.
-       (cp_parser_template_type_arg): Adjust.
-       (cp_parser_trailing_type_id): Likewise.
-       * decl.c (grokdeclarator): Improve error message for 'auto' in
-       alias declaration.
-
-2018-10-08  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/71128
-       * pt.c (do_decl_instantiation): Per 12.6.8/5, a concept cannot be
-       explicitly instantiated.
-
-2018-10-05  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/56856
-       * call.c (build_over_call): Build a vec of locations of the
-       arguments before the call to maybe_constant_value, and pass to
-       check_function_arguments.
-       * cp-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Define as
-       c_get_substring_location.
-       * parser.c (cp_parser_string_literal): Capture string
-       concatenation locations.
-
-2018-10-04  Nathan Sidwell  <nathan@acm.org>
-
-       * lang-specs.h: Use string contatenation, not line splicing.
-
-2018-10-03  Jason Merrill  <jason@redhat.com>
-
-       Implement P0840, language support for empty objects.
-       * tree.c (handle_no_unique_addr_attribute): New.
-       (cxx_attribute_table): Add [[no_unique_address]].
-       * class.c (field_poverlapping_p): New.
-       (layout_class_type): Check it.  Adjust DECL_SIZE of potentially
-       overlapping fields.
-       (layout_empty_base_or_field): Rename from layout_empty_base, handle
-       FIELD_DECL as well.
-       (build_base_field, record_subobject_offsets): Adjust.
-
-2018-10-03  Martin Liska  <mliska@suse.cz>
-
-       PR gcov-profile/86109
-       * parser.c (cp_parser_lambda_declarator_opt):
-       Set DECL_LAMBDA_FUNCTION for lambdas.
-
-2018-10-02  Richard Biener  <rguenther@suse.de>
-
-       * name-lookup.c (check_local_shadow): Do not test DECL_FROM_INLINE.
-
-2018-09-28  Eric Botcazou  <ebotcazou@adacore.com>
-           Pierre-Marie de Rodat  <derodat@adacore.com>
-
-       * method.c (use_thunk): Adjust call to cgraph_node::create_thunk.
-
-2018-09-28  Richard Biener  <rguenther@suse.de>
-
-       * error.c (cp_print_error_function): Simplify by eliding
-       the BLOCK_ABSTRACT_ORIGIN chasing.
-
-2018-09-27  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84940
-       * semantics.c (finish_unary_op_expr): Check return value of
-       build_x_unary_op for error_mark_node.
-
-2018-09-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/87398
-       * constexpr.c (cxx_eval_constant_expression) <case OBJ_TYPE_REF>: Only
-       look through COMPONENT_REFs with DECL_FIELD_IS_BASE FIELD_DECLs.
-
-2018-09-25  Martin Liska  <mliska@suse.cz>
-
-       * name-lookup.c (namespace_scope_ht_size): Remove
-       unused function.
-       * parser.c (cp_lexer_next_token_is_not_keyword): Likewise.
-
-2018-09-24  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/85070
-       * method.c (lazily_declare_fn): During error-recovery add_method
-       may return false.
-
-2018-09-21  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87372 - __func__ constexpr evaluation.
-       * constexpr.c (maybe_constant_init_1): Pass false for strict down to
-       cxx_eval_outermost_constant_expr.
-
-2018-09-20  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87109 - wrong ctor with maybe-rvalue semantics.
-       * call.c (build_user_type_conversion_1): Refine the maybe-rvalue
-       check to only return if we're converting the return value to a base
-       class.
-
-2018-09-20  Allan Sandfeld Jensen  <allan.jensen@qt.io>
-
-       * g++spec.c (lang_specific_driver): Handle -r like -nostdlib.
-
-2018-09-20  Jason Merrill  <jason@redhat.com>
-
-       PR c++/87075 - ICE with constexpr array initialization.
-       * constexpr.c (cxx_eval_vec_init_1): Handle trivial initialization.
-
-2018-09-19  Marek Polacek  <polacek@redhat.com>
-
-       Add -Wclass-conversion.
-       * decl.c (grok_op_properties): Change a warning from -Wconversion to
-       -Wclass-conversion.  Make it print the types.
-
-2018-09-19  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/87324
-       * parser.c (cp_parser_initializer_list): Assign error_mark_node
-       to the index upon error.
-
-2018-09-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87357 - missing -Wconversion warning
-       * decl.c (grok_op_properties): Remove diagnostic parts mentioning
-       a conversion to a reference to void.  Use
-       same_type_ignoring_top_level_qualifiers_p rather than comparing types
-       directly.
-
-2018-09-18  Marek Polacek  <polacek@redhat.com>
-
-       P1064R0 - Allowing Virtual Function Calls in Constant Expressions
-       * call.c (build_over_call): No longer check if we're outside a template
-       function.
-       * class.c (build_vtbl_initializer): Build vtable's constructor with
-       indexes.
-       * constexpr.c (cxx_eval_constant_expression): Don't ignore _vptr's
-       initializer.  Handle OBJ_TYPE_REF.
-       (potential_constant_expression_1): Handle OBJ_TYPE_REF.
-       * decl.c (maybe_commonize_var): Bail out for any DECL_ARTIFICIAL.
-       (initialize_artificial_var): Mark the variable as constexpr.
-       (grokdeclarator): Change error to pedwarn.  Only warn when
-       pedantic and not C++2a.
-
-2018-09-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/85065
-       * cp-tree.h (NON_ERROR): New.
-       * pt.c (auto_hash::hash): Use it.
-       (do_auto_deduction): Likewise.
-
-2018-09-18  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/86881
-       * name-lookup.c (check_local_shadow): Ignore auto types.
-
-2018-09-17  David Malcolm  <dmalcolm@redhat.com>
-
-       * error.c (range_label_for_type_mismatch::get_text): Update for
-       new param.
-
-2018-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-
-       * typeck2.c (digest_init_r): Fix overlength strings.
-
-2018-09-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       PR c++/87093
-       * method.c (constructible_expr): We're in an unevaluated context
-       in all cases, not just for class targets.
-
-2018-09-12  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/85110
-       * call.c (struct conversion_info): Add "loc" field.
-       (arg_conversion_rejection): Add "loc" param, using it to
-       initialize the new field.
-       (bad_arg_conversion_rejection): Likewise.
-       (explicit_conversion_rejection): Initialize the new field to
-       UNKNOWN_LOCATION.
-       (template_conversion_rejection): Likewise.
-       (add_function_candidate): Pass on the argument location to the new
-       param of arg_conversion_rejection.
-       (add_conv_candidate): Likewise.
-       (build_builtin_candidate): Likewise.
-       (build_user_type_conversion_1): Likewise.
-       (single_z_candidate): New function.
-       (maybe_get_bad_conversion_for_unmatched_call): New function.
-       (complain_about_bad_argument): New function, based on part of
-       convert_for_assignment.
-       (build_new_method_call_1): Split out handling of the "no viable
-       candidates" case into...
-       (complain_about_no_candidates_for_method_call): ...this new
-       function, and use the new functions above to special-case the
-       handling of a single non-viable candidate due to a bad argument.
-       * cp-tree.h (complain_about_bad_argument): New decl.
-       * typeck.c (convert_for_assignment): Split out one error-handling
-       case into complain_about_bad_argument.
-
-2018-09-09  Cesar Philippidis  <cesar@codesourcery.com>
-           Julian Brown  <julian@codesourcery.com>
-
-       PR middle-end/86336
-       * semantics.c (finish_omp_clauses): Treat C++ references the same in
-       OpenACC as OpenMP.
-
-2018-08-28  Martin Liska  <mliska@suse.cz>
-
-       * constexpr.c (cxx_eval_call_expression): Add quotes
-       to -fconstexpr-depth=.
-
-2018-09-10  Marek Polacek  <polacek@redhat.com>
-
-       * class.c (build_vtbl_ref): Remove.
-       (build_vtbl_ref_1): Rename to build_vtbl_ref.
-       (build_vfn_ref): Call build_vtbl_ref instead of build_vtbl_ref_1.
-
-2018-09-08  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87150 - wrong ctor with maybe-rvalue semantics.
-       * call.c (struct conversion): Update commentary.
-       (standard_conversion): Set rvaluedness_matches_p if LOOKUP_PREFER_RVALUE
-       for ck_base.
-
-2018-09-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86678 - constexpr function with non-constant after return.
-       * constexpr.c (potential_constant_expression_1): Add jump_target.
-       (breaks): Check for BREAK_STMT.
-       (continues): Check for CONTINUE_STMT.
-
-2018-09-08  Marek Polacek  <polacek@redhat.com>
-
-       * cxx-pretty-print.c (cxx_pretty_printer::statement) <case
-       RANGE_FOR_SMT>: Handle RANGE_FOR_INIT_STMT.
-
-2018-09-07  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87152 - range-based for loops with initializer broken in templates.
-       * constexpr.c (potential_constant_expression_1) <case RANGE_FOR_STMT>:
-       Recur into RANGE_FOR_INIT_STMT.
-       * cp-tree.def: Add RANGE_FOR_INIT_STMT to RANGE_FOR_STMT.
-       * cp-tree.h (RANGE_FOR_INIT_STMT): Define.
-       * dump.c (cp_dump_tree) <case RANGE_FOR_STMT>: Also dump
-       RANGE_FOR_INIT_STMT.
-       * pt.c (tsubst_expr) <case RANGE_FOR_STMT>: Recur into
-       RANGE_FOR_INIT_STMT.
-       * semantics.c (begin_range_for_stmt): Adjust call to build_stmt.
-       Do put the init statement in RANGE_FOR_INIT_STMT.
-       (finish_range_for_decl): Pop it for templates.
-
-2018-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-
-       * decl.c (check_initializer): Call cp_complete_array_type.
-
-2018-09-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87109, wrong overload with ref-qualifiers.
-       * call.c (build_user_type_conversion_1): Use NULL instead of 0.  Bail
-       out if performing the maybe-rvalue overload resolution and a conversion
-       function is getting called.
-
-       PR c++/86982, -Wreturn-local-addr and std::move and std::forward.
-       * typeck.c (maybe_warn_about_returning_address_of_local): Handle calls
-       to std::move or std::forward.
-       (is_std_forward_p): New function.
-
-2018-09-05  Pádraig Brady  <p@draigbrady.com>
-
-       PR c++/87185
-       * lambda.c (prune_lambda_captures): Protect against const_vars.get
-       returning NULL.
-
-2018-09-04  Marek Polacek  <polacek@redhat.com>
-
-       * cp-tree.h (treat_lvalue_as_rvalue_p): Declare.
-       * except.c (build_throw): Use it.  Use CP_TYPE_VOLATILE_P.
-       * typeck.c (treat_lvalue_as_rvalue_p): No longer static.  Add PARM_OK
-       parameter.
-       (maybe_warn_pessimizing_move): Adjust treat_lvalue_as_rvalue_p call.
-       (check_return_expr): Likewise.
-
-2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84980
-       * constraint.cc (finish_shorthand_constraint): Early return if the
-       constraint is erroneous.
-
-2018-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-
-       * decl.c (eval_check_narrowing): Remove.
-       (check_initializer): Move call to braced_list_to_string from here ...
-       * typeck2.c (store_init_value): ... to here.
-       (digest_init_r): Remove handing of signed/unsigned char strings.
-
-2018-08-31  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/87155
-       PR c++/84707
-       * name-lookup.c (name_lookup::search_namespace): Don't look at
-       inlines when searching for NULL names.
-
-       * decl.c (decls_match): Remove SYSTEM_IMPLICIT_EXTERN_C matching
-       of return types and parms.
-       * parser.c (cp_parser_parameter_declaration_clause): Likewise,
-       '()' always means '(void)'.
-
-2018-08-29  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/87095
-       * decl.c (begin_destructor_body): If current_class_type has
-       virtual bases and the primary base is nearly empty virtual base,
-       voidify clearing of vptr and make it conditional on in-charge
-       argument.
-
-2018-08-29  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/85265
-       * parser.c (cp_parser_introduction_list): If cp_parser_identifier
-       returns error_mark_node early exit the loop.
-       (cp_parser_template_introduction): Improve error-recovery, remove
-       error call about empty introduction-list.
-
-2018-08-29  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/85110
-       * call.c (print_conversion_rejection): Add "fn" param and use it
-       for "no known conversion" messages to underline the pertinent
-       param.
-       (print_z_candidate): Supply "fn" to the new param above.
-
-2018-08-29  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/87122
-       * pt.c (tsubst_expr) <case RANGE_FOR_STMT>: If
-       processing_template_decl and decl is structured binding decl, call
-       cp_finish_decomp.
-
-2018-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/86546
-       * decl.c (finish_case_label): If the type is erroneous early
-       return error_mark_node.
-
-2018-08-27  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/63392
-       * parser.c (cp_parser_diagnose_invalid_type_name): Add fix-it
-       hint.
-
-2018-08-27  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/86993
-       * cp-tree.h (cxx_readonly_error): Add location_t argument.
-       * typeck2.c (cxx_readonly_error): Add LOC argument, pass it to
-       ERROR_FOR_ASSIGNMENT macro and readonly_error.  Add LOC argument
-       to ERROR_FOR_ASSIGNMENT macro, use error_at instead of error and
-       pass LOC to it.  Formatting fixes.
-       * typeck.c (cp_build_unary_op): Pass location to cxx_readonly_error.
-       (cp_build_modify_expr): Pass loc to cxx_readonly_error.
-       * semantics.c (finish_asm_stmt): Pass input_location to
-       cxx_readonly_error.
-
-2018-08-27  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/87091
-       * decl.c (grokdeclarator): Update for conversion of show_caret_p
-       to a tri-state.
-       * error.c (cp_printer): Likewise.
-       * name-lookup.c (maybe_suggest_missing_std_header): Update call to
-       maybe_add_include_fixit to suggest overriding the location, as it
-       is for a note.
-       * parser.c (cp_parser_string_literal): Update for conversion of
-       show_caret_p to a tri-state.
-       (cp_parser_elaborated_type_specifier): Likewise.
-       (set_and_check_decl_spec_loc): Likewise.
-       * pt.c (listify): Update call to maybe_add_include_fixit to not
-       override the location, as it is for an error.
-       * rtti.c (typeid_ok_p): Likewise.
-
-2018-08-27  Martin Liska  <mliska@suse.cz>
-
-       * call.c (build_call_a): Use new function
-       fndecl_built_in_p and remove check for FUNCTION_DECL if
-       possible.
-       (build_cxx_call): Likewise.
-       * constexpr.c (constexpr_fn_retval): Likewise.
-       (cxx_eval_builtin_function_call): Likewise.
-       (cxx_eval_call_expression): Likewise.
-       (potential_constant_expression_1): Likewise.
-       * cp-gimplify.c (cp_gimplify_expr): Likewise.
-       (cp_fold): Likewise.
-       * decl.c (decls_match): Likewise.
-       (validate_constexpr_redeclaration): Likewise.
-       (duplicate_decls): Likewise.
-       (make_rtl_for_nonlocal_decl): Likewise.
-       * name-lookup.c (consider_binding_level): Likewise.
-       (cp_emit_debug_info_for_using): Likewise.
-       * semantics.c (finish_call_expr): Likewise.
-       * tree.c (builtin_valid_in_constant_expr_p): Likewise.
-
-2018-08-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/87080
-       * typeck.c (maybe_warn_pessimizing_move): Do nothing in a template.
-
-       PR c++/87029, Implement -Wredundant-move.
-       * typeck.c (treat_lvalue_as_rvalue_p): New function.
-       (maybe_warn_pessimizing_move): Call convert_from_reference.
-       Warn about redundant moves.
-
-2018-08-24  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/67012
-       PR c++/86942
-       * decl.c (grokdeclarator): Disallow functions with trailing return
-       type with decltype(auto) as its type.  Also check the function if
-       it's inner declarator doesn't exist
-
-2018-08-21  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86499
-       * parser.c (cp_parser_lambda_introducer): Give error if a non-local
-       lambda has a capture-default.
-
-2018-08-21  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (check_static_variable_definition): Change to return void.
-
-2018-08-21  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86981, Implement -Wpessimizing-move.
-       * typeck.c (decl_in_std_namespace_p): New.
-       (is_std_move_p): New.
-       (maybe_warn_pessimizing_move): New.
-       (can_do_nrvo_p): New, factored out of ...
-       (check_return_expr): ... here.  Warn about potentially harmful
-       std::move in a return statement.
-
-       PR c++/65043
-       * call.c (standard_conversion): Set check_narrowing.
-       * typeck2.c (check_narrowing): Use CP_INTEGRAL_TYPE_P rather
-       than comparing with INTEGER_TYPE.
-
-       * cp-tree.h: Fix typo.
-
-2018-08-20  David Malcolm  <dmalcolm@redhat.com>
-
-       PR other/84889
-       * call.c (build_user_type_conversion_1): Add auto_diagnostic_group
-       instance(s).
-       (print_error_for_call_failure): Likewise.
-       (build_op_call_1): Likewise.
-       (build_conditional_expr_1): Likewise.
-       (build_new_op_1): Likewise.
-       (build_op_delete_call): Likewise.
-       (convert_like_real): Likewise.
-       (build_over_call): Likewise.
-       (build_new_method_call_1): Likewise.
-       (joust): Likewise.
-       * class.c (check_tag): Likewise.
-       (finish_struct_anon_r): Likewise.
-       (one_inherited_ctor): Likewise.
-       (finalize_literal_type_property): Likewise.
-       (explain_non_literal_class): Likewise.
-       (find_flexarrays): Likewise.
-       (resolve_address_of_overloaded_function): Likewise.
-       * constexpr.c (ensure_literal_type_for_constexpr_object): Likewise.
-       (is_valid_constexpr_fn): Likewise.
-       (cx_check_missing_mem_inits): Likewise.
-       * cp-gimplify.c (cp_genericize_r): Likewise.
-       * cvt.c (maybe_warn_nodiscard): Likewise.
-       * decl.c (warn_extern_redeclared_static): Likewise.
-       (check_redeclaration_exception_specification): Likewise.
-       (check_no_redeclaration_friend_default_args): Likewise.
-       (duplicate_decls): Likewise.
-       (redeclaration_error_message): Likewise.
-       (warn_misplaced_attr_for_class_type): Likewise.
-       * decl2.c (finish_static_data_member_decl): Likewise.
-       (no_linkage_error): Likewise.
-       (cp_warn_deprecated_use): Likewise.
-       * error.c (qualified_name_lookup_error): Likewise.
-       * friend.c (make_friend_class): Likewise.
-       (do_friend): Likewise.
-       * init.c (perform_member_init): Likewise.
-       (build_new_1): Likewise.
-       (build_vec_delete_1): Likewise.
-       (build_delete): Likewise.
-       * lex.c (unqualified_name_lookup_error): Likewise.
-       * name-lookup.c (check_extern_c_conflict): Likewise.
-       (inform_shadowed): New function.
-       (check_local_shadow): Add auto_diagnostic_group instances,
-       replacing goto "inform_shadowed" label with call to subroutine.
-       (set_local_extern_decl_linkage): Add auto_diagnostic_group
-       instance(s).
-       * parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
-       (cp_parser_namespace_name): Likewise.
-       * pt.c (check_specialization_namespace): Likewise.
-       (check_template_variable): Likewise.
-       (warn_spec_missing_attributes): Likewise.
-       (check_explicit_specialization): Likewise.
-       (process_partial_specialization): Likewise.
-       (lookup_template_class_1): Likewise.
-       (finish_template_variable): Likewise.
-       (do_auto_deduction): Likewise.
-       * search.c (check_final_overrider): Likewise.
-       (look_for_overrides_r): Likewise.
-       * tree.c (maybe_warn_parm_abi): Likewise.
-       * typeck.c (cxx_sizeof_expr): Likewise.
-       (cp_build_function_call_vec): Likewise.
-       (cp_build_binary_op): Likewise.
-       (convert_for_assignment): Likewise.
-       (maybe_warn_about_returning_address_of_local): Likewise.
-       * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
-       (check_narrowing): Likewise.
-
-2018-08-17  David Malcolm  <dmalcolm@redhat.com>
-
-       * typeck.c (string_conv_p): Extract location from EXP and use it
-       in preference to input_location when issuing warnings.
-
-2018-08-15  David Malcolm  <dmalcolm@redhat.com>
-
-       * call.c: Include "gcc-rich-location.h".
-       (convert_like_real): Add range label for "invalid conversion"
-       diagnostic.
-       (perform_implicit_conversion_flags): Add type label to the
-       "could not convert" error.
-       * error.c: Include "gcc-rich-location.h".
-       (range_label_for_type_mismatch::get_text): New function.
-       * typeck.c (convert_for_assignment): Add type label to
-       the "cannot convert" error if a location is available.
-
-2018-08-15  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (check_previous_goto_1): When decl_jump_unsafe returns 2
-       emit an error instead of a permerror.
-
-2018-08-13  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/57891
-       * call.c (struct conversion): Add check_narrowing_const_only.
-       (build_converted_constant_expr): Set check_narrowing and
-       check_narrowing_const_only.  Give error if expr is error node.
-       (convert_like_real): Pass it to check_narrowing.
-       * cp-tree.h (check_narrowing): Add a default parameter.
-       * decl.c (compute_array_index_type): Use input_location instead of
-       location_of.
-       * pt.c (convert_nontype_argument): Return NULL_TREE if tf_error.
-       * typeck2.c (check_narrowing): Don't warn for instantiation-dependent
-       expressions.  Call maybe_constant_value instead of
-       fold_non_dependent_expr.  Don't mention { } in diagnostic.  Only check
-       narrowing for constants if CONST_ONLY.
-
-2018-08-13  Martin Sebor  <msebor@redhat.com>
-
-       PR tree-optimization/71625
-       * decl.c (check_initializer):  Call braced_list_to_string.
-       (eval_check_narrowing): New function.
-       * gcc/cp/typeck2.c (digest_init_r): Accept strings literals
-       as initilizers for all narrow character types.
-
-2018-08-13  Marek Polacek  <polacek@redhat.com>
-
-       P0806R2 - Deprecate implicit capture of this via [=]
-       * lambda.c (add_default_capture): Formatting fixes.  Warn about
-       deprecated implicit capture of this via [=].
-
-       PR c++/86915
-       * decl.c (create_array_type_for_decl): Handle null name.
-
-2018-08-10  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86728 - C variadic generic lambda.
-       * parser.c (cp_parser_parameter_declaration): Don't turn 'auto' into
-       a pack if it's followed by a declarator-id.
-
-2018-08-08  Jakub Jelinek  <jakub@redhat.com>
-
-       P0595R1 - is_constant_evaluated
-       * cp-tree.h (enum cp_built_in_function): New.
-       (maybe_constant_init): Add pretend_const_required argument.
-       * typeck2.c (store_init_value): Pass true as new argument to
-       maybe_constant_init.
-       * constexpr.c (constexpr_fn_retval): Check also DECL_BUILT_IN_CLASS
-       for BUILT_IN_UNREACHABLE.
-       (struct constexpr_ctx): Add pretend_const_required field.
-       (cxx_eval_builtin_function_call): Use DECL_IS_BUILTIN_CONSTANT_P
-       macro.  Handle CP_BUILT_IN_IS_CONSTANT_EVALUATED.  Check also
-       DECL_BUILT_IN_CLASS for BUILT_IN_UNREACHABLE.
-       (cxx_eval_outermost_constant_expr): Add pretend_const_required
-       argument, initialize pretend_const_required field in ctx.  If the
-       result is TREE_CONSTANT and non_constant_p, retry with
-       pretend_const_required false if it was true.
-       (is_sub_constant_expr): Initialize pretend_const_required_field in
-       ctx.
-       (cxx_constant_value): Pass true as pretend_const_required to
-       cxx_eval_outermost_constant_expr.
-       (maybe_constant_value): Pass false as pretend_const_required to
-       cxx_eval_outermost_constant_expr.
-       (fold_non_dependent_expr): Likewise.
-       (maybe_constant_init_1): Add pretend_const_required argument, pass it
-       down to cxx_eval_outermost_constant_expr.  Pass !allow_non_constant
-       instead of false as strict to cxx_eval_outermost_constant_expr.
-       (maybe_constant_init): Add pretend_const_required argument, pass it
-       down to maybe_constant_init_1.
-       (cxx_constant_init): Pass true as pretend_const_required to
-       maybe_constant_init_1.
-       * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPRs to
-       CP_BUILT_IN_IS_CONSTANT_EVALUATED.
-       (cp_fold): Don't fold CP_BUILT_IN_IS_CONSTANT_EVALUATED calls.
-       * decl.c: Include langhooks.h.
-       (cxx_init_decl_processing): Register __builtin_is_constant_evaluated
-       built-in.
-       * tree.c (builtin_valid_in_constant_expr_p): Return true for
-       CP_BUILT_IN_IS_CONSTANT_EVALUATED.
-       * pt.c (declare_integer_pack): Initialize DECL_FUNCTION_CODE.
-
-       PR c++/86836
-       * pt.c (tsubst_expr): For structured bindings, call tsubst_decomp_names
-       before tsubst_init, not after it.
-
-       PR c++/86738
-       * constexpr.c (cxx_eval_binary_expression): For arithmetics involving
-       NULL pointer set *non_constant_p to true.
-       (cxx_eval_component_reference): For dereferencing of a NULL pointer,
-       set *non_constant_p to true and return t.
-
-2018-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/59480, DR 136
-       * decl.c (check_no_redeclaration_friend_default_args): New.
-       (duplicate_decls): Use the latter; also check that a friend
-       declaration specifying default arguments is a definition.
-
-2018-08-07  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       PR c++/79133
-       * name-lookup.c (check_local_shadow): Reject captures and parameters
-       with the same name.
-
-2018-08-06  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86767
-       * constexpr.c (cxx_eval_statement_list): Handle continue.
-
-2018-08-03  David Malcolm  <dmalcolm@redhat.com>
-           Jonathan Wakely  <jwakely@redhat.com>
-
-       * decl.c: Include "gcc-rich-location.h".
-       (add_return_star_this_fixit): New function.
-       (finish_function): When warning about missing return statements in
-       functions returning non-void, add a "return *this;" fix-it hint for
-       assignment operators.
-
-2018-08-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86706
-       * class.c (build_base_path): Use currently_open_class.
-
-2018-08-02  David Malcolm  <dmalcolm@redhat.com>
-
-       * error.c (cxx_print_error_function): Duplicate "file" before
-       passing it to pp_set_prefix.
-       (cp_print_error_function): Use pp_take_prefix when saving the
-       existing prefix.
-
-2018-08-02  Richard Biener  <rguenther@suse.de>
-
-       PR c++/86763
-       * class.c (layout_class_type): Copy TYPE_TYPELESS_STORAGE
-       to the CLASSTYPE_AS_BASE.
-
-2018-08-01  Martin Sebor  <msebor@redhat.com>
-
-       PR tree-optimization/86650
-       * error.c (cp_printer): Move usage of EXPR_LOCATION (t) and
-       TREE_BLOCK (t) from within percent_K_format to this callsite.
-
-2018-08-01  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/86661
-       * class.c (note_name_declared_in_class): Use location_of in permerror
-       instead of DECL_SOURCE_LOCATION (for OVERLOADs).
-
-2018-07-31  Tom de Vries  <tdevries@suse.de>
-
-       PR debug/86687
-       * optimize.c (update_cloned_parm): Copy DECL_BY_REFERENCE.
-
-2018-07-31  Jakub Jelinek  <jakub@redhat.com>
-
-       P1008R1 - prohibit aggregates with user-declared constructors
-       * class.c (check_bases_and_members): For C++2a set
-       CLASSTYPE_NON_AGGREGATE based on TYPE_HAS_USER_CONSTRUCTOR rather than
-       type_has_user_provided_or_explicit_constructor.
-
-2018-07-31  Martin Liska  <mliska@suse.cz>
-
-       PR c++/86653
-       * parser.c (cp_parser_condition): Initialize non_constant_p
-       to false.
-
-2018-07-28  David Malcolm  <dmalcolm@redhat.com>
-
-       * error.c (cp_printer): In the leading comment, move "%H" and "%I"
-       into alphabetical order, and add missing "%G" and "%K".  Within
-       the switch statement, move cases 'G', 'H', 'I' and 'K' so that the
-       cases are in alphabetical order.
-
-2018-07-25  Jakub Jelinek  <jakub@redhat.com>
-
-       * cp-tree.h (enum cp_tree_index): Add
-       CPTI_{ABI_TAG,ALIGNED,BEGIN,END,GET,TUPLE_{ELEMENT,SIZE}}_IDENTIFIER
-       and CPTI_{GNU,TYPE,VALUE,FUN,CLOSURE}_IDENTIFIER.
-       (abi_tag_identifier, aligned_identifier, begin_identifier,
-       end_identifier, get__identifier, gnu_identifier,
-       tuple_element_identifier, tuple_size_identifier, type_identifier,
-       value_identifier, fun_identifier, closure_identifier): Define.
-       * decl.c (initialize_predefined_identifiers): Initialize the above
-       identifiers.
-       (get_tuple_size): Use tuple_size_identifier instead of
-       get_identifier ("tuple_size") and value_identifier instead of
-       get_identifier ("value").
-       (get_tuple_element_type): Use tuple_element_identifier instead of
-       get_identifier ("tuple_element") and type_identifier instead of
-       get_identifier ("type").
-       (get_tuple_decomp_init): Use get__identifier instead of
-       get_identifier ("get").
-       * lambda.c (maybe_add_lambda_conv_op): Use fun_identifier instead of
-       get_identifier ("_FUN").
-       * parser.c (cp_parser_lambda_declarator_opt): Use closure_identifier
-       instead of get_identifier ("__closure").
-       (cp_parser_std_attribute): Use gnu_identifier instead of
-       get_identifier ("gnu").
-       (cp_parser_std_attribute_spec): Likewise.  Use aligned_identifier
-       instead of get_identifier ("aligned").
-       * class.c (check_abi_tags, inherit_targ_abi_tags): Use
-       abi_tag_identifier instead of get_identifier ("abi_tag").
-
-       PR c++/85515
-       * cp-tree.h (enum cp_tree_index): Add
-       CPTI_FOR_{RANGE,BEGIN,END}{,_}_IDENTIFIER.
-       (for_range__identifier, for_begin__identifier, for_end__identifier,
-       for_range_identifier, for_begin_identifier, for_end_identifier):
-       Define.
-       * decl.c (initialize_predefined_identifiers): Initialize
-       for_{range,begin,end}{,_}_identifier.
-       * parser.c (build_range_temp): Use for_range__identifier instead of
-       get_identifier ("__for_range").
-       (cp_convert_range_for): Use for_begin__identifier and
-       for_end__identifier instead of get_identifier ("__for_begin") and
-       get_identifier ("__for_end").
-       * semantics.c (finish_for_stmt): Rename "__for_{range,begin,end} "
-       local symbols to "__for_{range,begin,end}".
-
-2018-07-23  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/86569
-       * cp-gimplify.c (cp_fold): Don't fold comparisons into other kind
-       of expressions other than INTEGER_CST regardless of TREE_NO_WARNING
-       or warn_nonnull_compare.
-
-2018-07-19  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       Revert fix for c++/59480 (and testsuite followup)
-
-       2019-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/59480, DR 136
-       * decl.c (check_no_redeclaration_friend_default_args): New.
-       (duplicate_decls): Use the latter; also check that a friend
-       declaration specifying default arguments is a definition.
-
-2018-07-18  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/86550
-       * parser.c (cp_parser_decl_specifier_seq): Diagnose invalid type
-       specifier if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR.
-
-2018-07-18  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86190 - bogus -Wsign-conversion warning
-       * typeck.c (cp_build_binary_op): Fix formatting.  Add a warning
-       sentinel.
-
-2018-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/59480, DR 136
-       * decl.c (check_no_redeclaration_friend_default_args): New.
-       (duplicate_decls): Use the latter; also check that a friend
-       declaration specifying default arguments is a definition.
-
-2018-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * class.c (note_name_declared_in_class): Prefer permerror + inform
-       to a pair of permerrors; use DECL_SOURCE_LOCATION.
-
-2018-07-18  Richard Biener  <rguenther@suse.de>
-
-       PR debug/86523
-       * decl2.c (c_parse_final_cleanups): Call write_out_vars before
-       start_static_storage_duration_function sets current_function_decl.
-
-2018-07-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86480 - nested variadic lambda and constexpr if.
-       * pt.c (find_parameter_packs_r) [IF_STMT]: Don't walk into
-       IF_STMT_EXTRA_ARGS.
-       * tree.c (cp_walk_subtrees) [DECLTYPE_TYPE]: Set
-       cp_unevaluated_operand.
-       [ALIGNOF_EXPR] [SIZEOF_EXPR] [NOEXCEPT_EXPR]: Likewise.
-
-2018-07-16  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * class.c (resolve_address_of_overloaded_function): Don't emit an
-       inform if the matching permerror returns false.
-       * pt.c (check_specialization_namespace): Likewise.
-
-2018-07-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/3698
-       PR c++/86208
-       * cp-gimplify.c (cp_genericize_r): When using extern_decl_map, or
-       in TREE_USED flag from stmt to h->to.
-
-2018-07-13  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/86374
-       * pt.c (lookup_template_class_1): Use tsubst_aggr_type for
-       contexts that are classes.
-       * parser.c (cp_parser_template_id): Combine entering_scope decl &
-       initializer.
-
-2018-07-12  Jakub Jelinek  <jakub@redhat.com>
-
-       * decl2.c (cplus_decl_attributes): Don't diagnose vars without mappable
-       type here, instead add "omp declare target implicit" attribute.  Add
-       that attribute instead of "omp declare target" also when
-       processing_template_decl.
-       * decl.c (cp_finish_decl): Diagnose vars without mappable type here,
-       and before calling cp_omp_mappable_type call complete_type.
-
-2018-07-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR sanitizer/86406
-       * cp-gimplify.c (cp_maybe_instrument_return): Skip trailing
-       DEBUG_BEGIN_STMTs.
-
-       PR c++/86443
-       * semantics.c (handle_omp_for_class_iterator): Remove lastp argument,
-       instead of setting *lastp turn orig_declv elt into a TREE_LIST.
-       (finish_omp_for): Adjust handle_omp_for_class_iterator caller.
-       * pt.c (tsubst_omp_for_iterator): Allow OMP_FOR_ORIG_DECLS to contain
-       TREE_LIST for both the original class iterator and the "last" helper
-       var.
-
-2018-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (grokdeclarator): Use rich_location::add_range in three
-       more places; include gcc-rich-location.h.
-
-2018-07-07  Aldy Hernandez  <aldyh@redhat.com>
-
-       * decl.c (build_enumerator): Change overflow type to overflow_type.
-       * init.c (build_new_1): Same.
-
-2018-07-05  Nathan Sidwell  <nathan@acm.org>
-
-       * cp/decl.c (decls_match): Check SYSTEM_IMPLICIT_EXTERN_C not
-       NO_IMPLICIT_EXTERN_C.
-       * cp/parser.c (cp_parser_parameter_declaration_clause): Likewise.
-
-2018-07-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       PR c++/86398
-       * method.c (is_trivially_xible): Return false
-       if is_xible_helper returns a NULL_TREE.
-
-2018-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (min_location): New.
-       (smallest_type_quals_location): Use the latter.
-       (check_concept_fn): Use DECL_SOURCE_LOCATION.
-       (grokdeclarator): Use accurate locations in a number of error
-       messages involving ds_thread, ds_storage_class, ds_virtual,
-       ds_constexpr, ds_typedef and ds_friend; exploit min_location.
-
-2018-07-03  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86201
-       * typeck.c (cp_build_binary_op): Check c_inhibit_evaluation_warnings.
-
-2018-07-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86378 - functional cast in noexcept-specifier.
-       * tree.c (strip_typedefs_expr) [TREE_LIST]: Fix iteration.
-
-2018-07-02  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * parser.c (set_and_check_decl_spec_loc): Use rich_location::add_range
-       in error message about __thread and thread_local at the same time.
-
-2018-06-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86184
-       * tree.c (cp_save_expr): Don't call save_expr for TARGET_EXPRs.
-
-2018-06-28  David Malcolm  <dmalcolm@redhat.com>
-
-       * parser.c (cp_parser_error_1): After issuing a conflict marker
-       error, consume tokens until the end of the source line.
-
-2018-06-28  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86342 - -Wdeprecated-copy and system headers.
-       * decl2.c (cp_warn_deprecated_use): Don't warn about declarations
-       in system headers.
-
-2018-06-27  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/86329
-       * name-lookup.c (consider_binding_level): Filter out names that
-       match anon_aggrname_p.
-
-2018-06-27  Jason Merrill  <jason@redhat.com>
-
-       * name-lookup.c (do_pushtag): If we skip a class level, also skip
-       its template level.
-
-2018-06-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86320 - memory-hog with std::array of pair
-       * typeck2.c (process_init_constructor_array): Only compute a
-       constant initializer once.
-
-       PR c++/80290 - memory-hog with std::pair.
-       * pt.c (fn_type_unification): Add convs parameter.
-       (check_non_deducible_conversion): Remember conversion.
-       (check_non_deducible_conversions): New.  Do checks here.
-       (type_unification_real): Not here.  Remove flags parm.
-       * call.c (add_function_candidate): Make convs a parameter.
-       Don't recalculate the conversion if it's already set.
-       (add_template_candidate_real): Allocate convs here.
-       (good_conversion, conv_flags): New.
-
-2018-06-26  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/86291
-       * parser.c (cp_parser_omp_for_loop_init): Change for_block argument
-       type from vec<tree, va_gc> * to vec<tree, va_gc> *&.
-
-2018-06-23  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (bad_specifiers): Add const location_t* parameter and
-       use locations in error messages about 'inline' and 'virtual'.
-       (mark_inline_variable): Add location_t parameter and use it in
-       error_at and pedwarn messages.
-       (grokdeclarator): Use declspecs->locations[ds_constexpr],
-       declspecs->locations[ds_concept], declspecs->locations[ds_virtual],
-       declspecs->locations[ds_inline] in many error messages; adjust
-       bad_specifiers and mark_inline_variable calls.
-       (grokvardecl): Use declspecs->locations[ds_concept] in error message.
-
-2018-06-22  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86219 - ICE with erroneous initializer in template.
-       * constexpr.c (fold_non_dependent_expr): Add complain parm.
-       * call.c, expr.c, init.c, pt.c, semantics.c, typeck.c, typeck2.c:
-       Pass it.
-       * call.c (build_cxx_call): Don't mess with builtins in a template.
-       * typeck2.c (store_init_value): If fold_non_dependent_expr didn't
-       produce a constant value, go back to the uninstantiated form.
-
-       Avoid taking the address of something just because it's in parens.
-       * constexpr.c (same_type_ignoring_tlq_and_bounds_p): New.
-       (cxx_fold_indirect_ref): Use it.
-       (cxx_eval_constant_expression) [VIEW_CONVERT_EXPR]: Use it.
-       * cp-tree.h (REF_PARENTHESIZED_P): Allow VIEW_CONVERT_EXPR.
-       * semantics.c (force_paren_expr): Use VIEW_CONVERT_EXPR instead of
-       static_cast to reference type.
-       (maybe_undo_parenthesized_ref): Handle VIEW_CONVERT_EXPR.
-
-2018-06-21  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Use TEMPLATE_PARM_DESCENDANTS.
-
-       * name-lookup.c (do_push_to_top_level): Don't allocate
-       current_lang_base.
-       (do_pop_from_top_level): Release current_lang_base.
-
-       Let -fmem-report see callers of cxx_make_type.
-       * lex.c (cxx_make_type): Add MEM_STAT_DECL.
-       (make_class_type): Likewise.
-       (cxx_make_type_hook): New.
-       * cp-objcp-common.h (LANG_HOOKS_MAKE_TYPE): Use cxx_make_type_hook.
-
-2018-06-20  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/85634
-       * friend.c (add_friend): Keep lookup sets of tempate sets.
-
-2018-06-20  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (grokfndecl): Add const cp_decl_specifier_seq* parameter;
-       tidy handling of a null location_t argument; use proper location
-       information in a few additional error messages.
-       (grokdeclarator): Update calls.
-
-2018-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
-           Thomas Schwinge  <thomas@codesourcery.com>
-           Cesar Philippidis  <cesar@codesourcery.com>
-
-       * parser.c (cp_parser_omp_clause_name): Add support for finalize
-       and if_present. Make present_or_{copy,copyin,copyout,create} aliases
-       to their non-present_or_* counterparts. Make 'self' an alias to
-       PRAGMA_OACC_CLAUSE_HOST.
-       (cp_parser_oacc_data_clause): Update GOMP mappings for
-       PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove
-       PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}.
-       (cp_parser_oacc_all_clauses): Handle finalize and if_present clauses.
-       Remove support for present_or_* clauses.
-       (OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
-       (OACC_PARALLEL_CLAUSE_MASK): Likewise.
-       (OACC_DECLARE_CLAUSE_MASK): Likewise.
-       (OACC_DATA_CLAUSE_MASK): Likewise.
-       (OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
-       (OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause.
-       (OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT.
-       (cp_parser_oacc_declare): Remove PRESENT_OR_* clauses.
-       * pt.c (tsubst_omp_clauses): Handle IF_PRESENT and FINALIZE.
-       * semantics.c (finish_omp_clauses): Handle IF_PRESENT and FINALIZE.
-
-2018-06-20  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86240
-       * constexpr.c (cxx_eval_constant_expression): Handle ABSU_EXPR.
-       (fold_simple_1): Likewise.
-       * error.c (dump_expr): Likewise.
-
-2018-06-20  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/85634
-       * cp-tree.h (lookup_keep): Drop KEEP parm.
-       (lookup_list_keep): Delete.
-       (maybe_get_fns): Declare.
-       * parser.c (cp_parser_primary_expression): Call lookup_keep here.
-       (cp_parser_template_id): Not here ...
-       * decl.c (cp_finish_decl): ... nor here ...
-       * init.c (build_raw_new_expr): ... nor here ...
-       * pt.c (process_template_parm): ... nor here ...
-       * semantics.c (perform_koenig_lookup): Call lookup_keep.
-       (finish_call_expr): Not here.
-       * tree.c (ovl_cache): Delete.
-       (ovl_make, ovl_copy): No cache.
-       (lookup_keep): Always keep.
-       (lookup_list_keep): Delete.
-       (maybe_get_fns): New, broken out of ...
-       (get_fns): ... here.  Call it.
-       (built_min_nt_loc, build_min, build_min_non_dep): Drop lookup_keep.
-       (build_min_nt_call_vec): Likewise.
-
-2018-06-19  Jason Merrill  <jason@redhat.com>
-
-       * cp-tree.h (CONSTRUCTOR_NO_IMPLICIT_ZERO): Remove.
-       * constexpr.c: Use CONSTRUCTOR_NO_CLEARING instead.
-
-       PR c++/86182 - ICE with anonymous union passed to template.
-       * pt.c (tsubst_expr) [DECL_EXPR]: Handle an anonymous union type
-       used to declare a named variable.
-
-2018-06-18  Jason Merrill  <jason@redhat.com>
-
-       * tree.c (cp_expr_location): New.
-       * cp-tree.h (cp_expr_loc_or_loc): New.
-       * call.c, cvt.c, constexpr.c, constraint.cc, cp-gimplify.c, decl.c,
-       error.c, init.c, lex.c, parser.c, pt.c, semantics.c, typeck.c,
-       typeck2.c: Use it instead of EXPR_LOC_OR_LOC.
-
-       * parser.c (cp_parser_lambda_expression): Use a range for
-       LAMBDA_EXPR_LOCATION.
-
-       PR c++/86200 - ICE with unexpanded pack in lambda parameter.
-       * pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Also look into the
-       function type.
-
-       PR c++/81060 - ICE with unexpanded parameter pack.
-       * pt.c (check_for_bare_parameter_packs): Add loc parameter.
-       * decl.c (grokdeclarator): Call it for qualifying_scope.
-
-       PR c++/86171 - ICE with recursive alias instantiation.
-       * pt.c (tsubst_decl): Handle recursive alias instantiation.
-
-2018-06-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (duplicate_decls): Consistently use DECL_SOURCE_LOCATION
-       in errors about redefined default arguments; tidy.
-
-2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
-
-       * constexpr.c (potential_constant_expression_1): Handle ABSU_EXPR.
-       * cp-gimplify.c (cp_fold): Likewise.
-
-2018-06-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86147 - wrong capture for template argument.
-       * expr.c (mark_use): Look through NOP_EXPR.
-
-       * name-lookup.c (do_pushtag): Don't look through complete types, but
-       don't add to them either.  Get context from current_binding_level.
-       * pt.c (tsubst_default_argument): Use push_to/pop_from_top_level.
-
-       * decl.c (start_enum): Do compare dependent underlying type.
-
-       PR c++/82882 - ICE with lambda in template default argument.
-       * lambda.c (record_null_lambda_scope): New.
-       * pt.c (tsubst_lambda_expr): Use it.
-       * name-lookup.c (do_pushtag): Don't give a lambda DECL_CONTEXT of a
-       function that isn't open.
-
-       * tree.c (maybe_warn_parm_abi): Inform the location of the class.
-
-2018-06-14  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/86063
-       * decl2.c (cp_check_const_attributes): Skip trees that are not
-       TREE_LISTs.
-
-2018-06-14  Jakub Jelinek  <jakub@redhat.com>
-
-       P0624R2 - Default constructible and assignable stateless lambdas
-       * method.c (synthesized_method_walk): For C++2a don't mark
-       sfk_constructor or sfk_copy_assignment as deleted if lambda has
-       no lambda-captures.
-
-2018-06-14  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (duplicate_decls): Use DECL_SOURCE_LOCATION in
-       OPT_Wshadow warning_at.
-       (grokfndecl): Consistently use the location_t argument in
-       literal operator diagnostic messages.
-       (grokdeclarator): Use declspecs->locations[ds_storage_class]
-       in error_at call.
-       * decl2.c (finish_static_data_member_decl): Use DECL_SOURCE_LOCATION
-       in permerror call.
-
-2018-06-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86099 - ICE with trivial copy and non-trivial default ctor.
-       * constexpr.c (instantiate_cx_fn_r): Don't synthesize trivial
-       constructors.
-
-       PR c++/86094 - wrong code with defaulted move ctor.
-       * class.c (classtype_has_non_deleted_move_ctor): New.
-       * tree.c (maybe_warn_parm_abi, type_has_nontrivial_copy_init):
-       Handle v12 breakage.
-
-2018-06-12  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86098 - ICE with template placeholder for TTP.
-       * typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Check
-       CLASS_PLACEHOLDER_TEMPLATE.
-
-2018-06-12  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl2.c (coerce_new_type, coerce_delete_type): Add location_t
-       parameter and adjust error_at calls.
-       * decl.c (grok_op_properties): Adjust calls.
-       * cp-tree.h (oerce_new_type, coerce_delete_type): Adjust decls.
-
-2018-06-12  Marek Polacek  <polacek@redhat.com>
-
-       Core issue 1331 - const mismatch with defaulted copy constructor
-       * class.c (check_bases_and_members): When checking a defaulted
-       function, mark it as deleted rather than giving an error.
-
-2018-06-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85792 -Wctor-dtor-privacy and inherited constructor.
-       * class.c (maybe_warn_about_overly_private_class): Handle inherited
-       constructors.
-
-       PR c++/85963 - -Wunused-but-set with ?: in template.
-       * pt.c (tsubst_copy_and_build) [COND_EXPR]: Call mark_rvalue_use.
-
-2018-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (grok_op_properties): Consistently use the location
-       of the decl; remove special casing of POSTINCREMENT_EXPR and
-       POSTDECREMENT_EXPR wrt default arguments.
-
-2018-06-05  Jason Merrill  <jason@redhat.com>
-
-       * constexpr.c (cxx_eval_binary_expression): Special case comparison
-       of pointers to members of the same union.
-
-2018-06-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86094 - wrong code with defaulted move ctor.
-       * tree.c (type_has_nontrivial_copy_init): Fix move ctor handling.
-
-2018-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * decl.c (grokfndecl): Use the location_t argument in two more places.
-
-2018-06-06  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85977
-       * pt.c (unify): If ELTTYPE has no deducible template parms, skip
-       deduction from the list elements.
-       (type_unification_real): Check convertibility of list elements.
-
-2018-06-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/86060 - ICE on range for with -std=c++98.
-       * parser.c (cp_parser_init_statement): Don't clobber *decl after
-       pedwarn.
-
-       PR c++/85710 - ICE with -Wmemset-elt-size.
-       * semantics.c (finish_call_expr): Call warn_for_memset here.
-       * parser.c (cp_parser_postfix_expression): Not here.
-       (literal_integer_zerop): No longer static.
-       * pt.c (build_non_dependent_expr): Don't wrap CONST_DECL.
-
-2018-06-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85976
-       * tree.c (cp_tree_equal): Handle USING_DECL.
-
-2018-06-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85731 - wrong error with qualified-id in template.
-       * semantics.c (finish_qualified_id_expr): build_qualified_name
-       for unbound names in the current class.
-
-2018-06-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/61806 - missed SFINAE with partial specialization.
-       * cp-tree.h (deferring_access_check_sentinel): Add deferring_kind
-       parameter to constructor.
-       * pt.c (instantiate_class_template_1): Enable access checking
-       before call to most_specialized_partial_spec.
-
-       PR c++/85765 - SFINAE and non-type default template arg.
-       * pt.c (type_unification_real): Do full semantic processing if
-       substituting a partial args list replaces all template parms.
-
-2018-06-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85739 - ICE with pointer to member template parm.
-       * cvt.c (perform_qualification_conversions): Use cp_fold_convert.
-
-2018-06-02  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85761 - ICE with ill-formed use of const outer variable.
-       * expr.c (mark_use): Handle location wrappers.
-
-2018-06-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85764 - bogus 'this' not captured error.
-       * lambda.c (resolvable_dummy_lambda): Use nonlambda_method_basetype.
-       (nonlambda_method_basetype): Handle NSDMI.
-
-       CWG 1581: When are constexpr member functions defined?
-       * constexpr.c (instantiate_cx_fn_r, instantiate_constexpr_fns): New.
-       (cxx_eval_outermost_constant_expr): Call instantiate_constexpr_fns.
-
-       PR c++/58281 - explicit instantiation of constexpr
-       * pt.c (mark_decl_instantiated): Clear DECL_EXTERNAL.
-
-       * pt.c (instantiate_decl): Any defaulted function is defined.
-
-2018-05-30  Jonathan Wakely  <jwakely@redhat.com>
-
-       PR c++/77777
-       * call.c (resolve_args): Use location of expression, not current input
-       location.
-
-2018-05-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       Do not warn about zero-as-null when NULL is used.
-       * call.c (conversion_null_warnings): Check for pointer
-       types converted from zero constants.
-       (convert_like_real): Add a warning sentinel at the end.
-       * tree.c (maybe_warn_zero_as_null_pointer_constant): Also
-       check null_node_p.
-
-2018-05-30  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85807 - ICE with call in template NSDMI.
-       * init.c (get_nsdmi): Use push_to/pop_from_top_level.
-       * tree.c (bot_manip): Don't set_flags_from_callee in a template.
-
-       PR c++/85873 - constant initializer_list array not in .rodata.
-       * tree.c (build_target_expr): Set TREE_READONLY.
-       * call.c (set_up_extended_ref_temp): Set TREE_READONLY.
-
-       * parser.c (cp_parser_check_condition_declarator): Handle
-       cp_error_declarator.
-
-2018-05-30  Jonathan Wakely  <jwakely@redhat.com>
-
-       * typeck.c (cxx_sizeof_or_alignof_type): Return size_one_node instead
-       of using it in dead store.
-
-2018-05-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/67445 - returning temporary initializer_list.
-       PR c++/67711 - assigning from temporary initializer_list.
-       PR c++/48562 - new initializer_list.
-       * typeck.c (maybe_warn_about_returning_address_of_local): Also warn
-       about returning local initializer_list.
-       * cp-tree.h (AUTO_TEMP_NAME, TEMP_NAME_P): Remove.
-       * call.c (build_over_call): Warn about assignment from temporary
-       init_list.
-       * init.c (build_new_1): Warn about 'new std::initializer_list'.
-       (find_list_begin, maybe_warn_list_ctor): New.
-       (perform_member_init): Use maybe_warn_list_ctor.
-
-2018-05-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85883
-       * init.c (build_new): Handle deducing a class with new
-       with more than one argument.
-
-2018-05-29  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85952
-       * init.c (build_aggr_init): For structured binding initialized from
-       array call mark_rvalue_use on the initializer.
-
-2018-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
-
-       * decl2.c (start_static_storage_duration_function): Use
-       splay_tree_delete_pointers.
-
-2018-05-25  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85815 - reference to member of enclosing template.
-       * search.c (lookup_base): Use currently_open_class.
-       (lookup_member): Use it regardless of -fconcepts.
-       * parser.c (cp_parser_postfix_dot_deref_expression): Check it.
-
-       CWG 616, 1213 - value category of subobject references.
-       * tree.c (lvalue_kind): Fix handling of ARRAY_REF of pointer.
-
-2018-05-24  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85842 - -Wreturn-type, constexpr if and generic lambda.
-       * pt.c (tsubst_lambda_expr): Copy current_function_returns_* to
-       generic lambda.
-
-2018-05-24  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       Pedwarn on a non-standard position of a C++ attribute.
-       * parser.c (cp_parser_namespace_definition): Pedwarn about attributes
-       after the namespace name.
-
-2018-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * cp-tree.h (INDIRECT_TYPE_P): New.
-       * call.c (build_trivial_dtor_call, maybe_warn_class_memaccess,
-       joust): Use it instead of POINTER_TYPE_P.
-       * class.c (update_vtable_entry_for_fn, find_flexarrays,
-       * fixed_type_or_null, resolves_to_fixed_type_p): Likewise.
-       * constexpr.c (cxx_eval_binary_expression, cxx_fold_indirect_ref,
-       * cxx_eval_increment_expression, potential_constant_expression_1):
-       Likewise.
-       * cp-gimplify.c (cp_gimplify_expr, cp_genericize_r): Likewise.
-       * cp-objcp-common.c (cxx_get_alias_set): Likewise.
-       * cp-ubsan.c (cp_ubsan_maybe_instrument_member_call,
-       cp_ubsan_maybe_instrument_downcast): Likewise.
-       * cvt.c (cp_convert_to_pointer, ocp_convert,
-       cp_get_fndecl_from_callee, maybe_warn_nodiscard, convert): Likewise.
-       * cxx-pretty-print.c (cxx_pretty_printer::abstract_declarator,
-       pp_cxx_offsetof_expression_1): Likewise.
-       * decl.c (grokparms, static_fn_type): Likewise.
-       * decl2.c (grokbitfield): Likewise.
-       * error.c (dump_expr): Likewise.
-       * except.c (initialize_handler_parm, check_noexcept_r): Likewise.
-       * init.c (warn_placement_new_too_small): Likewise.
-       * lambda.c (build_capture_proxy, add_capture): Likewise.
-       * parser.c (cp_parser_omp_for_loop): Likewise.
-       * pt.c (convert_nontype_argument, fn_type_unification,
-       uses_deducible_template_parms, check_cv_quals_for_unify,
-       dependent_type_p_r): Likewise.
-       * search.c (check_final_overrider): Likewise.
-       * semantics.c (handle_omp_array_sections, finish_omp_clauses,
-       finish_omp_for): Likewise.
-       * tree.c (cp_build_qualified_type_real): Likewise.
-       * typeck.c (build_class_member_access_expr,
-       finish_class_member_access_expr, build_x_indirect_ref,
-       cp_build_indirect_ref_1, cp_build_binary_op, build_const_cast_1):
-       Likewise.
-
-2018-05-24  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85864 - literal template and default template arg.
-       * pt.c (instantiation_dependent_r): Handle NONTYPE_ARGUMENT_PACK.
-
-2018-05-24  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85847
-       * init.c (build_new_1): Use fold_non_dependent_expr.  Use a dedicated
-       variable for its result.  Fix a condition.
-       (build_new): Use fold_non_dependent_expr.  Tweak a condition.
-
-2018-05-23  Jason Merrill  <jason@redhat.com>
-
-       Fix cast to rvalue reference from prvalue.
-       * cvt.c (diagnose_ref_binding): Handle rvalue reference.
-       * rtti.c (build_dynamic_cast_1): Don't try to build a reference to
-       non-class type.  Handle xvalue argument.
-       * typeck.c (build_reinterpret_cast_1): Allow cast from prvalue to
-       rvalue reference.
-       * semantics.c (finish_compound_literal): Do direct-initialization,
-       not cast, to initialize a reference.
-
-       CWG 616, 1213 - value category of subobject references.
-       * tree.c (lvalue_kind): A reference to a subobject of a prvalue is
-       an xvalue.
-       * typeck2.c (build_m_component_ref): Likewise.
-       * typeck.c (cp_build_addr_expr_1, lvalue_or_else): Remove diagnostic
-       distinction between temporary and xvalue.
-
-2018-05-23  Marek Polacek  <polacek@redhat.com>
-
-       Implement P0614R1, Range-based for statements with initializer.
-       * parser.c (cp_parser_range_based_for_with_init_p): New.
-       (cp_parser_init_statement): Use it.  Parse the optional init-statement
-       for a range-based for loop.
-       (cp_parser_skip_to_closing_parenthesis_1): Handle balancing ?:.
-
-2018-05-22  Jason Merrill  <jason@redhat.com>
-
-       PR c++/81420 - not extending temporary lifetime.
-       * call.c (extend_ref_init_temps_1): Handle ARRAY_REF.
-       * class.c (build_base_path): Avoid redundant move of an rvalue.
-
-       PR c++/85866 - error with .* in default template arg.
-       * pt.c (tsubst_copy_and_build): Handle partial instantiation.
-
-2018-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * parser.c (cp_parser_parameter_declaration_list): Remove
-       bool* parameter.
-       (cp_parser_parameter_declaration_clause): Adjust.
-       (cp_parser_cache_defarg): Likewise.
-
-2018-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84588
-       * parser.c (cp_parser_maybe_commit_to_declaration,
-       cp_parser_check_condition_declarator): New.
-       (cp_parser_simple_declaration): Use the first above.
-       (cp_parser_condition): Use both the above; enforce
-       [stmt.stmt]/2 about the declarator not specifying
-       a function or an array; improve error-recovery.
-
-2018-05-20  Jason Merrill  <jason@redhat.com>
-
-       PR libstdc++/85843 - warning in logic_error copy constructor.
-       * class.c (type_has_user_nondefault_constructor): Check for a
-       user-provided ctor, not user-declared.
-
-2018-05-19  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (tsubst_pack_expansion): Sorry rather than abort
-       on __integer_pack as subexpression of pattern.
-
-2018-05-18  Jason Merrill  <jason@redhat.com>
-
-       PR c++/58407 - deprecated implicit copy ops.
-       * call.c (build_over_call): Warn about deprecated trivial fns.
-       * class.c (classtype_has_user_copy_or_dtor): New.
-       (type_build_ctor_call): Check TREE_DEPRECATED.
-       (type_build_dtor_call): Likewise.
-       * decl2.c (cp_warn_deprecated_use): Move from tree.c.
-       Add checks.  Return bool.  Handle -Wdeprecated-copy.
-       (mark_used): Use it.
-       * decl.c (grokdeclarator): Remove redundant checks.
-       * typeck2.c (build_functional_cast): Likewise.
-       * method.c (lazily_declare_fn): Mark deprecated copy ops.
-       * init.c (build_aggr_init): Only set TREE_USED if there are
-       side-effects.
-
-2018-05-18  Cesar Philippidis  <cesar@codesourcery.com>
-
-       PR c++/85782
-       * cp-gimplify.c (cp_genericize_r): Call genericize_omp_for_stmt for
-       OACC_LOOPs.
-
-2018-05-18  Richard Sandiford  <richard.sandiford@linaro.org>
-
-       * constexpr.c (cxx_eval_constant_expression): Remove FMA_EXPR handling.
-       (potential_constant_expression_1): Likewise.
-
-2018-05-16  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85363
-       * call.c (set_flags_from_callee): Handle AGGR_INIT_EXPRs too.
-       * tree.c (bot_manip): Call set_flags_from_callee for
-       AGGR_INIT_EXPRs too.
-
-2018-05-15  Jason Merrill  <jason@redhat.com>
-
-       * cp-tree.h (cp_expr): Remove copy constructor.
-       * mangle.c (struct releasing_vec): Declare copy constructor.
-
-       * constexpr.c (cxx_eval_vec_init_1): Pass tf_none if ctx->quiet.
-
-       PR c++/64372 - CWG 1560, gratuitous lvalue-rvalue conversion in ?:
-       * call.c (build_conditional_expr_1): Don't force_rvalue when one arm
-       is a throw-expression.
-
-2018-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * cp-tree.h (DECL_MAYBE_IN_CHARGE_CDTOR_P): New.
-       (FOR_EACH_CLONE): Update.
-       * decl.c (grokdeclarator): Use it.
-       * decl2.c (vague_linkage_p): Likewise.
-       * mangle.c (mangle_decl): Likewise.
-       * method.c (lazily_declare_fn): Likewise.
-       * optimize.c (can_alias_cdtor, maybe_clone_body): Likewise.
-       * repo.c (repo_emit_p): Likewise.
-       * tree.c (decl_linkage): Likewise.
-
-2018-05-14  Jason Merrill  <jason@redhat.com>
-
-       Handle TYPE_HAS_LATE_RETURN_TYPE like ref-qualifier and eh spec.
-       * tree.c (build_cp_fntype_variant): New.
-       (build_ref_qualified_type, build_exception_variant)
-       (strip_typedefs, cxx_copy_lang_qualifiers): Use it.
-       (cxx_type_hash_eq, cp_check_qualified_type): Check
-       TYPE_HAS_LATE_RETURN_TYPE.
-       (cp_build_type_attribute_variant): Check cxx_type_hash_eq.
-       (cp_build_qualified_type_real): No need to preserve C++ qualifiers.
-       * class.c (build_clone): Use cxx_copy_lang_qualifiers.
-       (adjust_clone_args): Likewise.
-       * decl.c (grokfndecl): Add late_return_type_p parameter.  Use
-       build_cp_fntype_variant.
-       (grokdeclarator): Pass late_return_type_p to grokfndecl.
-       (check_function_type): Use cxx_copy_lang_qualifiers.
-       (static_fn_type): Use cxx_copy_lang_qualifiers.
-       * decl2.c (build_memfn_type, maybe_retrofit_in_chrg)
-       (cp_reconstruct_complex_type, coerce_new_type, coerce_delete_type)
-       (change_return_type): Use cxx_copy_lang_qualifiers.
-       * mangle.c (write_type): Use cxx_copy_lang_qualifiers.
-       * parser.c (cp_parser_lambda_declarator_opt): Represent an explicit
-       return type on the declarator like a normal trailing return type.
-       * pt.c (tsubst_function_type): Use build_cp_fntype_variant.
-       (copy_default_args_to_explicit_spec): Use cxx_copy_lang_qualifiers.
-       * typeck.c (merge_types): Use build_cp_fntype_variant.
-
-2018-05-14  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * cp-tree.h (TYPE_REF_P): New.
-       (TYPE_OBJ_P, TYPE_REF_OBJ_P, TYPE_REFFN_P): Update.
-       * call.c (build_list_conv, build_aggr_conv, standard_conversion,
-       direct_reference_binding, reference_binding, implicit_conversion,
-       add_builtin_candidate, build_user_type_conversion_1, build_op_call_1,
-       build_new_op_1, build_x_va_arg, conv_binds_ref_to_prvalue,
-       build_over_call, perform_implicit_conversion_flags,
-       extend_ref_init_temps, type_has_extended_temps): Use it.
-       * class.c (one_inheriting_sig, check_field_decls,
-       check_bases_and_members, find_flexarrays, finish_struct,
-       fixed_type_or_null): Likewise.
-       * constexpr.c (literal_type_p, cxx_bind_parameters_in_call,
-       non_const_var_error, cxx_eval_constant_expression,
-       potential_constant_expression_1): Likewise.
-       * cp-gimplify.c (omp_var_to_track, omp_cxx_notice_variable,
-       cp_genericize_r, cxx_omp_privatize_by_reference,
-       cxx_omp_const_qual_no_mutable, cxx_omp_finish_clause,
-       cp_fold_maybe_rvalue): Likewise.
-       * cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise.
-       * cvt.c (build_up_reference, convert_to_reference,
-       convert_from_reference, convert_to_void, noexcept_conv_p,
-       fnptr_conv_p): Likewise.
-       * decl.c (poplevel, check_for_uninitialized_const_var,
-       check_initializer, initialize_local_var, cp_finish_decl,
-       get_tuple_decomp_init, cp_finish_decomp, grokdeclarator, copy_fn_p,
-       move_signature_fn_p, grok_op_properties, finish_function): Likewise.
-       * decl2.c (grok_array_decl, cp_reconstruct_complex_type,
-       decl_maybe_constant_var_p): Likewise.
-       * error.c (dump_type_prefix, dump_expr): Likewise.
-       * except.c (initialize_handler_parm, complete_ptr_ref_or_void_ptr_p,
-       is_admissible_throw_operand_or_catch_parameter): Likewise.
-       * expr.c (mark_use): Likewise.
-       * init.c (build_zero_init_1, build_value_init_noctor,
-       perform_member_init, diagnose_uninitialized_cst_or_ref_member_1,
-       build_new, build_delete): Likewise.
-       * lambda.c (build_lambda_object): Likewise.
-       * mangle.c (write_expression, write_template_arg): Likewise.
-       * method.c (forward_parm, do_build_copy_constructor,
-       do_build_copy_assign, build_stub_object, constructible_expr,
-       walk_field_subobs): Likewise.
-       * parser.c (cp_parser_omp_for_loop_init,
-       cp_parser_omp_declare_reduction_exprs,
-       cp_parser_omp_declare_reduction): Likewise.
-       * pt.c (convert_nontype_argument_function, convert_nontype_argument,
-       convert_template_argument, tsubst_pack_expansion,
-       tsubst_function_decl, tsubst_decl, tsubst, tsubst_copy_and_build,
-       maybe_adjust_types_for_deduction, check_cv_quals_for_unify, unify,
-       more_specialized_fn, invalid_nontype_parm_type_p, dependent_type_p_r,
-       value_dependent_expression_p, build_deduction_guide): Likewise.
-       * semantics.c (finish_handler_parms, finish_non_static_data_member,
-       finish_compound_literal, omp_privatize_field,
-       handle_omp_array_sections_1, handle_omp_array_sections,
-       cp_check_omp_declare_reduction, finish_omp_reduction_clause,
-       finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink,
-       finish_omp_clauses, finish_decltype_type, capture_decltype,
-       finish_builtin_launder): Likewise.
-       * tree.c (lvalue_kind, cp_build_reference_type, move,
-       cp_build_qualified_type_real, stabilize_expr, stabilize_init): Likewise.
-       * typeck.c (cxx_safe_arg_type_equiv_p, build_class_member_access_expr,
-       cp_build_indirect_ref_1, convert_arguments, warn_for_null_address,
-       cp_build_addr_expr_1, maybe_warn_about_useless_cast,
-       build_static_cast_1, build_static_cast, build_reinterpret_cast_1,
-       build_const_cast_1, cp_build_c_cast, cp_build_modify_expr,
-       convert_for_initialization,
-       maybe_warn_about_returning_address_of_local, check_return_expr,
-       cp_type_quals, casts_away_constness, non_reference): Likewise.
-       * typeck2.c (cxx_readonly_error, store_init_value,
-       process_init_constructor_record, build_x_arrow, build_functional_cast,
-       add_exception_specifier): Likewise.
-
-2018-05-14  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (tsubst) [ARRAY_TYPE]: Check valid_array_size_p.
-       (tsubst_copy_and_build) [NEW_EXPR]: Clear in_decl.
-
-2018-05-11  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c/85696
-       * cp-tree.h (cxx_omp_predetermined_sharing_1): New prototype.
-       * cp-gimplify.c (cxx_omp_predetermined_sharing): New wrapper around
-       cxx_omp_predetermined_sharing_1.  Rename old function to ...
-       (cxx_omp_predetermined_sharing_1): ... this.
-       * semantics.c (finish_omp_clauses): Use cxx_omp_predetermined_sharing_1
-       instead of cxx_omp_predetermined_sharing.
-
-2018-05-10  Jason Merrill  <jason@redhat.com>
-
-       * decl.c (cp_finish_decl): Don't instantiate auto variable.
-       (check_static_variable_definition): Allow auto.
-       * constexpr.c (ensure_literal_type_for_constexpr_object): Likewise.
-
-       * cp-tree.h (DECL_CONSTRUCTOR_P): Use DECL_CXX_CONSTRUCTOR_P.
-       (DECL_DESTRUCTOR_P): Use DECL_CXX_DESTRUCTOR_P.
-
-       Core issue 2310 - conversion to base of incomplete type.
-       * class.c (build_base_path): Check COMPLETE_TYPE_P for source type.
-
-       CWG 2267 - list-initialization of reference temporary
-       * call.c (reference_binding): List-initializing a reference
-       temporary is copy-list-initialization.
-
-       * parser.c (cp_parser_class_head): Use num_template_headers_for_class.
-
-       * pt.c (instantiate_decl): Make sure we aren't trying to do a nested
-       instantiation in template context.
-
-       * class.c (vbase_has_user_provided_move_assign): Use
-       user_provided_p.
-
-       * lambda.c (lambda_expr_this_capture): Improve logic.
-
-       * decl.c (make_typename_type): s/parameters/arguments/.
-       * parser.c (cp_parser_nested_name_specifier_opt): Likewise.
-       * pt.c (make_pack_expansion): Correct error message.
-
-2018-05-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85662
-       * cp-gimplify.c (cp_fold): Use fold_offsetof rather than
-       fold_offsetof_1, pass TREE_TYPE (x) as TYPE to it and drop the
-       fold_convert.
-
-2018-05-10  Eric Botcazou  <ebotcazou@adacore.com>
-
-       PR c++/85400
-       * decl2.c (adjust_var_decl_tls_model): New static function.
-       (comdat_linkage): Call it on a variable.
-       (maybe_make_one_only): Likewise.
-
-2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/85713
-       Revert:
-       2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84588
-       * parser.c (cp_parser_parameter_declaration_list): When the
-       entire parameter-declaration-list is erroneous maybe call
-       abort_fully_implicit_template.
-
-2018-05-08  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85706 - class deduction under decltype
-       * pt.c (for_each_template_parm_r): Handle DECLTYPE_TYPE.  Clear
-       *walk_subtrees whether or not we walked into the operand.
-       (type_uses_auto): Only look at deduced contexts.
-
-2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84588
-       * parser.c (cp_parser_parameter_declaration_list): When the
-       entire parameter-declaration-list is erroneous maybe call
-       abort_fully_implicit_template.
-
-2018-05-08  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85695
-       * semantics.c (finish_if_stmt_cond): See through typedefs.
-
-2018-05-07  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85646 - lambda visibility.
-       * decl2.c (determine_visibility): Don't mess with template arguments
-       from the containing scope.
-       (vague_linkage_p): Check DECL_ABSTRACT_P before looking at a 'tor
-       thunk.
-
-2018-05-07  Nathan Sidwell  <nathan@acm.org>
-
-       Remove fno-for-scope
-       * cp-tree.h (DECL_ERROR_REPORTED, DECL_DEAD_FOR_LOCAL)
-       (DECL_HAS_SHADOWED_FOR_VAR_P, DECL_SHADOWED_FOR_VAR)
-       (SET_DECL_SHADOWED_FOR_VAR): Delete.
-       (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert)
-       (check_for_out_of_scope_variable, init_shadowed_var_for_decl):
-       Don't declare.
-       * name-lookup.h (struct cp_binding_level): Remove
-       dead_vars_from_for field.
-       * cp-lang.c (cp_init_ts): Delete.
-       (LANG_HOOKS_INIT_TS): Override to cp_common_init_ts.
-       * cp-objcp-common.c (shadowed_var_for_decl): Delete.
-       (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert)
-       (init_shadowed_var_for_decl): Delete.
-       * decl.c (poplevel): Remove shadowed for var handling.
-       (cxx_init_decl_processing): Remove -ffor-scope deprecation.
-       * name-lookup.c (find_local_binding): Remove shadowed for var
-       handling.
-       (check_local_shadow): Likewise.
-       (check_for_out_of_scope_variable): Delete.
-       * parser.c (cp_parser_primary_expression): Remove shadowed for var
-       handling.
-       * pt.c (tsubst_decl): Remove DECL_DEAD_FOR_LOCAL setting.
-       * semantics.c (begin_for_scope): Always have a scope.
-       (begin_for_stmt, finish_for_stmt): Remove ARM-for scope handling.
-       (begin_range_for_stmt, finish_id_expression): Likewise.
-
-2018-05-07  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85618 - ICE with initialized VLA.
-       * tree.c (vla_type_p): New.
-       * typeck2.c (store_init_value, split_nonconstant_init_1): Check it
-       rather than array_of_runtime_bound_p.
-
-2018-05-05  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * cvt.c (ocp_convert): Early handle the special case of a
-       null_ptr_cst_p expr converted to a NULLPTR_TYPE_P type.
-
-2018-05-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85600 - virtual delete failure.
-       * init.c (build_delete): Always save_expr when deleting.
-
-2018-05-03  Nathan Sidwell  <nathan@acm.org>
-
-       * decl.c (cxx_init_decl_processing): Remove flag_friend_injection.
-       * name-lookup.c (do_pushdecl): Likewise.
-
-2018-05-02  Paolo Carlini  <paolo.carlini@oracle.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/68374
-       * name-lookup.c (check_local_shadow): Don't handle static old
-       declarations in the block handling locals shadowing locals.
-
-2018-05-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85587 - error with scoped enum in template.
-       * semantics.c (finish_qualified_id_expr): Don't return an
-       unqualified IDENTIFIER_NODE.
-
-2018-04-30  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85580 - extern "C" and local variables
-       * name-lookup.c (check_extern_c_conflict): Ignore local decls.
-
-       PR c++/84701 - unsigned typeof.
-       * decl.c (grokdeclarator): Overhaul diagnostics for invalid use
-       of long/short/signed/unsigned.
-
-       PR c++/85305 - pack in lambda init-capture.
-       * parser.c (cp_parser_initializer): Add subexpression_p parm; don't
-       check_for_bare_parameter_packs in a subexpression.
-       (cp_parser_lambda_introducer): Use it.
-
-       PR c++/61982 - dead stores to destroyed objects.
-       * call.c (build_trivial_dtor_call): New, assigns a clobber.
-       (build_over_call, build_special_member_call): Use it.
-       * cp-tree.h: Declare it.
-       * init.c (build_delete): Remove trivial path.
-
-       * init.c (build_dtor_call): Use build_special_member_call.
-       (build_delete): Remove redundant uses of save_addr.
-
-       * decl.c (build_clobber_this): Use build_clobber.
-
-2018-04-27  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85553
-       * init.c (build_zero_init_1): For zero initialization of
-       NULLPTR_TYPE_P type use build_int_cst directly.
-
-2018-04-27  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/85515
-       * name-lookup.c (consider_binding_level): Skip compiler-generated
-       variables.
-       * search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Flatten
-       nested if statements into a series of rejection tests.  Reject
-       lambda-ignored entities as suggestions.
-
-2018-04-27  Jason Merrill  <jason@redhat.com>
-
-       * cvt.c (cp_fold_convert): Use convert_ptrmem.
-       * typeck.c (convert_ptrmem): Add a NOP even if no adjustment.
-
-2018-04-27  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84691
-       * decl.c (grokdeclarator): Clear friendp upon definition in local
-       class definition error.
-
-2018-04-27  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85545 - ICE with noexcept PMF conversion.
-       * cvt.c (cp_fold_convert): Pass PMF CONSTRUCTORs to
-       build_ptrmemfunc.
-       * typeck.c (build_ptrmemfunc): Don't build a NOP_EXPR for zero
-       adjustment.
-       (build_ptrmemfunc_access_expr): Special-case CONSTRUCTORs.
-
-2018-04-27  Nathan Sidwell  <nathan@acm.org>
-
-       * typeck.c (convert_ptrmem): Move local var decls to initialization.
-
-       * cp-tree.h (TEMPLATE_INFO): Fix comments.
-       (TI_PENDING_TEMPLATE_FLAG): Check TEMPLATE_INFO.
-       (NON_DEFAULT_TEMPLATE_ARG_COUNT): Wrap line.
-       (dump, print_other_binding_stacks): Remove declarations.
-       * name-lookup.c (print_other_binding_stack): Make static.
-       * pt.c (build_template_decl): Make static.
-
-2018-04-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85545 - ICE with noexcept PMF conversion.
-       * cvt.c (cp_fold_convert): Handle PMF CONSTRUCTORs directly.
-
-2018-04-25  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/85437
-       PR c++/49171
-       * cp-tree.h (REINTERPRET_CAST_P): New.
-       * constexpr.c (cxx_eval_constant_expression) <case NOP_EXPR>:
-       Reject REINTERPET_CAST_P conversions.  Use cplus_expand_constant
-       for non-trivial PTRMEM_CST cases.
-       * typeck.c (build_nop_reinterpret): New.
-       (build_reinterpret_cast_1): Use it.  Set REINTERPRET_CAST_P on
-       NOP_EXPRs returned by cp_convert.
-
-2018-04-23  Jason Merrill  <jason@redhat.com>
-
-       PR c++/69560 - wrong alignof(double) on x86.
-       CWG 1879 - Inadequate definition of alignment requirement.
-       * cp-tree.h (ALIGNOF_EXPR_STD_P): New.
-       * typeck.c (cxx_sizeof_or_alignof_type): Add std_alignof parm.
-       (cxx_sizeof_expr, cxx_sizeof_nowarn, cxx_alignas_expr)
-       (cxx_alignof_expr): Pass it.
-       * parser.c (cp_parser_unary_expression): Pass it.
-       * pt.c (tsubst_copy): Copy it.
-       (tsubst_copy_and_build): Pass it.
-       * decl.c (fold_sizeof_expr): Pass it.
-
-2018-04-23  Jakub Jelinek  <jakub@redhat.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/85470 - wrong error with static data member.
-       * decl.c (check_initializer): Check DECL_INITIALIZED_IN_CLASS_P.
-       * typeck2.c (store_init_value): Likewise.
-
-2018-04-20  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85462
-       * cp-tree.h (tinst_level): Remove in_system_header_p member,
-       change refcount member from unsigned char to unsigned short,
-       add refcount_infinity static data member, adjust comments.
-       * pt.c (tinst_level::refcount_infinity): Define.
-       (inc_refcount_use): Remove assert, don't increment if refcount
-       is already refcount_infinity, adjust comment.
-       (dec_refcount_use): Remove assert, don't decrement if refcount
-       is refcount_infinity, adjust comment.
-       (push_tinst_level_loc): Formatting fix.
-
-2018-04-19  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84611
-       * pt.c (lookup_template_class_1): Check pushtag return value for
-       error_mark_node.
-
-2018-04-19  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/80290
-       * cp-tree.h (tinst_level::free): Fix whitespace.
-
-2018-04-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84630
-       * pt.c (tsubst_lambda_expr): Check begin_lambda_type return value
-       for error_mark_node.
-
-2018-04-18  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84463
-       * typeck.c (cp_build_addr_expr_1): Move handling of offsetof-like
-       tricks from here to ...
-       * cp-gimplify.c (cp_fold) <case ADDR_EXPR>: ... here.  Only use it
-       if INDIRECT_REF's operand is INTEGER_CST cast to pointer type.
-
-2018-04-18  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/80290
-       * cp-tree.h (struct tinst_level): Split decl into tldcl and
-       targs.  Add private split_list_p, tree_list_p, and not_list_p
-       inline const predicates; to_list private member function
-       declaration; free public member function declaration; list_p,
-       get_node and maybe_get_node accessors, and refcount data
-       member.  Narrow errors to unsigned short.
-       * error.c (print_instantiation_full_context): Use new
-       accessors.
-       (print_instantiation_partial_context_line): Likewise.  Drop
-       const from tinst_level-typed parameter.
-       * mangle.c (mangle_decl_string): Likewise.
-       * pt.c (freelist): New template class.
-       (tree_list_freelist_head): New var.
-       (tree_list_freelist): New fn, along with specializations.
-       (tinst_level_freelist_head): New var.
-       (pending_template_freelist_head): Likewise.
-       (tinst_level_freelist, pending_template_freelist): New fns.
-       (tinst_level::to_list, tinst_level::free): Define.
-       (inc_refcount_use, dec_refcount_use): New fns for tinst_level.
-       (set_refcount_ptr): New template fn.
-       (add_pending_template): Adjust for refcounting, freelists and
-       new accessors.
-       (neglectable_inst_p): Take a NULL d as a non-DECL.
-       (limit_bad_template_recursion): Use new accessors.
-       (push_tinst_level): New overload to create the list.
-       (push_tinst_level_loc): Make it static, split decl into two
-       args, adjust tests and initialization to cope with split
-       lists, use freelist, adjust for refcounting.
-       (push_tinst_level_loc): New wrapper with the old interface.
-       (pop_tinst_level): Adjust for refcounting.
-       (record_last_problematic_instantiation): Likewise.
-       (reopen_tinst_level): Likewise.  Use new accessors.
-       (instantiate_alias_template): Adjust for split list.
-       (fn_type_unification): Likewise.
-       (get_partial_spec_bindings): Likewise.
-       (instantiate_pending_templates): Use new accessors.  Adjust
-       for refcount.  Release pending_template to freelist.
-       (instantiating_current_function_p): Use new accessors.
-
-2018-04-16  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/85039
-       * parser.c (cp_parser_builtin_offset): Reject type definitions.
-       * mangle.c (nested_anon_class_index): Avoid crash returning -1
-       if we've seen errors.
-
-2018-04-12  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/85385
-       * name-lookup.c (macro_use_before_def::maybe_make): New function,
-       checking that the use is indeed before the definition.
-       (macro_use_before_def::macro_use_before_def): Make private.
-       (macro_use_before_def::~macro_use_before_def): Make private.  Move
-       check for UNKNOWN_LOCATION to macro_use_before_def::maybe_make.
-       (lookup_name_fuzzy): Call macro_use_before_def::maybe_make rather
-       than using new directly.
-
-2018-04-12  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85356 - ICE with pointer to member function.
-       * pt.c (maybe_instantiate_noexcept): Do instantiate in templates if
-       flag_noexcept_type.  Build the new spec within the function context.
-       * except.c (build_noexcept_spec): Do get constant value in templates
-       if flag_noexcept_type.
-       * decl.c (check_redeclaration_exception_specification): Don't
-       instantiate noexcept on a dependent declaration.
-
-2018-04-12  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85258
-       * constexpr.c (reduced_constant_expression_p): Return false for null
-       trees.
-
-2018-04-11  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85032
-       * constexpr.c (potential_constant_expression_1): Consider conversions
-       from classes to literal types potentially constant.
-
-2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/70808
-       * init.c (build_zero_init_1): Handle NULLPTR_TYPE_P being true of
-       the type like TYPE_PTR_OR_PTRMEM_P.
-
-2018-04-10  Jason Merrill  <jason@redhat.com>
-
-       PR debug/65821 - wrong location for main().
-       * call.c (clear_location_r, convert_default_arg): Revert.
-       * tree.c (break_out_target_exprs): Add clear_location parm.
-       (struct bot_data): New.
-       (bot_manip): Clear location if requested.
-       * init.c (get_nsdmi): Pass clear_location.
-
-2018-04-10  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/85110
-       * call.c (get_fndecl_argument_location): Make non-static.
-       * cp-tree.h (get_fndecl_argument_location): New decl.
-       * typeck.c (convert_for_assignment): When complaining due to
-       conversions for an argument, show the location of the parameter
-       within the decl.
-
-2018-04-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85312 - P0962 cleanup
-       * parser.c (cp_parser_perform_range_for_lookup): Remove unreachable
-       diagnostics.
-
-2018-04-10  Jason Merrill  <jason@redhat.com>
-
-       PR debug/65821 - wrong location for main().
-       * call.c (clear_location_r): New.
-       (convert_default_arg): Use it.
-       * tree.c (bot_manip): Remove builtin_LINE/FILE handling.
-
-       PR c++/85285 - ICE with flexible array after substitution.
-       * pt.c (instantiate_class_template_1): Check for flexible array in
-       union.
-
-2018-04-09  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/85227
-       * decl.c (cp_finish_decomp): In a template, if the type is incomplete
-       issue a pedwarn and defer trying to do bindings.
-
-2018-04-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85279 - dump_expr doesn't understand decltype.
-       * error.c (dump_expr): Handle DECLTYPE_TYPE.
-
-       PR c++/85262 - ICE with redundant qualification on constructor.
-       * call.c (build_new_method_call_1): Move make_args_non_dependent
-       after A::A() handling.
-
-       PR c++/85277 - ICE with invalid offsetof.
-       * semantics.c (finish_offsetof): Avoid passing non-DECL to %qD.
-       Adjust -Winvalid-offsetof diagnostic to say conditionally supported.
-
-       PR c++/85264 - ICE with excess template-parameter-list.
-       * parser.c (cp_parser_check_template_parameters): Add template_id_p
-       parameter.  Don't allow an extra template header if true.
-       (cp_parser_class_head): Pass template_id_p.
-       (cp_parser_elaborated_type_specifier): Likewise.
-       (cp_parser_alias_declaration): Likewise.
-       (cp_parser_check_declarator_template_parameters): Likewise.
-
-2018-04-09  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85194
-       * parser.c (cp_parser_simple_declaration): For structured bindings,
-       if *maybe_range_for_decl is NULL after parsing it, set it to
-       error_mark_node.
-
-2018-04-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85256 - ICE capturing pointer to VLA.
-       * lambda.c (add_capture): Distinguish between variable-size and
-       variably-modified types.
-
-2018-04-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85214 - ICE with alias, generic lambda, constexpr if.
-       * pt.c (extract_locals_r): Remember local typedefs.
-
-2018-04-06  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/84269
-       * name-lookup.c (struct std_name_hint): Move out of
-       get_std_name_hint; add field "min_dialect".
-       (get_std_name_hint): Add min_dialect values to all initializers.
-       Add <any>, <atomic>, <bitset>, <condition_variable>, <functional>,
-       <future>, <istream>, <iterator>, <ostream>, <mutex>, <optional>,
-       <shared_mutex>, <string_view>, <thread>, and <variant>.
-       Add fstream, ifstream, and ofstream to <fstream>.
-       Add istringstream, ostringstream, and stringstream to <sstream>.
-       Add basic_string to <string>.
-       Add tuple_element and tuple_size to <tuple>.
-       Add declval to <utility>.
-       Fix ordering of <queue> and <tuple>.
-       Return a std_name_hint, rather than a const char *.
-       (get_cxx_dialect_name): New function.
-       (maybe_suggest_missing_std_header): Detect names that aren't yet
-       available in the current dialect, and instead of suggesting a
-       missing #include, warn about the dialect.
-
-2018-04-06  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85210
-       * pt.c (tsubst_decomp_names): Return error_mark_node and assert
-       errorcount is set if tsubst doesn't return a VAR_DECL.
-
-2018-04-06  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/85021
-       * name-lookup.c (using_directives_contain_std_p): New function.
-       (has_using_namespace_std_directive_p): New function.
-       (suggest_alternatives_for): Simplify if/else logic using early
-       returns.  If no candidates were found, and there's a
-       "using namespace std;" directive, call
-       maybe_suggest_missing_std_header.
-       (maybe_suggest_missing_header): Split later part of the function
-       into..
-       (maybe_suggest_missing_std_header): New.
-
-2018-04-06  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85242 - ICE with class definition in template parm.
-       * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): False if
-       processing_template_parmlist.
-
-       PR c++/85240 - LTO ICE with using of undeduced auto fn.
-       * cp-gimplify.c (cp_genericize_r): Discard using of undeduced auto.
-
-2018-04-05  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85209
-       * pt.c (tsubst_decomp_names): Don't fail or ICE if DECL_CHAIN (decl3)
-       is not prev, if prev == decl.
-
-       PR c++/85208
-       * decl.c (start_decl): For DECL_DECOMPOSITION_P decls, don't call
-       maybe_apply_pragma_weak here...
-       (cp_maybe_mangle_decomp): ... but call it here instead.
-
-2018-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85136 - ICE with designated init in template.
-       * decl.c (maybe_deduce_size_from_array_init): Handle dependent
-       designated initializer.
-       (check_array_designated_initializer): Update ce->index with the
-       constant value.
-
-       PR c++/83808 - ICE with VLA initialization.
-       * typeck2.c (process_init_constructor_array): Don't require a VLA
-       initializer to have VLA type.
-
-2018-04-05  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/80956
-       * call.c (convert_like_real): Fail gracefully for a broken
-       std::initializer_list, missing a definition.
-
-       * name-lookup.c (do_pushtag): Tweak message, use %< and %>.
-
-2018-04-05  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84792
-       * decl.c (grokdeclarator): Fix diagnostic about typedef name used
-       as nested-name-specifier, keep type and TREE_TYPE (decl) in sync.
-
-2018-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/82152 - ICE with class deduction and inherited ctor.
-       * pt.c (do_class_deduction): Ignore inherited ctors.
-
-       PR c++/84665 - ICE with array of empty class.
-       * decl2.c (cp_check_const_attributes): Use fold_non_dependent_expr.
-
-       PR c++/85228 - ICE with lambda in enumerator in template.
-       * pt.c (bt_instantiate_type_proc): Don't assume
-       CLASSTYPE_TEMPLATE_INFO is non-null.
-
-2018-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       Implement P0969
-       * decl.c (find_decomp_class_base): Check accessibility instead
-       of declared access, adjust diagnostic.
-
-2018-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       Implement P0961
-       * decl.c (get_tuple_decomp_init): Check the templatedness
-       of a member get.
-
-2018-04-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85200 - ICE with constexpr if in generic lambda.
-       * pt.c (extract_locals_r): Don't record the local specs of variables
-       declared within the pattern.
-
-2018-04-05  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/84979
-       * pt.c (check_auto_in_tmpl_args): New.
-       (tsubst_qualified_id): Use it to reject template args
-       referencing auto for non-type templates.
-       * parser.c (cp_parser_template_id): Likewise.
-       * cp-tree.h (check_auto_in_tmpl_args): Declare.
-       * typeck2.c (build_functional_cast): Report correct location
-       for invalid use of auto.
-
-2018-04-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85215 - ICE with copy-init from conversion.
-       * call.c (merge_conversion_sequences): Fix type of direct binding
-       sequence.
-
-       PR c++/84938 - ICE with division by ~-1.
-       * call.c (set_up_extended_ref_temp): Call cp_fully_fold.
-
-       PR c++/84936 - ICE with unexpanded pack in mem-initializer.
-       * parser.c (cp_parser_mem_initializer_list): Call
-       check_for_bare_parameter_packs.
-
-2018-04-04  Jakub Jelinek  <jakub@redhat.com>
-
-       PR inline-asm/85172
-       * constexpr.c (cxx_eval_builtin_function_call): For calls to
-       builtin_valid_in_constant_expr_p functions, don't call
-       cxx_eval_constant_expression if argument is not
-       potential_constant_expression.
-
-       PR c++/85146
-       * cp-tree.h (calculate_bases, calculate_direct_bases): Add complain
-       argument.
-       * semantics.c (calculate_bases): Add complain argument.  Use
-       complete_type_or_maybe_complain instead of just complete_type and
-       return an empty vector if it fails.  Move make_tree_vector () call
-       after early return.  Formatting fixes.
-       (calculate_direct_bases): Likewise.  Call release_tree_vector at the
-       end.
-       (dfs_calculate_bases_post, calculate_bases_helper): Formatting fixes.
-       * pt.c (tsubst_pack_expansion): Adjust calculate_bases and
-       calculate_direct_bases callers, formatting fixes.
-
-2018-04-04  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85006 - -fconcepts ICE with A<auto...> return type
-       * pt.c (tsubst_pack_expansion): Allow unsubstituted auto pack.
-
-       PR c++/85200 - ICE with constexpr if in generic lambda.
-       * tree.c (cp_walk_subtrees): Walk into DECL_EXPR in templates.
-
-       PR c++/84221 - bogus -Wunused with attribute and template.
-       * decl2.c (is_late_template_attribute): Handle unused and used
-       normally on non-TYPE_DECL.
-
-       PR c++/85135 - ICE with omitted template arguments.
-       * decl.c (grokdeclarator): Catch deduced class type in trailing
-       return type.
-
-       PR c++/85133 - ICE with missing concept initializer.
-       * decl.c (cp_finish_decl): If a concept initializer is missing, use
-       true.
-
-       PR c++/85118 - wrong error with generic lambda and std::bind.
-       * call.c (add_template_conv_candidate): Disable if there are any
-       call operators.
-
-       PR c++/85141 - ICE with compound assignment and static member fn.
-       * typeck.c (cp_build_modify_expr): Call decay_conversion for RHS of
-       compound assignment.
-
-       PR c++/85148 - ICE with 'this' in array NSDMI.
-       * tree.c (replace_placeholders_r): Use handled_component_p.
-
-2018-04-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       PR c++/65923
-       * decl.c (grokfndecl): Handle standard UDL diagnostics here..
-       * parser.c (cp_parser_unqualified_id): ..not here.
-
-2018-04-04  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/84943
-       * typeck.c (cp_build_addr_expr_1): Mark FUNCTION_DECL as
-       used.
-       * decl2.c (mark_used): Return without effects if tf_conv.
-
-2018-04-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85092 - C++17 ICE with unused list constructor.
-       * call.c (conv_binds_ref_to_prvalue): Also count ck_identity
-       from a TARGET_EXPR.
-
-       PR c++/85113 - ICE with constexpr and __builtin_constant_p.
-       * constexpr.c (cxx_eval_builtin_function_call): Only defer
-       __builtin_constant_p if ctx->quiet.
-
-2018-04-03  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84768
-       * pt.c (rewrite_template_parm): If the first argument is
-       error_mark_node return it immediately.
-       (build_deduction_guide): Check the return value of the
-       latter for error_mark_node.
-       (do_class_deduction): Check the return value of the latter.
-
-2018-04-03  Jason Merrill  <jason@redhat.com>
-
-       * semantics.c (finish_if_stmt_cond): Use
-       instantiation_dependent_expression_p.
-
-       PR c++/85149 - generic lambda and constexpr if.
-       * pt.c (build_extra_args, add_extra_args): Split from
-       tsubst_pack_expansion.
-       (tsubst_expr) [IF_STMT]: Use them.
-       * cp-tree.h (IF_STMT_EXTRA_ARGS): New.
-
-       * typeck.c (merge_types): Limit matching attribute shortcut to
-       the default case.
-
-2018-04-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85147
-       * pt.c (fixed_parameter_pack_p_1): Punt if parm is error_mark_node.
-
-       PR c++/85140
-       * name-lookup.c (handle_namespace_attrs): Return early if attributes
-       is error_mark_node.
-
-       PR c++/85134
-       * decl.c (cp_finish_decl): If ensure_literal_type_for_constexpr_object
-       fails, after clearing DECL_DECLARED_CONSTEXPR_P don't return early,
-       instead for static data members clear init and set DECL_EXTERNAL.
-
-2018-04-02  Jason Merrill  <jason@redhat.com>
-
-       PR c++/64095 - auto... parameter pack.
-       * parser.c (cp_parser_parameter_declaration): Handle turning autos
-       into packs here.
-       (cp_parser_parameter_declaration_list): Not here.
-
-2018-03-31  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/85027
-       * class.c (instantiate_type): Peel off SAVE_EXPR before
-       BASELINK.
-
-2018-03-30  Jason Merrill  <jason@redhat.com>
-
-       * typeck2.c (process_init_constructor_record): Use
-       init_list_type_node for the CONSTRUCTOR around an anonymous union
-       designated initializer.
-
-2018-03-30  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84791
-       * semantics.c (finish_omp_reduction_clause): If
-       OMP_CLAUSE_REDUCTION_PLACEHOLDER is error_mark_node, return true
-       even if processing_template_decl.
-
-2018-03-29  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/84269
-       * name-lookup.c (get_std_name_hint): Add names from <memory>,
-       <tuple>, and <utility>.
-
-2018-03-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85093 - too many template args with pack expansion.
-       * pt.c (coerce_template_parms): Keep pack expansion args that will
-       need to be empty.
-
-2018-03-29  Jason Merrill  <jason@redhat.com>
-
-       * pt.c (build_non_dependent_expr): Propagate expr location.
-
-2018-03-27  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85060 - wrong-code with call to base member in template.
-       * search.c (any_dependent_bases_p): Check uses_template_parms
-       rather than processing_template_decl.
-
-2018-03-29  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/85110
-       * typeck.c (convert_for_assignment): When complaining due to
-       conversions for an argument, attempt to use the location of the
-       argument.
-
-2018-03-28  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/85028
-       * pt.c (tsubst_default_argument): Early return if the type of the
-       parameter is erroneous.
-
-2018-03-28  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/84973
-       * decl2.c (note_vague_linkage_fn): Don't defer uninstantiated
-       templates.
-
-       PR c++/84968
-       * tree.c (strip_typedefs_expr): Reject STATEMENT_LISTs.
-
-2018-03-27  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/85067
-       * method.c (defaulted_late_check): Partially revert r253321 changes,
-       do not early return upon error.
-
-2018-03-27  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85077
-       * cp-gimplify.c (cp_fold) <case CONSTRUCTOR>: For ctors with vector
-       type call fold to generate VECTOR_CSTs when possible.
-
-       PR c++/85076
-       * tree.c (cp_build_reference_type): If to_type is error_mark_node,
-       return it right away.
-
-2018-03-27  Volker Reichelt  <v.reichelt@netcologne.de>
-
-       * search.c (check_final_overrider): Use inform instead of error
-       for the diagnostics of the overridden functions.  Tweak wording.
-
-2018-03-27  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85068
-       * class.c (update_vtable_entry_for_fn): Don't ICE if base_binfo
-       is NULL.  Assert if thunk_binfo is NULL then errorcount is non-zero.
-
-2018-03-27  Paolo Carlini  <paolo.carlini@oracle.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/84632
-       * init.c (build_aggr_init): When initializing from array,
-       reject anything but CONSTRUCTORs and TARGET_EXPRs.
-       (build_vec_init): Handle separately ARRAY_TYPEs.
-
-2018-03-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/85062 - ICE with alignas in wrong place.
-       * decl.c (grokdeclarator): Ignore attributes on type-specifiers
-       here.
-
-       PR c++/85049 - ICE with __integer_pack.
-       * pt.c (unify_pack_expansion): Don't try to deduce generated packs.
-       * cp-tree.h (TEMPLATE_PARM_P): New.
-
-2018-03-23  Jason Merrill  <jason@redhat.com>
-
-       PR c++/78489 - wrong SFINAE behavior.
-
-       PR c++/84489
-       * pt.c (type_unification_real): Don't defer substitution failure.
-
-2018-03-23  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/85015
-       * decl.c (compute_array_index_type): Set osize to mark_rvalue_use
-       result.
-
-       PR c++/84942
-       * pt.c (tsubst_copy_and_build) <case FIX_TRUNC_EXPR>: Replace
-       cp_build_unary_op call with gcc_unreachable ().
-
-2018-03-23  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85045
-       * cxx-pretty-print.c (cxx_pretty_printer::multiplicative_expression):
-       Handle EXACT_DIV_EXPR and RDIV_EXPR.  Tweak condition.
-       (cxx_pretty_printer::expression): Handle EXACT_DIV_EXPR and RDIV_EXPR.
-
-2018-03-23  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       Implement P0962
-       * parser.c (cp_parser_perform_range_for_lookup): Change
-       the condition for deciding whether to use members.
-
-2018-03-23  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/85033
-       * semantics.c (finish_offsetof): Don't allow CONST_DECLs.
-
-2018-03-23  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/71251
-       * parser.c (cp_parser_alias_declaration): Call
-       parser_check_template_parameters.
-
-       PR c++/84789
-       * pt.c (resolve_typename_type): Drop assert that stopped
-       simplification to template-independent types.  Add assert to
-       verify the initial scope is template dependent.
-       * parser.c (cp_parser_parse_and_diagnose_invalid_type_name):
-       Reparse the id expression as a type-name, not a declarator.
-
-       PR c++/84729
-       * init.c (build_vec_init): Error at parenthesized array init.
-
-       PR c++/84610
-       PR c++/84642
-       PR c++/84942
-       * cp-tree.h (temp_override): New template class, generalizing
-       a cleanup that was only used...
-       * parser.c (cp_parser_parameter_declaration_clause):
-       ... here for auto_is_implicit_function_template_parm_p.
-       (cp_parser_gnu_attributes_opt): Use it here as well.
-       (cp_parser_std_attribute): Likewise.
-
-2018-03-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84854
-       * semantics.c (finish_if_stmt_cond): Check if the type of the condition
-       is boolean.
-
-2018-03-21  Jason Merrill  <jason@redhat.com>
-
-       PR c++/81311 - wrong C++17 overload resolution.
-       * call.c (build_user_type_conversion_1): Remove C++17 code.
-       (conv_binds_ref_to_prvalue): New.
-       (build_over_call): Handle C++17 copy elision.
-       (build_special_member_call): Only do C++17 copy elision here if the
-       argument is already the right type.
-
-2018-03-21  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/71965
-       * init.c (build_vec_init): Silence error, former sorry,
-       without tf_error.
-
-       PR c++/84610
-       PR c++/84642
-       * parser.c (abort_fully_implicit_template_p): New.
-       (cp_parser_skip_to_end_of_statement): Use it.
-       (cp_parser_skip_to_end_of_block_or_statement): Likewise.
-       (finish_fully_implicit_template_p): Clear
-       implicit_template_parms and implicit_template_scope.
-
-2018-03-21  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84972
-       * decl.c (maybe_deduce_size_from_array_init): Set TREE_TYPE to
-       error_mark_node when check_array_designated_initializer fails.
-
-2018-03-21  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84961
-       * cp-tree.h (genericize_compound_lvalue): Declare.
-       * typeck.c (genericize_compound_lvalue): New function.
-       (unary_complex_lvalue, cp_build_modify_expr): Use it.
-       * semantics.c (finish_asm_stmt): Replace MODIFY_EXPR, PREINCREMENT_EXPR
-       and PREDECREMENT_EXPR in output and "m" constrained input operands with
-       COMPOUND_EXPR.  Call cxx_mark_addressable on the rightmost
-       COMPOUND_EXPR operand.
-
-2018-03-21  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/85008
-       * tree.c (decl_linkage): Use DECL_CLONED_FUNCTION_P.
-       * decl2.c (vague_linkage_p): Likewise.
-
-2018-03-21  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/84994
-       * constexpr.c (constexpr_fn_retval): Make non-"static".
-       * cp-tree.h (constexpr_fn_retval): New decl.
-       * search.c (direct_accessor_p): Update leading comment.
-       (reference_accessor_p): Likewise.
-       (field_accessor_p): Replace check that function body is a
-       RETURN_EXPR with a call to constexpr_fn_retval.  Fix
-       indentation of "field_type" decl.
-
-2018-03-21  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84804
-       * name-lookup.c (do_pushtag): Permit lambdas to be pushed into
-       complete classes.
-
-2018-03-21  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/84850
-       * call.c (first_non_public_field): New template and function.
-       (first_non_trivial_field): New function.
-       (maybe_warn_class_memaccess): Call them.
-
-2018-03-21  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/84892
-       * search.c (field_accessor_p): Use class_of_this_parm rather than
-       type_of_this_parm, to check that "this" is a "const T *", rather
-       than a "T *const".
-
-2018-03-21  Nathan Sidwell  <nathan@acm.org>
-
-       * class.c (finish_struct_anon_r): Refactor, deprecate anything
-       other than public non-static data members.
-       * parser.c (cp_parser_init_declarator): Deprecate attributes after
-       parenthesized initializer.
-
-       PR c++/84836
-       * name-lookup.c (update_binding): Correct logic for local binding
-       update.
-
-2018-03-21  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/71638, ICE with NSDMI and reference.
-       * constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags
-       even when we replace an element.
-
-2018-03-20  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84978, ICE with NRVO.
-       * constexpr.c (cxx_eval_constant_expression): Handle the case when
-       a RESULT_DECL isn't in the hash map.
-
-2018-03-20  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84978, ICE with NRVO.
-       * cvt.c (cp_get_fndecl_from_callee): Add fold parameter.
-       (cp_get_callee_fndecl_nofold): New.
-       * cp-gimplify.c (cp_genericize_r): Use it instead.
-       * call.c (check_self_delegation): Likewise.
-
-2018-03-20  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84962
-       * name-lookup.c (pushdecl_class_level): Push anon-struct's
-       member_vec, if there is one.
-
-       PR c++/84970
-       * cp-tree.h (lookup_list_keep): Declare.
-       * tree.c (lookup_list_keep): New, broken out of ...
-       (build_min): ... here.  Call it.
-       * decl.c (cp_finish_decl): Call lookup_list_keep.
-
-2018-03-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84937 - ICE with class deduction and auto.
-       * pt.c (rewrite_template_parm): Fix auto handling.
-
-2018-03-19  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84925
-       * pt.c (enclosing_instantiation_of): Check if fn is null.
-
-       PR c++/84927
-       * constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags
-       as we evaluate the elements.
-       (cxx_eval_constant_expression): Verify constructor's flags
-       unconditionally.
-
-2018-03-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/71834 - template-id with too few arguments.
-       * pt.c (coerce_template_parms): Check fixed_parameter_pack_p.
-
-2018-03-19  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84835
-       * lambda.c (maybe_add_lambda_conv_op): Force C++ linkage.
-       * pt.c (build_template_decl): Propagate language linkage.
-
-       PR c++/84812
-       * name-lookup.c (set_local_extern_decl_linkage): Defend against
-       ambiguous lookups.
-
-2018-03-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c/84910
-       * parser.c (cp_parser_lambda_introducer): Remove trailing space from
-       diagnostics.
-       * method.c (synthesize_method): Likewise.
-       * pt.c (convert_nontype_argument): Likewise.
-
-2018-03-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84720 - ICE with rvalue ref non-type argument.
-       * pt.c (invalid_nontype_parm_type_p): Prohibit rvalue reference.
-       (convert_nontype_argument): Revert earlier change.
-
-       PR c++/80227 - SFINAE and negative array size.
-       * decl.c (compute_array_index_type): Use
-       build_converted_constant_expr and valid_constant_size_p.
-
-       PR c++/84906 - silent wrong code with ambiguous conversion.
-       * call.c (build_user_type_conversion_1): Set need_temporary_p on
-       ambiguous conversion.
-       (convert_like_real): Check it.
-
-       PR c++/83937 - wrong C++17 handling of init-list ctor argument.
-       * call.c (build_special_member_call): Don't convert an init-list
-       argument directly to the class type.
-
-2018-03-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/79937
-       PR c++/82410
-       * cp-tree.h (CONSTRUCTOR_PLACEHOLDER_BOUNDARY): Define.
-       (find_placeholder): Declare.
-       * tree.c (struct replace_placeholders_t): Add exp member.
-       (replace_placeholders_r): Don't walk into ctors with
-       CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag set, unless they are equal to
-       d->exp.  Replace PLACEHOLDER_EXPR with unshare_expr (x) rather than x.
-       (replace_placeholders): Initialize data.exp.
-       (find_placeholders_r, find_placeholders): New functions.
-       * typeck2.c (process_init_constructor_record,
-       process_init_constructor_union): Set CONSTRUCTOR_PLACEHOLDER_BOUNDARY
-       if adding NSDMI on which find_placeholder returns true.
-       * call.c (build_over_call): Don't call replace_placeholders here.
-       * cp-gimplify.c (cp_genericize_r): Set TARGET_EXPR_NO_ELIDE on
-       TARGET_EXPRs with CONSTRUCTOR_PLACEHOLDER_BOUNDARY set on
-       TARGET_EXPR_INITIAL.
-       (cp_fold): Copy over CONSTRUCTOR_PLACEHOLDER_BOUNDARY bit to new
-       ctor.
-
-2018-03-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83911 - ICE with multiversioned constructor.
-       * cp-gimplify.c (cp_genericize_r): Replace versioned function with
-       dispatchere here.
-       * call.c (build_over_call): Not here.
-
-2018-03-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84874
-       * decl.c (reshape_init_class): Don't assert d->cur->index == field
-       if d->cur->index is a FIELD_DECL, instead set field to d->cur->index.
-
-2018-03-15  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84222
-       * cp-tree.h (cp_warn_deprecated_use): Declare.
-       * tree.c (cp_warn_deprecated_use): New function.
-       * typeck2.c (build_functional_cast): Use it.
-       * decl.c (grokparms): Likewise.
-       (grokdeclarator): Likewise.  Temporarily push nested class scope
-       around grokparms call for out of class member definitions.
-
-2018-03-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84820 - no error for invalid qualified-id.
-       * parser.c (cp_parser_make_indirect_declarator): Don't wrap
-       cp_error_declarator.
-
-       PR c++/84801 - ICE with unexpanded pack in lambda.
-       * pt.c (check_for_bare_parameter_packs): Don't return early for a
-       lambda in non-template context.
-
-       PR c++/81236 - auto variable and auto function
-       * pt.c (tsubst_baselink): Update the type of the BASELINK after
-       mark_used.
-
-2018-03-14  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83916 - ICE with template template parameters.
-       * pt.c (convert_template_argument): Don't substitute into type of
-       non-type parameter if we don't have enough arg levels.
-       (unify): Likewise.
-
-2018-03-14  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84596
-       * semantics.c (finish_static_assert): Check
-       instantiation_dependent_expression_p instead of
-       {type,value}_dependent_expression_p.
-
-2018-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/82336 - link error with list-init default argument.
-       * decl.c (check_default_argument): Unshare an initializer list.
-
-2018-03-13  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84843
-       * decl.c (duplicate_decls): For redefinition of built-in, use error
-       and return error_mark_node.  For redeclaration, return error_mark_node
-       rather than olddecl if !flag_permissive.
-
-2018-03-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/82565 - ICE with concepts and generic lambda.
-       * pt.c (instantiate_decl): Clear fn_context for lambdas.
-
-2018-03-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84720 - ICE with rvalue ref non-type argument.
-       * pt.c (convert_nontype_argument): Handle rvalue references.
-
-       PR c++/84839 - ICE with decltype of parameter pack.
-       * pt.c (tsubst_pack_expansion): Set cp_unevaluated_operand while
-       instantiating dummy parms.
-
-       * parser.c (cp_parser_simple_type_specifier): Pedwarn about auto
-       parameter even without -Wpedantic.
-
-       PR c++/84798 - ICE with auto in abstract function declarator.
-       * parser.c (cp_parser_parameter_declaration_clause): Check
-       parser->default_arg_ok_p.
-
-2018-03-13  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84808
-       * constexpr.c (find_array_ctor_elt): Don't use elt reference after
-       first potential CONSTRUCTOR_ELTS reallocation.  Convert dindex to
-       sizetype.  Formatting fixes.
-
-2018-03-12  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84355 - ICE with deduction for member class template.
-       * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Always substitute into
-       CLASS_PLACEHOLDER_TEMPLATE.
-
-       PR c++/84802 - ICE capturing uninstantiated class.
-       * lambda.c (build_capture_proxy): Call complete_type.
-
-2018-03-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84770 - ICE with typedef and parameter pack.
-       * pt.c (verify_unstripped_args_1): Split out from
-       verify_unstripped_args.
-
-       PR c++/84785 - ICE with alias template and default targs.
-       * pt.c (type_unification_real): Set processing_template_decl if
-       saw_undeduced == 1.
-
-       PR c++/84752 - ICE with capture of constexpr array.
-       * call.c (standard_conversion): Set rvaluedness_matches_p on the
-       identity conversion under ck_lvalue.
-
-2018-03-09  Jason Merrill  <jason@redhat.com>
-           Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/71169
-       PR c++/71832
-       * pt.c (any_erroneous_template_args_p): New.
-       * cp-tree.h (any_erroneous_template_args_p): Declare it.
-       * parser.c (cp_parser_class_specifier_1): Use it.
-
-2018-03-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84726 - unnecessary capture of constant vars.
-       * cp-tree.h (LAMBDA_CAPTURE_EXPLICIT_P)
-       (LAMBDA_EXPR_CAPTURE_OPTIMIZED): New.
-       * expr.c (mark_use): Set LAMBDA_EXPR_CAPTURE_OPTIMIZED.
-       * lambda.c (is_constant_capture_proxy)
-       (current_lambda_expr, var_to_maybe_prune, mark_const_cap_r)
-       (prune_lambda_captures): New.
-       (finish_lambda_function): Call prune_lambda_captures.
-
-2018-03-09  Jason Merrill  <jason@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84076
-       * call.c (convert_arg_to_ellipsis): Instead of cp_build_addr_expr
-       build ADDR_EXPR with REFERENCE_TYPE.
-       (build_over_call): For purposes of check_function_arguments, if
-       argarray[j] is ADDR_EXPR with REFERENCE_TYPE created above, use
-       its operand rather than the argument itself.
-
-2018-03-09  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84724
-       * decl.c (duplicate_decls): Don't override __* prefixed builtins
-       except for __[^b]*_chk, instead issue permerror and for -fpermissive
-       also a note and return olddecl.
-
-2018-03-09  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84733
-       * name-lookup.c (do_pushdecl_with_scope): Only clear
-       current_function_decl when pushing a non-class (i.e. namespace)
-       scope.
-
-2018-03-08  Jason Merrill  <jason@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/80598
-       * call.c (build_over_call): In templates set TREE_USED (first_fn) when
-       not calling mark_used for the benefit of -Wunused-function warning.
-
-2018-03-06  Jason Merrill  <jason@redhat.com>
-
-       * lambda.c (is_capture_proxy_with_ref): Remove.
-       * constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust.
-
-2018-03-06  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84684
-       * constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated
-       arguments.
-
-2018-03-06  Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/84231
-       * tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE
-       only while processing template decls.
-       * typeck.c (build_x_conditional_expr): Move wrapping of
-       reference type around type...
-       * call.c (build_conditional_expr_1): ... here.  Rename
-       is_lvalue to is_glvalue.
-       * parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P
-       INDIRECT_REF of COND_EXPR too.
-
-       PR c++/84593
-       * init.c (build_zero_init_1): Zero-initialize references.
-
-       PR c++/84492
-       * semantics.c (finish_stmt_expr_expr): Reject unresolved
-       overloads used as stmt expr values.
-
-2018-03-05  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84708 - ICE with lambda in local class NSDMI.
-       * lambda.c (lambda_expr_this_capture): Handle local class NSDMI
-       context.
-
-2018-03-05  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84684
-       * constexpr.c (constexpr_call_hasher::equal): Return false if
-       lhs->hash != rhs->hash.  Change return 1 to return true and
-       return 0 to return false.
-
-2018-03-05  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84702
-       * pt.c (process_template_arg): Mark lookup_keep on a default arg.
-
-2018-03-05  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84707
-       * decl.c (duplicate_decls): Check DECL_NAME before accessing
-       UDLIT_OPER_P.
-
-2018-03-05  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84694
-       * friend.c (do_friend): Restore check for identifier_p inside
-       TEMPLATE_ID_EXPR.
-
-2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84618
-       * parser.c (cp_parser_lambda_introducer): Reject any capture not
-       involving a VAR_DECL or a PARM_DECL.
-
-2018-03-05  Pádraig Brady  <P@draigBrady.com>
-           Jason  Merrill  <jason@redhat.com>
-           Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84497
-       * decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too.
-
-2018-03-03  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84686 - missing volatile loads.
-       * cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref.
-
-2018-03-03  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/71464
-       * optimize.c (maybe_thunk_body): Bail out immediately if either
-       fns[0] or fns[1] is null.
-
-2018-03-02  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84578
-       * constexpr.c (get_array_or_vector_nelts): New.
-       (cxx_eval_array_reference): Use it.
-       (cxx_eval_vec_init_1): Likewise.
-       (cxx_eval_store_expression): Likewise.
-
-2018-03-02  Jason Merrill  <jason@redhat.com>
-
-       * semantics.c (force_paren_expr): Remove redundant test.
-
-2018-03-02  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84663
-       * decl.c (cp_complete_array_type): Check error_mark_node.
-
-       PR c++/84664
-       * typeck.c (cp_perform_integral_promotions): Check the result of
-       mark_rvalue_use.
-
-2018-03-02  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84662
-       * pt.c (tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Use
-       RETURN instead of return.
-       <case POINTER_PLUS_EXPR>: Likewise.
-       <case CONVERT_EXPR>: If op0 is error_mark_node, just return
-       it instead of wrapping it into CONVERT_EXPR.
-
-2018-03-02  Jason Merrill  <jason@redhat.com>
-
-       Fix MIPS16 ICE.
-       * pt.c (type_dependent_expression_p): Check DECL_LANG_SPECIFIC.
-
-2018-03-02  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84590
-       * cp-gimplify.c (cp_fully_fold): Unwrap TARGET_EXPR or a CONSTRUCTOR
-       wrapped in VIEW_CONVERT_EXPR.
-
-2018-03-01  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/84294
-       * decl.c (check_redeclaration_no_default_args): Merge attributes
-       specified on redeclarations of the same function template.
-       Remove dead code.
-
-2018-03-01  Marek Polacek  <polacek@redhat.com>
-           Jason Merrill  <jason@redhat.com>
-
-       PR c++/84582
-       * semantics.c (force_paren_expr): Create a PAREN_EXPR when in
-       a template.
-       (maybe_undo_parenthesized_ref): Unwrap PAREN_EXPR.
-       * typeck2.c (store_init_value): Call fold_non_dependent_expr instead
-       of instantiate_non_dependent_expr.
-       * tree.c (lvalue_kind): Handle PAREN_EXPR like NON_DEPENDENT_EXPR.
-
-2018-03-01  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84434
-       * name-lookup.c (member_vec_dedup): Remove manually peeled
-       iteration.  Ignore dependent ctor inheritance.
-
-2018-03-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/71569 - decltype of template.
-       * parser.c (cp_parser_decltype_expr): Handle missing template args.
-
-2018-03-01  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84596
-       * constexpr.c (require_rvalue_constant_expression): New function.
-       * cp-tree.h: Declare it.
-       * semantics.c (finish_static_assert): Use it instead of
-       require_potential_rvalue_constant_expression.
-
-2018-03-01  Jason Merrill  <jason@redhat.com>
-           Alexandre Oliva  <aoliva@redhat.com>
-
-       PR c++/71569 - ICE with redundant args on member variable template.
-       * decl.c (start_decl): Handle partial specialization of member
-       variable template.
-       * pt.c (determine_specialization): Allow partial specialization
-       of member variable template without specializing enclosing class.
-       (process_partial_specialization): Improve error message.
-
-2018-02-28  Jason Merrill  <jason@redhat.com>
-
-       PR c++/71784 - ICE with ref-qualifier and explicit specialization.
-       * pt.c (determine_specialization): Check ref-qualifier.
-
-2018-02-28  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84609
-       * parser.c (cp_parser_attributes_opt): Formatting fix.
-       (cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt,
-       cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt):
-       New functions.
-       (cp_parser_member_declaration): Use cp_parser_skip_attributes_opt
-       instead of tentative parse to peek over optional attribute tokens
-       to check for CPP_COLON after them.
-
-       PR c++/83871
-       PR c++/83503
-       * pt.c (INCLUDE_STRING): Remove define.
-       (warn_spec_missing_attributes): Use pretty_printer instead of
-       std::string.  Fix up inform call so that the list of attributes
-       is in %s argument.
-
-2018-02-28  Martin Sebor  <msebor@redhat.com>
-
-       PR testsuite/84617
-       * decl.c (duplicate_decls): Fully merge attributes const, pure,
-       and malloc.
-
-2018-02-28  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84602
-       * name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg.
-       * name-lookup.c (fields_linear_search): Look in an anon-aggr
-       regardless of want_type.
-       (search_anon_aggr): Just use get_class_binding_direct.
-
-2018-02-28  Jakub Jelinek  <jakub@redhat.com>
-
-       * decl.c (cp_finish_decomp): Don't adjust eltscnt when calling
-       inform_n.
-
-2018-02-27  Martin Sebor  <msebor@redhat.com>
-
-       * pt.c: Avoid including <string> directly.
-
-2018-02-27  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/83871
-       PR c++/83503
-       * cp-tree.h (warn_spec_missing_attributes): New function.
-       ((check_explicit_specialization): Add an argument.  Call the above
-       function.
-       * decl.c (duplicate_decls): Avoid applying primary function template's
-       attributes to its explicit specializations.
-       cp/pt.c (warn_spec_missing_attributes): Define.
-
-2018-02-27  HÃ¥kon Sandsmark  <hsandsmark@gmail.com>
-
-       PR c++/71546 - lambda init-capture with qualified-id.
-       * parser.c (cp_parser_lambda_introducer): Clear scope after
-       each lambda capture.
-
-2018-02-27  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84426
-       * name-lookup.h (get_member_slot): Rename ...
-       (find_member_slot): ... here.
-       (add_member_slot): New.
-       * name-lookup.c (member_vec_linear_search): No need to check for
-       NULL slot.
-       (get_member_slot): Rename ...
-       (find_member_slot): ... here.  Don't add slot for incomplete class.
-       (add_member_slot): New.
-       * class.c (add_method): Adjust get_member_slot rename.  Bail out
-       if push_class_level_binding fails.  Create slot and grok
-       properties once we're committed to insertion.
-
-2018-02-27  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84489 - dependent default template argument
-       * pt.c (type_unification_real): Handle early substitution failure.
-
-2018-02-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84560 - ICE capturing multi-dimensional VLA.
-       * tree.c (array_of_runtime_bound_p): False if the element is
-       variably-modified.
-
-       PR c++/84441 - ICE with base initialized from ?:
-       * call.c (unsafe_copy_elision_p): Handle COND_EXPR.
-
-       PR c++/84520 - ICE with generic lambda in NSDMI.
-       * lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI
-       'this' in a generic lambda instantiation.
-
-       PR c++/84559 - ICE with constexpr VLA.
-       * constexpr.c (ensure_literal_type_for_constexpr_object): Check
-       for constexpr variable with VLA type.
-
-2018-02-26  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84558
-       * constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like
-       a valid constant initializer.  Formatting fixes.
-
-2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84540
-       * pt.c (tsubst_attributes): Handle correctly tsubst_attribute
-       returning NULL_TREE.
-       (apply_late_template_attributes): Likewise.
-
-2018-02-26  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84557
-       * parser.c (cp_parser_omp_var_list_no_open): Only call
-       cp_parser_lookup_name_simple on names satisfying identifier_p.
-       (cp_parser_oacc_routine): Likewise.
-
-2018-02-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84551 - ICE with concepts and -g.
-       * parser.c (add_debug_begin_stmt): Do nothing in a concept.
-
-2018-02-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84325
-       * tree.c (replace_placeholders_r): Only check TREE_CONSTANT on
-       non-types.
-
-2018-02-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84447 - ICE with deleted inherited ctor with default arg.
-       * call.c (build_over_call): Handle deleted functions in one place.
-
-2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84533
-       * decl.c (redeclaration_error_message): Don't try to use
-       DECL_DECLARED_CONSTEXPR_P on CONST_DECLs.
-
-2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * lambda.c (build_capture_proxy): Define static.
-       * cp-tree.h (build_capture_proxy): Remove.
-
-2018-02-26  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84537
-       * name-lookup.c (suggest_alternative_in_explicit_scope): Return false
-       if name is error node.
-
-2018-02-25  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84015 - ICE with class deduction and auto template parm.
-       * pt.c (rewrite_template_parm): Use tf_partial in first tsubst.
-
-2018-02-24  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/83692
-       * constexpr.c (maybe_constant_init_1): New function.
-       (maybe_constant_init): Make it a wrapper around maybe_constant_init_1.
-       (cxx_constant_init): New function.
-       * cp-tree.h (cxx_constant_init): Declare.
-       * typeck2.c (store_init_value): Call cxx_constant_init instead of
-       cxx_constant_value.  Move the maybe_constant_init call under an 'else'.
-
-2018-02-22  Jason Merrill  <jason@redhat.com>
-
-       PR c++/70468 - ICE with constructor delegation via typedef.
-       * pt.c (tsubst_initializer_list): Check for other mem-initializers
-       with constructor delegation.
-
-2018-02-22  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84424 - ICE with constexpr and __builtin_shuffle.
-       * constexpr.c (reduced_constant_expression_p): Handle CONSTRUCTOR of
-       VECTOR_TYPE.
-
-2018-02-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84493
-       * parser.c (cp_parser_braced_list): Use require_open instead of
-       consume_open.
-
-2018-02-21  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84454 - ICE with pack expansion in signature.
-       * error.c (find_typenames_r): Also stop on EXPR_PACK_EXPANSION.
-
-2018-02-20  Siddhesh Poyarekar  <siddhesh@sourceware.org>
-
-       * cp-objcp-common.c (cxx_block_may_fallthru): Add case for
-       IF_STMT.
-
-2018-02-20  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84446
-       * parser.c (cp_parser_init_declarator): Don't call start_lambda_scope
-       on error_mark_node.
-
-2018-02-20  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84445
-       * class.c (fixed_type_or_null) <case CALL_EXPR>: Only test
-       TREE_HAS_CONSTRUCTOR if instance is not an internal function call.
-
-       PR c++/84449
-       * tree.c (bot_manip): If build_cplus_new or break_out_target_exprs
-       returns error_mark_node, return it immediately.
-       (break_out_target_exprs): If cp_walk_tree with bot_manip returns
-       error_mark_node, return error_mark_node.
-
-       PR c++/84455
-       * pt.c (tsubst_lambda_expr): If not nested, increment temporarily
-       function_depth to avoid GC during finish_lambda_function.
-
-2018-02-19  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84429 - ICE capturing VLA.
-       * lambda.c (build_capture_proxy): Handle reference refs.
-
-2018-02-19  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84448
-       * parser.c (cp_parser_binary_expression): For no_toplevel_fold_p, if
-       either operand is error_mark_node, set current.lhs to that instead of
-       creating a binary op with error_mark_node operands.
-
-       PR c++/84430
-       * constexpr.c (potential_constant_expression_1): Handle OMP_SIMD.
-
-2018-02-19  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84348
-       * decl.c (grokdeclarator): Early return error_mark_node upon
-       ill-formed friend declaration.
-
-2018-02-16  Marek Polacek  <polacek@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84192
-       * constexpr.c (cxx_eval_constant_expression) <case RETURN_EXPR>: Don't
-       set *jump_target to anything if jump_target is NULL.
-
-2018-02-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84151 - unnecessary volatile load with static member.
-       * call.c (build_new_method_call_1): Avoid loading from a volatile
-       lvalue used as the object argument for a static member function.
-
-       PR c++/81853 - using-directive and constexpr.
-       * constexpr.c (cxx_eval_constant_expression): Handle USING_STMT.
-
-       PR c++/84420 - ICE with structured binding in lambda.
-       * lambda.c (is_capture_proxy): Check DECL_DECOMPOSITION_P.
-
-       PR c++/83835 - C++17 error with constructor ctors.
-       * call.c (build_special_member_call): Set TARGET_EXPR_DIRECT_INIT_P.
-
-       PR c++/82664 - ICE with reference to function template parm.
-       * pt.c (convert_nontype_argument_function): Avoid obfuscationg
-       NOP_EXPRs.
-
-       PR c++/82764 - C++17 ICE with empty base
-       * class.c (build_base_field_1): Set DECL_SIZE to zero for empty base.
-
-2018-02-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84421 - type-dependent if constexpr
-       * semantics.c (finish_if_stmt_cond): Check type_dependent_expression_p.
-
-2018-02-16  Nathan Sidwell  <nathan@acm.org>
-
-       Deprecate -ffriend-injection.
-       * decl.c (cxx_init_decl_processing): Emit warning on option.
-       * name-lookup.c (do_pushdecl): Emit warning if we push a visible
-       friend.
-
-2018-02-16  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/82468
-       * decl.c (check_special_function_return_type): Reject template
-       template parameter in deduction guide.
-
-2018-02-16  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84375
-       * name-lookup.c (do_pushdecl): Bail out on bad local friend injection.
-
-2018-02-15  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83227 - C++17 ICE with init-list derived-to-base conversion.
-       * call.c (convert_like_real): Don't use the copy-list-initialization
-       shortcut for ck_base.
-
-       PR c++/84045 - ICE with typedef and noexcept.
-       * except.c (build_noexcept_spec): Use strip_typedefs_expr.
-
-       PR c++/84376 - ICE with omitted template arguments.
-       * pt.c (dguide_name_p): Check for IDENTIFIER_NODE.
-
-       PR c++/84368 - wrong error with local variable in variadic lambda.
-       * pt.c (tsubst_pack_expansion): Fix handling of non-packs in
-       local_specializations.
-
-2018-02-15  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84330
-       * constraint.cc (tsubst_constraint_info): Handle an error_mark_node
-       as first argument.
-
-2018-02-14  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84350
-       * pt.c (do_auto_deduction): Don't check the TREE_TYPE of a null
-       init, early return.
-
-2018-02-14  Nathan Sidwell  <nathan@acm.org>
-
-       * decl2.c (mark_vtable_entries): Set input_location to decl's.
-       (c_parse_final_cleanups): Restore input_location after emitting
-       vtables.
-
-2018-02-14  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * cp-tree.h (do_auto_deduction (tree, tree, tree)): Remove.
-       (do_auto_deduction (tree, tree, tree, tsubst_flags_t,
-       auto_deduction_context, tree, int): Add defaults.
-       * pt.c (do_auto_deduction (tree, tree, tree)): Remove definition.
-       (tsubst_omp_for_iterator): Adjust do_auto_deduction call, forward
-       tsubst_flags_t argument.
-       * init.c (build_new): Likewise.
-
-2018-02-13  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84364
-       * typeck.c (check_return_expr): Don't emit -Weffc++ warning
-       about return other than *this in assignment operators if
-       retval is type dependent expression.
-
-2018-02-13  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84333
-       * call.c (build_conditional_expr_1): Use cp_save_expr instead of
-       save_expr for the G++ extension.
-
-2018-02-13  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84080 - ICE with return type deduction and specialization.
-       * pt.c (determine_specialization): Check uses_template_parms.
-
-       Fix more variadic capture issues.
-       * pt.c (find_parameter_packs_r): Also look at explicit captures.
-       (check_for_bare_parameter_packs): Check current_class_type for
-       lambda context.
-       (extract_locals_r): Handle seeing a full instantiation of a pack.
-       (tsubst_pack_expansion): Likewise.  Force lambda capture.
-       * parser.c (cp_parser_lambda_introducer): Don't
-       check_for_bare_parameter_packs.
-
-       PR c++/84338 - wrong variadic sizeof.
-       * pt.c (argument_pack_select_arg): Like the macro, but look through
-       a pack expansion.
-       (tsubst, tsubst_copy, dependent_template_arg_p): Use it.
-       (extract_fnparm_pack): Do make_pack_expansion.
-       (extract_locals_r): Do strip a pack expansion.
-       * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove.
-
-2018-02-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84341
-       * parser.c (cp_parser_binary_expression): Use build_min instead of
-       build2_loc to build the no_toplevel_fold_p toplevel binary expression.
-
-2018-02-12  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/84263
-       * parser.c (cp_parser_decltype): Push and pop
-       deferring_access_checks.  Reorganize to avoid goto.
-
-2018-02-12  Richard Biener  <rguenther@suse.de>
-
-       PR c++/84281
-       * constexpr.c (cxx_eval_vec_init_1): Use a RANGE_EXPR to compact
-       uniform constructors and delay allocating them fully.
-
-2018-02-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84036 - ICE with variadic capture.
-       Handle variadic capture proxies more like non-variadic.
-       * lambda.c (build_capture_proxy): Remove workaround.
-       * pt.c (find_parameter_packs_r): The proxy is a pack.
-       (instantiate_class_template_1): Remove dead lambda code.
-       (extract_fnparm_pack): Don't make_pack_expansion.
-       (extract_locals_r): Don't strip a pack expansion.
-       (tsubst_pack_expansion): Handle proxy packs.  Use
-       PACK_EXPANSION_EXTRA_ARGS less.
-       (tsubst_decl) [FIELD_DECL]: Don't register_specialization.
-       (tsubst_copy) [FIELD_DECL]: Don't retrieve*_specialization.
-       [VAR_DECL]: Handle ARGUMENT_PACK_SELECT.
-       (tsubst_expr) [DECL_EXPR]: Handle proxy packs.
-       (tsubst_copy_and_build) [VAR_DECL]: Handle proxy packs normally.
-
-2018-02-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR sanitizer/83987
-       * tree.c (cp_free_lang_data): Revert 2018-01-23 change.
-
-2018-02-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/81917 - ICE with void_t and partial specialization.
-       * pt.c (instantiate_class_template_1): Set TYPE_BEING_DEFINED before
-       calling most_specialized_partial_spec.
-
-2018-02-09  Nathan Sidwell  <nathan@acm.org>
-
-       PR c/84293
-       * typeck.c (cp_build_indirect_ref_1, build_reinterpret_cast_1):
-       Pass expr location to strict_aliasing_warning.
-
-2018-02-09  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84296 - ICE with qualified-id in template.
-       PR c++/83714
-       * pt.c (unknown_base_ref_p): New.
-       (instantiation_dependent_scope_ref_p): Use it instead of
-       any_dependent_bases_p.
-
-2018-02-09  Marek Polacek  <polacek@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83659
-       * constexpr.c (cxx_fold_indirect_ref): Sync some changes from
-       fold_indirect_ref_1, including poly_*int64.  Verify first that
-       tree_fits_poly_int64_p (op01).  Formatting fixes.
-
-2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * constexpr.c (cxx_eval_component_reference): Use INDIRECT_REF_P.
-       * lambda.c (build_capture_proxy): Likewise.
-       * search.c (field_access_p): Likewise.
-       * semantics.c (omp_clause_decl, omp_privatize_field,
-       finish_omp_clauses): Likewise.
-
-2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/83806
-       * typeck.c (decay_conversion): Use mark_rvalue_use for the special
-       case of nullptr too.
-
-2018-02-08  Nathan Sidwell  <nathan@acm.org>
-
-       * class.c (finish_struct): Fix std:initializer_list diagnostic
-       formatting.
-
-2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/83204
-       * pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF.
-
-2018-02-07  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84082
-       * parser.c (cp_parser_dot_deref_incomplete): New function.
-       (cp_parser_postfix_dot_deref_expression): Use it.
-
-2018-02-07  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/81610
-       PR c++/80567
-       * name-lookup.c (suggest_rid_p): New function.
-       (lookup_name_fuzzy): Replace enum-rid-filtering logic with call to
-       suggest_rid_p.
-
-2018-02-07  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84182 - ICE with captured lambda
-       PR c++/84181
-       * pt.c (extract_locals_r, extract_local_specs): New.
-       (tsubst_pack_expansion): Use them.
-
-2018-02-07  Martin Liska  <mliska@suse.cz>
-
-       PR c++/84059.
-       * class.c (add_method): Append argument value.
-       * cp-tree.h (maybe_version_functions): Add new argument.
-       * decl.c (decls_match): Call it if a declaration does not
-       have DECL_FUNCTION_VERSIONED.
-       (maybe_version_functions): record argument is added.
-
-2018-02-05  Marek Polacek  <polacek@redhat.com>
-
-       * class.c: Remove unused global variables.
-       (build_primary_vtable): Don't gather statistics.
-       (print_class_statistics): Remove.
-       * cp-tree.h (print_class_statistics): Remove.
-       * tree.c (cxx_print_statistics): Don't call print_class_statistics.
-
-2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD.
-       * constexpr.c (cx_check_missing_mem_inits): Likewise.
-       * decl.c (next_initializable_field, find_decomp_class_base,
-       cp_finish_decomp): Likewise.
-       * typeck2.c (process_init_constructor_record): Likewise.
-
-2018-02-02  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84181 - ICE with lambda parm in template argument.
-       * tree.c (strip_typedefs_expr): Use cp_tree_operand_length.
-
-2018-02-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84160 - ICE with nested variadic capture.
-       * lambda.c (is_capture_proxy_with_ref): New.
-       (insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a
-       COMPONENT_REF.
-       * expr.c (mark_use): Use is_capture_proxy_with_ref.
-       * constexpr.c (potential_constant_expression_1): Likewise.
-       * semantics.c (process_outer_var_ref): Likewise.
-
-2018-02-01  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84125
-       * typeck.c (build_address): Relax the assert when
-       processing_template_decl.
-
-2018-02-01  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84126 - ICE with variadic generic lambda
-       PR c++/84036
-       PR c++/82249
-       * pt.c (tsubst_pack_expansion): Handle function parameter_packs in
-       PACK_EXPANSION_EXTRA_ARGS.
-
-2018-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/83796
-       * call.c (convert_like_real): If w're initializing from {} explicitly
-       call abstract_virtuals_error_sfinae.
-
-2018-01-31  Jason Merrill  <jason@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83993
-       * constexpr.c (cxx_eval_outermost_constant_expr): Build NOP_EXPR
-       around non-constant ADDR_EXPRs rather than clearing TREE_CONSTANT
-       on ADDR_EXPR.
-
-2018-01-31  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83993
-       * constexpr.c (diag_array_subscript): Emit different diagnostics
-       if TYPE_DOMAIN (arraytype) is NULL.
-       (cxx_eval_array_reference, cxx_eval_store_expression): For arrays
-       with NULL TYPE_DOMAIN use size_zero_node as nelts.
-
-2018-01-31  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/84092
-       * semantics.c (finish_qualified_id_expr): When handling an
-       UNBOUND_CLASS_TEMPLATE only adjust qualifying_class and expr.
-
-2018-01-31  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/84138
-       * cp-gimplify.c (cp_fold): Check if X is an error node before
-       calling useless_type_conversion_p.
-
-2018-01-30  Jason Merrill  <jason@redhat.com>
-
-       PR c++/84091 - ICE with local class in lambda in template.
-       * decl2.c (determine_visibility): Look for outer containing template
-       instantiation.
-
-       PR c++/84098 - ICE with lambda in template NSDMI.
-       * pt.c (instantiate_class_template_1): Ignore more lambdas.
-
-2018-01-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/68810 - wrong location for reinterpret_cast error.
-       * cvt.c (cp_convert_to_pointer): Always build a CONVERT_EXPR when
-       !dofold.
-
-2018-01-29  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/83996
-       * constexpr.c (cxx_fold_indirect_ref): Compute ((foo *)&fooarray)[1]
-       => fooarray[1] in offset_int.
-
-2018-01-29  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83942 - wrong unused warning with static_cast.
-       * cvt.c (ocp_convert): Call mark_rvalue_use.
-
-2018-01-26  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83956 - wrong dtor error with anonymous union
-       * method.c (walk_field_subobs): Variant members only affect
-       deletedness.
-       (maybe_explain_implicit_delete): Pass &deleted_p for diagnostic.
-
-       PR c++/84036 - ICE with variadic capture.
-       PR c++/82249
-       * pt.c (tsubst_pack_expansion): When optimizing a simple
-       substitution, pull a single pack expansion out of its pack.
-
-       PR c++/82514 - ICE with local class in generic lambda.
-       * pt.c (regenerated_lambda_fn_p): Remove.
-       (enclosing_instantiation_of): Don't use it.
-       (tsubst_function_decl): Call enclosing_instantiation_of.
-
-       * pt.c (lookup_template_class_1): Add sanity check.
-       * name-lookup.c (do_pushtag): Don't add closures to local_classes.
-
-2018-01-25  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/84031
-       * decl.c (find_decomp_class_base): Ignore unnamed bitfields.  Ignore
-       recursive calls that return ret.
-       (cp_finish_decomp): Ignore unnamed bitfields.
-
-2018-01-23  Jason Merrill  <jason@redhat.com>
-
-       PR c++/82249 - wrong mismatched pack length error.
-       * pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle
-       unsubstituted function parameter pack.
-
-2018-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/83921
-       * decl.c (check_for_uninitialized_const_var): Not static; add
-       bool and tsubst_flags_t parameters; adjust to be used both in
-       constexpr context and not.
-       * constexpr.c (potential_constant_expression_1): Use the above.
-       * cp-tree.h (check_for_uninitialized_const_var): Declare.
-
-2018-01-23  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83947 - ICE with auto declarations.
-       * pt.c (do_auto_deduction): Don't deduce from an auto decl.
-       * decl.c (undeduced_auto_decl): Limit to vars and fns.
-
-2018-01-23  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/83974
-       * pt.c (tsubst_copy_and_build) <CONSTRUCTOR>: Remove early bailout
-       for pointer to member function types.
-
-2018-01-23  Jakub Jelinek  <jakub@redhat.com>
-
-       PR sanitizer/83987
-       * tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of
-       DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node.
-
-2018-01-23  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/83988
-       * pt.c (tsubst_baselink): Remove optype assert.
-       * ptree.c (cxx_print_xnode): <case BASELINK> Print BASELINK_OPTYPE.
-
-2018-01-23  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83958
-       * decl.c (cp_finish_decomp): Diagnose if reference structure binding
-       refers to incomplete type.
-
-2018-01-23  Nathan Sidwell  <nathan@acm.org>
-
-       Deprecate ARM-era for scope handling
-       * decl.c (poplevel): Flag_new_for_scope is a boolean-like.
-       (cxx_init_decl_processing): Deprecate flag_new_for_scope being
-       cleared.
-       * name-lookup.c (check_for_out_of_scope_variable): Deprecate and
-       cleanup handling.
-       * semantics.c (begin_for_scope): Flag_new_for_scope is
-       boolean-like.
-       (finish_for_stmt, begin_range_for_stmt): Likewise.
-
-2018-01-22  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83720
-       * decl2.c (determine_visibility): Fix template_decl handling
-       instead of blocking it.
-
-       PR c++/83720 - ICE with lambda and LTO.
-       * decl2.c (determine_visibility): Clear template_decl for
-       function-scope decls.  Propagate anonymous linkage from containing
-       function.
-
-2018-01-22  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/81933
-       * typeck2.c (split_nonconstant_init_1): Return false if we didn't
-       split out anything.
-
-2018-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
-
-       PR c++/83895
-       * decl.c (grokdeclarator): Don't diagnose extra parens
-       on typedefs.
-
-2018-01-19  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/81167
-       * call.c (joust): Use TREE_TYPE (source) if source is
-       a POINTER_TYPE_P rather than if ! DECL_CONSTRUCTOR_P (w->fn).
-
-       PR c++/83919
-       * typeck.c (convert_for_assignment): Suppress warn_ignored_qualifiers
-       for direct enum init.
-       * decl.c (reshape_init): Likewise.
-
-2018-01-19  Marek Polacek  <polacek@redhat.com>
-
-       * constexpr.c (fold_simple): Simplify.
-
-2018-01-18  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83714
-       * search.c (any_dependent_bases_p): Handle null TREE_BINFO.
-       * pt.c (instantiation_dependent_scope_ref_p): True if
-       any_dependent_bases_p.
-
-2018-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * cp-tree.h: Fix comment typo (DECL_NON_TRIVIALLY_INITIALIZED_P
-       vs DECL_NONTRIVIALLY_INITIALIZED_P).
-
-2018-01-18  Jason Merrill  <jason@redhat.com>
-
-       PR c++/82461 - constexpr list-initialized member
-       * constexpr.c (potential_constant_expression_1): Check
-       TARGET_EXPR_DIRECT_INIT_P.
-
-2018-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/81013
-       * decl.c (xref_basetypes): Early return upon error about derived
-       union.
-
-2018-01-18  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/83160
-       * cp-tree.h (mark_use): Declare.
-       * expr.c (mark_use): Make extern.
-       * call.c (direct_reference_binding): Set inner conv's
-       rvaluedness_matches_p, if it is an identity.
-       (convert_like_real): Mark lvalue or rvalue use for identity as
-       rvaledness_matches_p demands.
-
-2018-01-18  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83824
-       * parser.c (attr_chainon): New function.
-       (cp_parser_label_for_labeled_statement, cp_parser_decl_specifier_seq,
-       cp_parser_namespace_definition, cp_parser_init_declarator,
-       cp_parser_type_specifier_seq, cp_parser_parameter_declaration,
-       cp_parser_gnu_attributes_opt): Use it.
-       (cp_parser_member_declaration, cp_parser_objc_class_ivars,
-       cp_parser_objc_struct_declaration): Likewise.  Don't reset
-       prefix_attributes if attributes is error_mark_node.
-
-2018-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/78344
-       * decl.c (grokdeclarator): Do not append the error_mark_node
-       due to an erroneous optional attribute-specifier-seq.
-
-2018-01-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83897
-       * cp-gimplify.c (cp_maybe_instrument_return): Handle
-       CLEANUP_POINT_EXPR.
-
-2018-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/81054
-       * constexpr.c (ensure_literal_type_for_constexpr_object): Return
-       error_mark_node when we give an error.
-       * decl.c (cp_finish_decl): Use the latter.
-
-2018-01-17  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/83287
-       * init.c (build_raw_new_expr): Scan list for lookups to keep.
-
-2018-01-17  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/83814
-       * expr.c (fold_for_warn): Move from c-common.c, reducing to just
-       the C++ part.  If processing a template, call
-       fold_non_dependent_expr rather than fully folding.
-
-2018-01-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/81067 - redundant NULL warning.
-       * call.c (convert_like_real): Restore null_node handling.
-
-2018-01-17  Jason Merrill  <jason@redhat.com>
-
-       PR c++/81843 - ICE with variadic member template.
-       PR c++/72801
-       * pt.c (unify_pack_expansion): Don't try to deduce enclosing
-       template args.
-
-2018-01-17  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/83799
-       * pt.c (type_dependent_expression_p): Strip any location wrapper
-       before testing tree codes.
-       (selftest::test_type_dependent_expression_p): New function.
-       (selftest::cp_pt_c_tests): Call it.
-
-2018-01-17  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/83739
-       * pt.c (tsubst_expr) <case RANGE_FOR_STMT>: Rebuild a range_for if
-       this not a final instantiation.
-
-2018-01-16  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83714 - ICE checking return in template.
-       * typeck.c (check_return_expr): Call build_non_dependent_expr.
-
-2018-01-16  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83817
-       * pt.c (tsubst_copy_and_build) <case CALL_EXPR>: If function
-       is AGGR_INIT_EXPR rather than CALL_EXPR, set AGGR_INIT_FROM_THUNK_P
-       instead of CALL_FROM_THUNK_P.
-
-       PR c++/83825
-       * name-lookup.c (member_vec_dedup): Return early if len is 0.
-       (resort_type_member_vec, set_class_bindings,
-       insert_late_enum_def_bindings): Use vec qsort method instead of
-       calling qsort directly.
-
-2018-01-15  Martin Sebor  <msebor@redhat.com>
-
-       PR c++/83588
-       * class.c (find_flexarrays): Make a record of multiple flexible array
-       members.
-
-2018-01-12  Jason Merrill  <jason@redhat.com>
-
-       PR c++/83186 - ICE with static_cast of list-initialized temporary.
-       * typeck.c (build_static_cast): Use build_non_dependent_expr.
-
-2018-01-12  Nathan Sidwell  <nathan@acm.org>
-
-       * cp-tree.h (mark_rvalue_use): Add parm name.
-       * expr.c (mark_lvalue_use, mark_lvalue_use_nonread): Move next to
-       mark_rvalue_use.
-       * call.c (convert_like_real): Fix formatting.
-
-2018-01-11  Jason Merrill  <jason@redhat.com>
-
-       PR c++/82728 - wrong -Wunused-but-set-variable
-       PR c++/82799
-       PR c++/83690
-       * call.c (perform_implicit_conversion_flags): Call mark_rvalue_use.
-       * decl.c (case_conversion): Likewise.
-       * semantics.c (finish_static_assert): Call
-       perform_implicit_conversion_flags.
-
-2018-01-11  Nathan Sidwell  <nathan@acm.org>
-
-       * method.c (enum mangling_flags): Delete long-dead enum.
-
-2018-01-10  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       * parser.c (cp_parser_std_attribute_spec): When
-       token_pair::require_open / require_close return false simply
-       return error_mark_node, avoid duplicate cp_parser_error about
-       expected '(' / ')', respectively.
-
-2018-01-10  David Malcolm  <dmalcolm@redhat.com>
-
-       PR c++/43486
-       * call.c (null_ptr_cst_p): Strip location wrappers when
-       converting from '0' to a pointer type in C++11 onwards.
-       (conversion_null_warnings): Replace comparison with null_node with
-       call to null_node_p.
-       (build_over_call): Likewise.
-       * cp-gimplify.c (cp_fold): Remove the early bailout when
-       processing_template_decl.
-       * cp-lang.c (selftest::run_cp_tests): Call
-       selftest::cp_pt_c_tests and selftest::cp_tree_c_tests.
-       * cp-tree.h (cp_expr::maybe_add_location_wrapper): New method.
-       (selftest::run_cp_tests): Move decl to bottom of file.
-       (null_node_p): New inline function.
-       (selftest::cp_pt_c_tests): New decl.
-       (selftest::cp_tree_c_tests): New decl.
-       * cvt.c (build_expr_type_conversion): Replace comparison with
-       null_node with call to null_node_p.
-       * error.c (args_to_string): Likewise.
-       * except.c (build_throw): Likewise.
-       * mangle.c (write_expression): Skip location wrapper nodes.
-       * parser.c (literal_integer_zerop): New function.
-       (cp_parser_postfix_expression): Call maybe_add_location_wrapper on
-       the result for RID_TYPEID. Pass true for new "wrap_locations_p"
-       param of cp_parser_parenthesized_expression_list.  When calling
-       warn_for_memset, replace integer_zerop calls with
-       literal_integer_zerop, eliminating the double logical negation
-       cast to bool.  Eliminate the special-casing for CONST_DECL in
-       favor of the fold_for_warn within warn_for_memset.
-       (cp_parser_parenthesized_expression_list): Add "wrap_locations_p"
-       param, defaulting to false.  Convert "expr" to a cp_expr, and call
-       maybe_add_location_wrapper on it when wrap_locations_p is true.
-       (cp_parser_unary_expression): Call maybe_add_location_wrapper on
-       the result for RID_ALIGNOF and RID_SIZEOF.
-       (cp_parser_builtin_offsetof): Likewise.
-       * pt.c: Include "selftest.h".
-       (tsubst_copy): Handle location wrappers.
-       (tsubst_copy_and_build): Likewise.
-       (build_non_dependent_expr): Likewise.
-       (selftest::test_build_non_dependent_expr): New function.
-       (selftest::cp_pt_c_tests): New function.
-       * tree.c: Include "selftest.h".
-       (lvalue_kind): Handle VIEW_CONVERT_EXPR location wrapper nodes.
-       (selftest::test_lvalue_kind): New function.
-       (selftest::cp_tree_c_tests): New function.
-       * typeck.c (string_conv_p): Strip any location wrapper from "exp".
-       (cp_build_binary_op): Replace comparison with null_node with call
-       to null_node_p.
-       (build_address): Use location of operand when building address
-       expression.
-
-2018-01-10  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/82541
-       * call.c (build_conditional_expr_1): Check complain before warning.
-       * pt.c (tsubst_copy_and_build) <case COND_EXPR>: Suppress
-       -Wduplicated-branches.
-
-2018-01-10  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/81327
-       * call.c (maybe_warn_class_memaccess): Add forward declaration.
-       Change last argument from tree * to const vec<tree, va_gc> *, adjust
-       args uses and check number of operands too.  Don't strip away any
-       nops.  Use maybe_constant_value when looking for INTEGER_CST args.
-       Deal with src argument not having pointer type.  Check
-       tree_fits_uhwi_p before calling tree_to_uhwi.  Remove useless
-       test.
-       (build_over_call): Call maybe_warn_class_memaccess here on the
-       original arguments.
-       (build_cxx_call): Rather than here on converted arguments.
-
-2018-01-10  Paolo Carlini  <paolo.carlini@oracle.com>
-
-       PR c++/81055
-       * init.c (build_vec_init): Avoid building an INIT_EXPR with
-       error_mark_node as second argument.
-
-2018-01-09  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83734
-       * constexpr.c (cxx_eval_statement_list): Ignore DEBUG_BEGIN_STMTs
-       in STATEMENT_LIST.  Remove unneeded assert.
-
-2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
-           Alan Hayward  <alan.hayward@arm.com>
-           David Sherwood  <david.sherwood@arm.com>
-
-       * constexpr.c (cxx_eval_array_reference): Handle polynomial
-       VECTOR_CST_NELTS.
-       (cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS.
-       * call.c (build_conditional_expr_1): Likewise.
-       * decl.c (cp_finish_decomp): Likewise.
-       * mangle.c (write_type): Likewise.
-       * typeck.c (structural_comptypes): Likewise.
-       (cp_build_binary_op): Likewise.
-       * typeck2.c (process_init_constructor_array): Likewise.
-
-2018-01-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83555
-       * typeck.c (build_static_cast_1): For static casts to reference types,
-       call build_base_path with flag_delete_null_pointer_checks as nonnull
-       instead of always false.  When -fsanitize=null, call
-       ubsan_maybe_instrument_reference on the NULL reference INTEGER_CST.
-       * cp-gimplify.c (cp_genericize_r): Don't walk subtrees of UBSAN_NULL
-       call if the first argument is INTEGER_CST with REFERENCE_TYPE.
-
-2018-01-03  Nathan Sidwell  <nathan@acm.org>
-
-       PR c++/83667
-       * method.c (make_alias_for): Copy DECL_CONTEXT.
-
-2018-01-03  Marek Polacek  <polacek@redhat.com>
-
-       PR c++/83592
-       * decl.c (grokdeclarator): Don't warn about MVP in typename context.
-
-2018-01-03  Jakub Jelinek  <jakub@redhat.com>
-
-       PR preprocessor/83602
-       * name-lookup.c (lookup_name_fuzzy): Don't use macro_use_before_def
-       for builtin macros.
-
-       PR c++/83634
-       * cp-gimplify.c (cp_fold) <case NOP_EXPR>: If the operand folds to
-       error_mark_node, return error_mark_node.
+2019-01-01  Jakub Jelinek  <jakub@redhat.com>
 
        Update copyright years.
-
-2018-01-02  Jakub Jelinek  <jakub@redhat.com>
-
-       PR c++/83556
-       * tree.c (replace_placeholders_r): Pass NULL as last argument to
-       cp_walk_tree instead of d->pset.  If non-TREE_CONSTANT and
-       non-PLACEHOLDER_EXPR tree has been seen already, set *walk_subtrees
-       to false and return.
-       (replace_placeholders): Pass NULL instead of &pset as last argument
-       to cp_walk_tree.
-
-2018-01-02  Nathan Sidwell  <nathan@acm.org>
-
-       * constexpr.c (cxx_bind_parameters_in_call): Remove unneeded local
-       lval var.
 \f
-Copyright (C) 2018 Free Software Foundation, Inc.
+Copyright (C) 2019 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright