]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/cp/ChangeLog
[PR c++/90754] name lookup ICE
[thirdparty/gcc.git] / gcc / cp / ChangeLog
index 30b9bf596844c39d2d1bb0923862128b881f8b59..4e6d62627ec873697740fa0bd43e2c9b3ab16715 100644 (file)
@@ -1,5 +1,281 @@
+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.