]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/cp/ChangeLog
[PR c++/90754] name lookup ICE
[thirdparty/gcc.git] / gcc / cp / ChangeLog
index 11fc9de29b05c311da08d5354bd11acf381b82fb..4e6d62627ec873697740fa0bd43e2c9b3ab16715 100644 (file)
@@ -1,3 +1,722 @@
+2019-06-17  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/90754
+       * name-lookup.c (lookup_type_scope_1): Calll qualify_lookup before
+       checking context.
+
+2019-06-14  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/90884 - stray note with -Wctor-dtor-privacy.
+       * class.c (maybe_warn_about_overly_private_class): Guard the call to
+       inform.
+
+2019-06-12  Jason Merrill  <jason@redhat.com>
+
+       PR c++/85552 - wrong instantiation of dtor for DMI.
+       * typeck2.c (digest_nsdmi_init): Set tf_no_cleanup for direct-init.
+
+2019-06-13  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokdeclarator): Use id_loc in five additional places
+       in the last part of the function.
+
+2019-06-13  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokdeclarator): Move further up the declaration of
+       id_loc, use it immediately, update its value after the loop
+       over declarator, use it again in the final part of function;
+       improve locations of error messages about multiple data types
+       and conflicting specifiers.
+
+2019-06-13  Richard Biener  <rguenther@suse.de>
+
+       PR c++/90801
+       * typeck2.c (split_nonconstant_init_1): Properly count
+       num_split_elts, optimize single constructor elt removal.
+
+2019-06-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/66999 - 'this' captured by reference.
+       * parser.c (cp_parser_lambda_introducer): Reject `&this'.  Use
+       cp_lexer_nth_token_is instead of cp_lexer_peek_nth_token.
+
+       PR c++/90825 - endless recursion when evaluating sizeof.
+       PR c++/90832 - endless recursion when evaluating sizeof.
+       * constexpr.c (cxx_eval_constant_expression): Don't recurse on the
+       result of fold_sizeof_expr if is returns a SIZEOF_EXPR.
+       * typeck.c (cxx_sizeof_expr): Only return a SIZEOF_EXPR if the operand
+       is instantiation-dependent.
+
+       PR c++/90736 - bogus error with alignof.
+       * constexpr.c (adjust_temp_type): Use cv_unqualified type.
+
+2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>
+
+       PR c++/90449 - add -Winaccessible-base option.
+       * class.c (warn_about_ambiguous_bases): Changed name to:
+       maybe_warn_about_inaccessible_bases.
+       (maybe_warn_about_inaccessible_bases):  Implemented new
+       Winaccessible-base warning option for both direct and virtual
+       base warnings.
+       (layout_class_type): Call to warn_about_ambiguous_bases changed to fit
+       new name.
+
+2019-06-11  Richard Biener  <rguenther@suse.de>
+
+       PR c++/90801
+       * typeck2.c (split_nonconstant_init_1): Avoid ordered remove
+       from CONSTRUCTOR by marking to remove elements and doing all
+       of them in a O(n) scan.
+
+2019-06-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/90810
+       * init.c (constant_value_1): Handle VECTOR_CST DECL_INITIAL for
+       !DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P decls like CONSTRUCTOR.
+
+2019-06-11  Martin Liska  <mliska@suse.cz>
+
+       PR c++/87847
+       * pt.c (init_template_processing): Disable hash table
+       sanitization for decl_specializations and type_specializations.
+
+2019-06-10  Jason Merrill  <jason@redhat.com>
+
+       * constexpr.c (free_constructor): New.
+       (cxx_eval_call_expression): Free parameter value CONSTRUCTORs.
+
+       * constexpr.c (unshare_constructor): Only unshare if T is itself a
+       CONSTRUCTOR.
+       (cxx_eval_call_expression): Don't call it on the result here.
+
+       Reduce constexpr_call memory consumption.
+       * constexpr.c (cxx_bind_parameters_in_call): Use TREE_VEC rather
+       than TREE_LIST.
+       (constexpr_call_hasher::equal, cxx_bind_parameters_in_call)
+       (cxx_eval_call_expression): Adjust.
+
+2019-06-10  Jakub Jelinek  <jakub@redhat.com>
+
+       * parser.c (cp_parser_omp_clause_reduction): Don't sorry_at on inscan
+       reductions.
+       (cp_parser_omp_scan_loop_body): New function.
+       (cp_parser_omp_for_loop): Call cp_parser_omp_scan_loop_body if there
+       are inscan reduction clauses.
+       (cp_parser_pragma): Reject PRAGMA_OMP_SCAN.
+       * semantics.c (finish_omp_clauses): Reject mixing inscan with
+       non-inscan reductions on the same construct, or inscan reductions with
+       ordered or schedule clauses, or inscan array reductions.
+       * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
+       (tsubst_expr): Handle OMP_SCAN.
+
+2019-06-07  Jason Merrill  <jason@redhat.com>
+
+       * constexpr.c (cxx_eval_constant_expression): Call
+       STRIP_ANY_LOCATION_WRAPPER early.
+       [CONVERT_EXPR]: Don't build anything for conversion to void.
+       [ADDR_EXPR]: ggc_free unused ADDR_EXPR.
+
+2019-06-05  Martin Sebor  <msebor@redhat.com>
+
+       PR c/90737
+       * typeck.c (maybe_warn_about_returning_address_of_local): Only
+       consider functions returning pointers as candidates for
+       -Wreturn-local-addr.
+
+2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (smallest_type_location): New.
+       (check_special_function_return_type): Use it.
+       (grokdeclarator): Lkewise.
+
+2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokdeclarator): Use locations[ds_friend]
+       in one place.
+
+2019-06-05  Martin Sebor  <msebor@redhat.com>
+
+       * call.c (build_conditional_expr_1): Adjust quoting and hyphenation.
+       (convert_like_real): Same.
+       (convert_arg_to_ellipsis): Same.
+       * constexpr.c (diag_array_subscript): Same.
+       * constraint.cc (diagnose_trait_expression): Same.
+       * cvt.c (ocp_convert): Same.
+       * decl.c (start_decl): Same.
+       (check_for_uninitialized_const_var): Same.
+       (grokfndecl): Same.
+       (check_special_function_return_type): Same.
+       (finish_enum_value_list): Same.
+       (start_preparsed_function): Same.
+       * parser.c (cp_parser_decl_specifier_seq): Same.
+       * typeck.c (cp_build_binary_op): Same.
+       (build_static_cast_1): Same.
+
+2019-06-04  Nina Dinka Ranns  <dinka.ranns@gmail.com>
+
+       PR c++/63149 - Wrong auto deduction from braced-init-list.
+       * pt.c (listify_autos): use non cv qualified auto_node in
+       std::initializer_list<auto>.
+
+2019-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokdeclarator): Use declarator->id_loc in two
+       additional places.
+
+2019-06-04  Nathan Sidwell  <nathan@acm.org>
+
+       * name-lookup.c (lookup_type_scope_1): Reimplement, handle local
+       and namespace scopes separately.
+
+2019-06-04  Harald van Dijk  <harald@gigawatt.nl>
+
+       PR c++/60531 - Wrong error about unresolved overloaded function
+       * typeck.c (cp_build_binary_op): See if overload can be resolved.
+       (cp_build_unary_op): Ditto.
+
+2019-06-04  Jason Merrill  <jason@redhat.com>
+
+       Reduce accumulated garbage in constexpr evaluation.
+       * constexpr.c (cxx_eval_call_expression): ggc_free any bindings we
+       don't save.
+       (cxx_eval_increment_expression): ggc_free the MODIFY_EXPR after
+       evaluating it.
+
+2019-06-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * cp-tree.h (CP_OMP_CLAUSE_INFO): Allow for any clauses up to _condvar_
+       instead of only up to linear.
+
+2019-06-03  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * parser.c (cp_parser_unqualified_id): Use build_min_nt_loc in
+       five places.
+
+2019-06-01  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       PR c++/85254
+       * class.c (fixup_type_variants): Handle CLASSTYPE_FINAL.
+
+2019-05-31  Nathan Sidwell  <nathan@acm.org>
+
+       * cp-tree.h (IDENTIFIER_LAMBDA_P): New.
+       (TYPE_ANON_P): New.
+       (LAMBDA_TYPE_P, TYPE_UNNAMED_P):  Likewise.
+       (LAMBDANAME_PREFIX, LAMBDANAME_FORMAT): Delete.
+       (make_lambda_name): Don't declare.
+       * error.c (dump_aggr_type): Check for lambdas before other
+       anonymous names.
+       * lambda.c (begin_lambda_type): Use make_anon_name.
+       * cp-lang.c (cxx_dwarf_name): Lambda names smell anonymous.
+       * mangle.c (write_local_name): Likewise.
+       * name-lookup.c (lambda_cnt, make_lambda_name): Delete.
+
+2019-05-30  Marek Polacek  <polacek@redhat.com>
+
+       * cp-tree.h (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Fix a typo.
+
+2019-05-31  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokdeclarator): Use declarator->id_loc in five
+       error_at calls.
+
+2019-05-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/90598
+       * tree.c (lvalue_kind): Return clk_none for expressions with
+       with VOID_TYPE_P.
+
+2019-05-29  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/89875
+       * parser.c (cp_parser_sizeof_operand): When the type-id production
+       did not work out commit to the tentative parse.
+
+2019-05-29  Jakub Jelinek  <jakub@redhat.com>
+
+       P1091R3 - Extending structured bindings to be more like var decls
+       P1381R1 - Reference capture of structured bindings
+       * decl.c (cp_maybe_mangle_decomp): Handle TREE_STATIC decls even at
+       function scope.
+       (cp_finish_decomp): Copy over various decl properties from decl to
+       v[i] in the tuple case.
+       (grokdeclarator): Allow static, thread_local and __thread for C++2a
+       and use pedwarn instead of error for older standard revisions.
+       Make other structured binding diagnostic messages more i18n friendly.
+
+2019-05-28  Nathan Sidwell  <nathan@acm.org>
+
+       * decl.c (duplicate_decls): Assert a template newdecl has no
+       specializations.
+
+2019-05-28  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/90548 - ICE with generic lambda and empty pack.
+       * pt.c (tsubst_copy_and_build): Handle pack expansion properly.
+
+2019-05-28  Nathan Sidwell  <nathan@acm.org>
+
+       * cp-tree.h (make_anon_name): Drop declaration.
+       (TYPE_UNNAMED_P): Use IDENTIFIER_ANON_P.
+       * cp-lang.c (cxx_dwarf_name): Likewise.
+       * class.c (find_flexarrays): Likewise.
+       * decl.c (name_unnamed_type, xref_tag_1): Likewise.
+       * error.c (dump_aggr_type): Likewise.
+       * pt.c (push_template_decl_real): Likewise.
+       * name-lookup.c (consider_binding_level): Likewise.
+       (anon_cnt, make_anon_name): Delete.
+
+2019-05-25  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/90572 - wrong disambiguation in friend declaration.
+       * parser.c (cp_parser_constructor_declarator_p): Don't allow missing
+       typename for friend declarations.
+
+2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+
+       * cp-tree.h (CP_AGGREGATE_TYPE_P): Fix whitespace.
+
+       * init.c (std_placement_new_fn_p): Remove outdated TODO comment that
+       was resolved by r254694.
+
+2019-05-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/20408 - unnecessary code for empty struct.
+       * call.c (build_call_a): Use simple_empty_class_p.
+
+       PR c++/86485 - -Wmaybe-unused with empty class ?:
+       * cp-gimplify.c (simple_empty_class_p): Also true for MODIFY_EXPR.
+
+2019-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * parser.c (cp_parser_template_declaration_after_parameters): Use
+       DECL_SOURCE_LOCATION in literal operator template errors.
+
+2019-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/67184
+       PR c++/69445
+       * call.c (build_over_call): Devirtualize when the final overrider
+       comes from the base.
+
+2019-05-21  Nathan Sidwell  <nathan@acm.org>
+
+       * name-lookup.c (do_nonmember_using_decl): Drop INSERT_P
+       parameter.  Document.
+       (finish_nonmember_using_decl): Adjust do_nonmember_using_decl
+       calls.  Remove stray FIXME comment.
+
+       * name-lookup.h (struct cp_binding_level): Drop usings field.
+       (finish_namespace_using_decl, finish_local_using_decl): Replace with ...
+       (finish_nonmember_using_decl): ... this.
+       * name-lookup.c (push_using_decl_1, push_using_decl):
+       (do_nonmember_using_decl): ... here.  Add INSERT_P arg.  Reimplement.
+       (validate_nonmember_using_decl, finish_namespace_using_decl)
+       (finish_local_using_decl): Replace with ...
+       (finish_nonmember_using_decl): ... this.  Drop DECL parm.
+       * parser.c (cp_parser_using_declaration): Don't do lookup here.
+       * pt.c (tsubst_expr): Do not do using decl lookup here.
+
+2019-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * decl2.c (cpp_check) <IS_ASSIGNMENT_OPERATOR>: New case.
+
+2019-05-20  Marek Polacek  <polacek@redhat.com>
+
+       CWG 2094 - volatile scalars are trivially copyable.
+       PR c++/85679
+       * tree.c (trivially_copyable_p): Don't check CP_TYPE_VOLATILE_P for
+       scalar types.
+
+2019-05-20  Marek Polacek  <polacek@redhat.com>
+
+       * pt.c (convert_template_argument): Add a diagnostic for the
+       [temp.arg]/2 ambiguity case.
+
+       * name-lookup.c (finish_using_directive): Don't issue inform() if the
+       warning didn't trigger.  Add quoting.  Tweak the inform message.
+
+2019-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * cp-tree.h: Remove remnants of CONV_NONCONVERTING.
+
+2019-05-20  Nathan Sidwell  <nathan@acm.org>
+
+       * name-lookup.c (finish_namespace_using_directive)
+       (finish_local_using_directive): Merge to ...
+       (finish_using_directive): ... here.  Handle both contexts.
+       * name-lookup.h (finish_namespace_using_directive)
+       (finish_local_using_directive): Replace with ...
+       (finish_using_directive): ... this.
+       * parser.c (cp_parser_using_directive): Adjust.
+       * pt.c (tsubst_expr): Likewise.
+
+       * cp-tree.h (struct lang_decl_ns): Remove usings field.
+       (DECL_NAMESPACE_USING): Delete.
+       * name-lookup.c (name_lookup::search_usings): Use namespace's
+       binding scope.
+       (name_lookup::queue_namespae): Likewise.
+       (finish_namespace_using_directive, push_namespace): Likewise.
+       (has_using_namespace_std_directive): Just search the entire
+       binding stack.
+
+2019-05-20  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR c++/90532 Ensure __is_constructible(T[]) is false
+       * method.c (is_xible_helper): Return error_mark_node for construction
+       of an array of unknown bound.
+
+2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR c++/89433
+       * parser.c (cp_finalize_oacc_routine): Rework checking if already
+       marked with an OpenACC 'routine' directive.
+
+       PR c++/89433
+       * parser.c (cp_parser_oacc_routine)
+       (cp_parser_late_parsing_oacc_routine): Normalize order of clauses.
+       (cp_finalize_oacc_routine): Call oacc_verify_routine_clauses.
+
+       PR c++/89433
+       * parser.c (cp_finalize_oacc_routine): Refer to OpenACC 'routine'
+       clauses from "omp declare target" attribute.
+
+2019-05-16  Martin Sebor  <msebor@redhat.com>
+
+        * call.c (print_z_candidate): Wrap diagnostic text in a gettext
+        macro.  Adjust.
+        (print_z_candidates): Same.
+        (build_conditional_expr_1): Quote keywords, operators, and types
+        in diagnostics.
+        (build_op_delete_call): Same.
+        (maybe_print_user_conv_context): Wrap diagnostic text in a gettext
+        macro.
+        (convert_like_real): Same.
+        (convert_arg_to_ellipsis): Quote keywords, operators, and types
+        in diagnostics.
+        (build_over_call): Same.
+        (joust): Break up an overlong line.  Wrap diagnostic text in a gettext
+        macro.
+        * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English.
+        (cxx_eval_constant_expression): Quote keywords, operators, and types
+        in diagnostics.
+        (potential_constant_expression_1): Same.
+        * cp-gimplify.c (cp_genericize_r): Same.
+        * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types
+        in diagnostics.
+        (type_promotes_to): Same.
+        * decl.c (check_previous_goto_1): Same.
+        (check_goto): Same.
+        (start_decl): Same.
+        (cp_finish_decl): Avoid parenthesizing a sentence for consistency.
+        (grok_op_properties): Quote keywords, operators, and types
+        in diagnostics.
+        * decl2.c (grokfield): Same.
+        (coerce_delete_type): Same.
+        * except.c (is_admissible_throw_operand_or_catch_parameter): Same.
+        * friend.c (do_friend): Quote C++ tokens.
+        * init.c (build_new_1): Quote keywords, operators, and types
+        in diagnostics.
+        (build_vec_delete_1): Same.
+        (build_delete): Same.
+        * lex.c (parse_strconst_pragma): Same.
+        (handle_pragma_implementation): Same.
+        (unqualified_fn_lookup_error): Same.
+        * mangle.c (write_type): Same.
+        * method.c (defaulted_late_check): Avoid two consecutive punctuators.
+        * name-lookup.c (cp_binding_level_debug): Remove a trailing newline.
+        (pop_everything): Same.
+        * parser.c (cp_lexer_start_debugging): Quote a macro name.
+        in a diagnostic
+        (cp_lexer_stop_debugging): Same.
+        (cp_parser_userdef_numeric_literal): Quote a C++ header name
+        in a diagnostic.
+        (cp_parser_nested_name_specifier_opt): Quote keywords, operators,
+        and types in diagnostics.
+        (cp_parser_question_colon_clause): Same.
+        (cp_parser_asm_definition): Same.
+        (cp_parser_init_declarator): Same.
+        (cp_parser_template_declaration_after_parameters): Avoid capitalizing
+        a sentence in a diagnostic.
+        (cp_parser_omp_declare_reduction): Quote keywords, operators, and types
+        in diagnostics.
+        (cp_parser_transaction): Same.
+        * pt.c (maybe_process_partial_specialization): Replace second call
+        to permerror with inform for consistency with other uses.
+        (expand_integer_pack): Quote keywords, operators, and types
+        in diagnostics.
+        * rtti.c (get_typeid): Quote keywords, operators, and types
+        in diagnostics.
+        (build_dynamic_cast_1): Same.
+        * semantics.c (finish_asm_stmt): Same.
+        (finish_label_decl): Same.
+        (finish_bases): Same.
+        (finish_offsetof): Same.
+        (cp_check_omp_declare_reduction): Same.
+        (finish_decltype_type): Same.
+        * tree.c (handle_init_priority_attribute): Same.  Add detail
+        to diagnostics.
+        (maybe_warn_zero_as_null_pointer_constant): Same.
+        * typeck.c (cp_build_binary_op): Quote keywords, operators, and types
+        in diagnostics.
+        (cp_build_unary_op): Same.
+        (check_for_casting_away_constness): Same.
+        (build_static_cast): Same.
+        (build_const_cast_1): Same.
+        (maybe_warn_about_returning_address_of_local): Same.
+        (check_return_expr): Same.
+        * typeck2.c (abstract_virtuals_error_sfinae): Same.
+        (digest_init_r): Replace a tab with spaces in a diagnostic.
+        (build_functional_cast): Quote keywords, operators, and types
+        in diagnostics.
+
+2019-05-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/90197
+       * cp-gimplify.c (genericize_cp_loop): Emit a DEBUG_BEGIN_STMT
+       before the condition (or if missing or constant non-zero at the end
+       of the loop.  Emit a DEBUG_BEGIN_STMT before the increment expression
+       if any.  Don't call protected_set_expr_location on incr if it already
+       has a location.
+
+2019-05-15  Marek Polacek  <polacek@redhat.com>
+
+       CWG 2096 - constraints on literal unions.
+       * class.c (check_field_decls): Initialize booleans directly.  A union
+       is literal if at least one of its non-static data members is of
+       non-volatile literal type.
+
+2019-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * cp-tree.h (REFERENCE_VLA_OK): Remove.
+       * lambda.c (build_capture_proxy): Remove use of the above.
+
+2019-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * call.c (perform_overload_resolution, build_new_method_call_1):
+       Use OVL_P; remove redundant TEMPLATE_DECL checks.
+       * decl.c (grokfndecl): Likewise.
+       * mangle.c (write_expression): Likewise.
+       * parser.c (cp_parser_template_id): Likewise.
+       * pt.c (resolve_overloaded_unification, type_dependent_expression_p):
+       Likewise.
+       * search.c (build_baselink): Likewise.
+       * tree.c (is_overloaded_fn, dependent_name, maybe_get_fns): Likewise.
+
+2019-05-14  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR preprocessor/90382
+       * decl.c (grokdeclarator): Fix value assigned to typespec_loc, use
+       min_location.
+
+2019-05-13  Jason Merrill  <jason@redhat.com>
+
+       Use releasing_vec more broadly.
+       * cp-tree.h (struct releasing_vec): Replace get_ref method with
+       operator&.
+       (vec_safe_push, vec_safe_reserve, vec_safe_length, vec_safe_splice):
+       Forwarding functions for releasing_vec.
+       (release_tree_vector): Declare but don't define.
+       * call.c (build_op_delete_call, build_temp, call_copy_ctor)
+       (perform_direct_initialization_if_possible): Use releasing_vec.
+       * constexpr.c (cxx_eval_vec_init_1, cxx_eval_store_expression):
+       Likewise.
+       * cp-gimplify.c (cp_fold): Likewise.
+       * cvt.c (force_rvalue, ocp_convert): Likewise.
+       * decl.c (get_tuple_decomp_init): Likewise.
+       * except.c (build_throw): Likewise.
+       * init.c (perform_member_init, expand_default_init): Likewise.
+       * method.c (do_build_copy_assign, locate_fn_flags): Likewise.
+       * parser.c (cp_parser_userdef_char_literal)
+       (cp_parser_userdef_numeric_literal)
+       (cp_parser_userdef_string_literal)
+       (cp_parser_perform_range_for_lookup)
+       (cp_parser_range_for_member_function, cp_parser_omp_for_loop)
+       (cp_parser_omp_for_loop_init): Likewise.
+       * pt.c (tsubst_copy_and_build, do_class_deduction): Likewise.
+       * semantics.c (calculate_direct_bases, calculate_bases)
+       (finish_omp_barrier, finish_omp_flush, finish_omp_taskwait)
+       (finish_omp_taskyield, finish_omp_cancel)
+       (finish_omp_cancellation_point): Likewise.
+       * tree.c (build_vec_init_elt, strip_typedefs, strip_typedefs_expr)
+       (build_min_non_dep_op_overload): Likewise.
+       * typeck.c (build_function_call_vec, cp_build_function_call_nary)
+       (cp_build_modify_expr): Likewise.
+       * typeck2.c (build_functional_cast): Likewise.
+
+2019-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * typeck.c (cp_build_function_call_vec): When mark_used fails
+       unconditionally return error_mark_node.
+
+2019-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokvardecl): Use an accurate location in error message
+       about main as a global variable.
+
+2019-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * call.c (build_call_a): Use FUNC_OR_METHOD_TYPE_P.
+       * cp-gimplify.c (cp_fold): Likewise.
+       * cp-objcp-common.c (cp_type_dwarf_attribute): Likewise.
+       * cp-tree.h (TYPE_OBJ_P, TYPE_PTROBV_P): Likewise.
+       * cvt.c (perform_qualification_conversions): Likewise.
+       * decl.c (grokdeclarator): Likewise.
+       * decl2.c (build_memfn_type): Likewise.
+       * mangle.c (canonicalize_for_substitution, write_type): Likewise.
+       * parser.c (cp_parser_omp_declare_reduction): Likewise.
+       * pt.c (check_explicit_specialization, uses_deducible_template_parms,
+       check_cv_quals_for_unify, dependent_type_p_r): Likewise.
+       * rtti.c (ptr_initializer): Likewise.
+       * semantics.c (finish_asm_stmt, finish_offsetof,
+       cp_check_omp_declare_reduction): Likewise.
+       * tree.c (cp_build_qualified_type_real,
+       cp_build_type_attribute_variant, cxx_type_hash_eq,
+       cxx_copy_lang_qualifiers, cp_free_lang_data): Likewise.
+       * typeck.c (structural_comptypes, convert_arguments,
+       cp_build_addr_expr_1, unary_complex_lvalue, cp_build_c_cast,
+       cp_build_modify_expr, comp_ptr_ttypes_real, type_memfn_rqual):
+       Likewise.
+
+2019-05-10  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/78010 - bogus -Wsuggest-override warning on final function.
+       * class.c (check_for_override): Don't warn for final functions.
+
+2019-05-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR pch/90326
+       * config-lang.in (gtfiles): Remove c-family/c-lex.c, add
+       c-family/c-cppbuiltin.c.
+
+2019-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/90382
+       Revert:
+       2018-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokdeclarator): Fix value assigned to typespec_loc, use
+       min_location.
+
+2019-05-08  Nathan Sidwell  <nathan@acm.org>
+
+       Kill DECL_SAVED_FUNCTION_DATA .
+       * cp-tree.h (language_function): Remove x_auto_return_pattern.
+       (current_function_auto_return_pattern): Delete.
+       (lang_decl_fn): Replace saved_language_function with
+       saved_auto_return type.
+       (DECL_SAVED_FUNCTION_DATA): Delete.
+       (DECL_SAVED_AUTO_RETURN_TYPE): New.
+       (FNDECL_USED_AUTO): Correct documentation.
+       * decl.c (duplicate_decls): Adjust AUTO return handling.
+       (start_preparsed_function): Replace
+       current_function_auto_return_pattern with
+       DECL_SAVED_AUTO_RETURN_TYPE.  Remove DECL_SAVED_FUNCTION_DATA
+       zapping.
+       (finish_function): Likewise.
+       (save_function_data): Delete.
+       (fndecl_declared_return_type): Reimplement.
+       * mangle.c (write_unqualified_name): Use DECL_SAVED_AUTO_RETURN_TYPE.
+       * method.c (make_thunk, make_alias_for): Likewise.
+       * parser.c (cp_parser_jump_statement): Likewise.
+       * pt.c (do_auto_deduction): Likewise.
+       * typeck.c (check_return_expr): Likewise.
+
+2019-05-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/90171 - reorganize usual_deallocation_fn_p
+       * call.c (struct dealloc_info): New.
+       (usual_deallocation_fn_p): Take a dealloc_info*.
+       (aligned_deallocation_fn_p, sized_deallocation_fn_p): Remove.
+       (build_op_delete_call): Adjust.
+
+2019-05-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/86485 - -Wmaybe-unused with empty class ?:
+       * typeck.c (build_static_cast_1): Use cp_build_addr_expr.
+
+       * pt.c (type_dependent_expression_p): A non-type template parm with
+       a placeholder type is type-dependent.
+
+2019-05-06  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/90265 - ICE with generic lambda.
+       * pt.c (tsubst_copy_and_build): Use a dedicated variable for the last
+       element in the vector.
+
+2019-05-03  Martin Liska  <mliska@suse.cz>
+
+       * call.c (build_aggr_conv): Use is_empty instead of
+       elements () == 0 (and similar usages).
+       * parser.c (cp_parser_lambda_introducer): Likewise.
+
+2019-05-02  Nathan Sidwell  <nathan@acm.org>
+
+       * semantics.c (finish_id_expression_1): Remove unreachable code.
+
+2019-05-01  Nathan Sidwell  <nathan@acm.org>
+
+       * name-lookup.h (get_class_binding_direct): Change final arg to
+       bool.
+       (get_class_binding): Likewise.
+       * name-lookup.c (get_class_binding_direct): Replace TYPE_OR_FNS
+       arg with WANT_TYPE bool.  Simplify.
+       (get_class_binding): Adjust final arg.
+       * decl.c (reshape_init_class): Adjust get_class_binding calls.
+
+2019-04-30  Nathan Sidwell  <nathan@acm.org>
+
+       * cp-objcp-common.c (cp_common_init_ts): Use MARK_TS_EXP for _EXPR
+       nodes.  Call c_common_init_ts.
+
+2019-04-29  Nathan Sidwell  <nathan@acm.org>
+
+       * decl.c (duplicate_decls): Add whitespace, move comments into
+       conditional blocks.
+       * method.c (explain_implicit_non_constexpr): Refactor.
+       * pt.c (check_explicit_specialization): Fix indentation.
+       * semantics.c (process_outer_var_ref): Reformat.
+       (finish_id_expression_1): Use STRIP_TEMPLATE.
+
+2019-04-26  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR c++/90243 - orphaned note in uninstantiated constexpr function
+       * decl.c (check_for_uninitialized_const_var): Suppress notes if no
+       error was shown.
+
+2019-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/90173
+       * decl.c (grokdeclarator): Set type to error_mark_node
+       upon error about template placeholder type non followed
+       by a simple declarator-id.
+
+2019-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokdeclarator): Fix value assigned to typespec_loc, use
+       min_location.
+
+2019-04-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/90227 - error with template parameter packs.
+       * pt.c (coerce_template_parms): Do add empty pack when
+       require_all_args.
+
+2019-04-24  Richard Biener  <rguenther@suse.de>
+
+       * call.c (null_ptr_cst_p): Order checks according to expensiveness.
+       (conversion_null_warnings): Likewise.
+       * typeck.c (same_type_ignoring_top_level_qualifiers_p): Return
+       early if type1 == type2.
+
+2019-04-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/87366 - wrong error with alias template.
+       * typeck.c (structural_comptypes): When comparing_specializations,
+       aliases are unequal.
+       (comptypes): When comparing_specializations, do structural
+       comparison.
+
 2019-04-19  Jason Merrill  <jason@redhat.com>
 
        PR c++/90190 - CTAD with list-constructor.