]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/cp/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
index 6f812e2c152a878add81de949a0e93658b7ed346..ed86fa348d79aa9884a5139c257078744860c063 100644 (file)
@@ -1,3 +1,325 @@
+2023-11-28  Jason Merrill  <jason@redhat.com>
+
+       PR c++/94264
+       PR c++/53220
+       * call.cc (convert_like_internal): Remove obsolete comment.
+       * typeck.cc (decay_conversion): Allow array prvalue.
+       (maybe_warn_about_returning_address_of_local): Check
+       for returning pointer to temporary.
+
+2023-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * cp-objcp-common.cc (cp_feature_table): Evaluate
+       __has_extension (cxx_init_captures) to 1 even for -std=c++11.
+
+2023-11-27  Alex Coplan  <alex.coplan@arm.com>
+           Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/60512
+       * cp-lang.cc (c_family_register_lang_features): New.
+       * cp-objcp-common.cc (struct cp_feature_selector): New.
+       (cp_feature_selector::has_feature): New.
+       (struct cp_feature_info): New.
+       (cp_register_features): New.
+       * cp-objcp-common.h (cp_register_features): New.
+
+2023-11-25  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+       * name-lookup.cc (check_can_export_using_decl): New.
+       (do_nonmember_using_decl): Use above to check if names can be
+       exported.
+
+2023-11-25  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+       PR c++/102341
+       * decl.cc (duplicate_decls): Allow exporting a redeclaration of
+       a typedef.
+
+2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
+
+       * parser.cc (cp_parser_omp_clause_dist_schedule,
+       cp_parser_omp_scan_loop_body, cp_parser_omp_assumption_clauses,
+       cp_parser_omp_depobj): Add OPT_Wopenmp to warning_at.
+       * semantics.cc (finish_omp_clauses): Likewise.
+
+2023-11-24  Tobias Burnus  <tobias@codesourcery.com>
+
+       * parser.cc (cp_parser_omp_depobj): Accept optionally an argument
+       to the destroy clause.
+
+2023-11-24  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+       PR c++/99232
+       * decl.cc (grokvardecl): Don't mark variables attached to
+       modules as internal.
+
+2023-11-24  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+       PR c++/107398
+       * module.cc (trees_out::get_merge_kind): Handle lambdas in class
+       scope.
+       (maybe_key_decl): Remove assertion and fix whitespace.
+
+2023-11-24  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+       PR c++/98885
+       * decl.cc (duplicate_decls): Adjust error message.
+       (xref_tag): Adjust error message. Check exporting decl that is
+       already declared as non-exporting.
+
+2023-11-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/110348
+       * parser.cc: Implement C++26 P2741R3 - user-generated static_assert
+       messages.
+       (cp_parser_static_assert): Parse message argument as
+       conditional-expression if it is not a pure string literal or
+       several of them concatenated followed by closing paren.
+       * semantics.cc (finish_static_assert): Handle message which is not
+       STRING_CST.  For condition with bare parameter packs return early.
+       * pt.cc (tsubst_expr) <case STATIC_ASSERT>: Also tsubst_expr
+       message and make sure that if it wasn't originally STRING_CST, it
+       isn't after tsubst_expr either.
+
+2023-11-22  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/112633
+       * pt.cc (tsubst_aggr_type): Handle empty TYPE_TEMPLATE_INFO
+       in the entering_scope adjustment.
+
+2023-11-22  Jason Merrill  <jason@redhat.com>
+
+       * decl.cc (start_preparsed_function): Clarify ctype logic.
+
+2023-11-20  Marc Poulhiès  <dkm@kataplop.net>
+
+       * lambda.cc (compare_lambda_sig): Fix typo in variadic.
+
+2023-11-20  Jason Merrill  <jason@redhat.com>
+
+       * pt.cc (comp_template_parms): Just one level.
+       (template_parameter_lists_equivalent_p): Likewise.
+
+2023-11-20  Jason Merrill  <jason@redhat.com>
+
+       * cp-tree.h (DECL_TEMPLATE_PARM_CHECK): New.
+       (DECL_IMPLICIT_TEMPLATE_PARM_P): New.
+       (decl_template_parm_check): New.
+       * mangle.cc (write_closure_template_head): Use it.
+       * parser.cc (synthesize_implicit_template_parm): Likewise.
+       * pt.cc (template_parameters_equivalent_p): Likewise.
+
+2023-11-19  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+       PR c++/99187
+       * cp-tree.h (enum cp_tree_index): Add CPTI_THREAD_ATEXIT.
+       (thread_atexit_node): New.
+       * decl.cc (get_thread_atexit_node): Cache in thread_atexit_node.
+
+2023-11-19  David Malcolm  <dmalcolm@redhat.com>
+
+       * mapper-client.cc: Include "rich-location.h".
+
+2023-11-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/112365
+       * class.cc (layout_class_type): Don't
+       SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD on FIELD_DECLs with
+       error_mark_node type.
+
+2023-11-16  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/111703
+       PR c++/107939
+       * constexpr.cc (potential_constant_expression_1) <case CALL_EXPR>:
+       Fix FUNCTION_POINTER_TYPE_P test.
+
+2023-11-16  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/112410
+       * parser.cc (cp_parser_direct_declarator): Maybe call
+       abort_fully_implicit_template if it turned out the parameter list was
+       ill-formed.
+
+2023-11-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       * tree.cc (build_cplus_array_type): Revert using the macro
+       CAN_HAVE_LOCATION_P.
+
+2023-11-15  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/112515
+       * decl.cc (is_direct_enum_init): Check type-dependence of the
+       single element.
+
+2023-11-15  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/101043
+       * tree.cc (strip_typedefs_expr) <case TREE_LIST>: Handle
+       non-empty TREE_PURPOSE.
+
+2023-11-15  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/112427
+       * tree.cc (build_min_non_dep): Propagate TREE_SIDE_EFFECTS from
+       the original arguments.
+       (build_min_non_dep_call_vec): Likewise.
+       * typeck2.cc (build_m_component_ref): Use cp_convert, build2 and
+       cp_fully_fold instead of fold_build_pointer_plus and fold_convert.
+       Don't build the POINTER_PLUS_EXPR in a template context.
+
+2023-11-15  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/111703
+       PR c++/112269
+       * constexpr.cc (potential_constant_expression_1) <case VAR_DECL>:
+       Only consider var_in_maybe_constexpr_fn if 'now' is false.
+       <case INDIRECT_REF>: Likewise.
+
+2023-11-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * typeck.cc: Implement C++26 P2864R2 - Remove Deprecated Arithmetic
+       Conversion on Enumerations From C++26.
+       (do_warn_enum_conversions): Return bool rather than void, add COMPLAIN
+       argument.  Use pedwarn rather than warning_at for C++26 and remove
+       " is deprecated" part of the diagnostics in that case.  For SFINAE
+       in C++26 return true on newly erroneous cases.
+       (cp_build_binary_op): For C++26 call do_warn_enum_conversions
+       unconditionally, pass complain argument to it and if it returns true,
+       return error_mark_node.
+       * call.cc (build_conditional_expr): Use pedwarn rather than warning_at
+       for C++26 and remove " is deprecated" part of the diagnostics in that
+       case and check for complain & tf_warning_or_error.  Use emit_diagnostic
+       with cxx_dialect >= cxx26 ? DK_PEDWARN : DK_WARNING.  For SFINAE in
+       C++26 return error_mark_node on newly erroneous cases.
+       (build_new_op): Use emit_diagnostic with cxx_dialect >= cxx26
+       ? DK_PEDWARN : DK_WARNING and complain & tf_warning_or_error check
+       for C++26.  For SFINAE in C++26 return error_mark_node on newly
+       erroneous cases.
+
+2023-11-14  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+       PR c++/103499
+       * module.cc (trees_out::decl_node): Write DECL_VINDEX for
+       virtual clones.
+       (trees_in::tree_node): Read DECL_VINDEX for virtual clones.
+
+2023-11-14  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+       PR c++/106849
+       * name-lookup.cc (do_nonmember_using_decl): Handle
+       TEMPLATE_DECLs when checking module attachment.
+
+2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+
+       * decl.cc (finish_function): Update call to
+       global_dc->m_option_enabled to use option_enabled_p.
+
+2023-11-14  David Malcolm  <dmalcolm@redhat.com>
+
+       * contracts.cc (build_comment): Use global_dc's file_cache.
+
+2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR c++/111842
+       PR c++/112498
+       * call.cc (convert_like_internal): Use OPT_Wnarrowing for
+       pedwarns about illformed conversions involving extended
+       floating-point types. Clarify that ISO C++ requires these
+       diagnostics.
+
+2023-11-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/111309
+       * call.cc (magic_varargs_p): Return 4 for
+       BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
+       (build_over_call): Don't promote first argument of
+       BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
+       * cp-gimplify.cc (cp_gimplify_expr): For BUILT_IN_C{L,T}ZG use
+       c_gimplify_expr.
+
+2023-11-10  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/79620
+       * cp-tree.h (STRIP_REFERENCE_REF): Define.
+       * semantics.cc (outer_var_p): Assert REFERENCE_REF_P is false.
+       (finish_decltype_type): Look through implicit INDIRECT_REF when
+       deciding whether to call capture_decltype.
+
+2023-11-10  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/79378
+       PR c++/96917
+       * semantics.cc (finish_decltype_type): Handle an id-expression
+       naming a capture proxy specially.
+
+2023-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * cp-tree.h (cp_omp_declare_target_attr): Add indirect field.
+       * decl2.cc (cplus_decl_attributes): Add attribute for indirect
+       functions.
+       * parser.cc (cp_parser_omp_clause_name): Handle indirect clause.
+       (cp_parser_omp_clause_indirect): New.
+       (cp_parser_omp_all_clauses): Handle indirect clause.
+       (handle_omp_declare_target_clause): Add extra parameter.  Add
+       indirect attribute for indirect functions.
+       (OMP_DECLARE_TARGET_CLAUSE_MASK): Add indirect clause to mask.
+       (cp_parser_omp_declare_target): Handle indirect clause.  Emit error
+       message if device_type or indirect clauses used alone.  Emit error
+       if indirect clause used with device_type that is not 'any'.
+       (OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK): Add indirect clause to mask.
+       (cp_parser_omp_begin): Handle indirect clause.
+       * semantics.cc (finish_omp_clauses): Handle indirect clause.
+
+2023-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * parser.h (struct cp_parser): Adjust comment on omp_attrs_forbidden_p
+       member.
+       * parser.cc (cp_parser_omp_section_scan): Allow __directive__ spelling.
+
+2023-11-04  David Malcolm  <dmalcolm@redhat.com>
+
+       * call.cc: Update for changes to diagnostic_context.
+       * class.cc: Likewise.
+       * decl.cc: Likewise.
+       * error.cc: Likewise.
+       * except.cc: Likewise.
+       * pt.cc: Likewise.
+
+2023-11-02  Jason Merrill  <jason@redhat.com>
+
+       * semantics.cc (nrv_data): Change visited to hash_set.
+       (finalize_nrv_r): Reorganize.
+
+2023-11-02  Jason Merrill  <jason@redhat.com>
+
+       PR c++/112301
+       PR c++/102191
+       PR c++/33799
+       * except.cc (maybe_splice_retval_cleanup): Clear
+       current_retval_sentinel when destroying retval.
+       * semantics.cc (nrv_data): Add in_nrv_cleanup.
+       (finalize_nrv): Set it.
+       (finalize_nrv_r): Fix handling of throwing cleanups.
+
+2023-11-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/110342
+       * parser.cc: Implement C++26 P2361R6 - Unevaluated strings.
+       (uneval_string_attr): New enumerator.
+       (cp_parser_string_literal_common): Add UNEVAL argument.  If true,
+       pass CPP_UNEVAL_STRING rather than CPP_STRING to
+       cpp_interpret_string_notranslate.
+       (cp_parser_string_literal, cp_parser_userdef_string_literal): Adjust
+       callers of cp_parser_string_literal_common.
+       (cp_parser_unevaluated_string_literal): New function.
+       (cp_parser_parenthesized_expression_list): Handle uneval_string_attr.
+       (cp_parser_linkage_specification): Use
+       cp_parser_unevaluated_string_literal for C++26.
+       (cp_parser_static_assert): Likewise.
+       (cp_parser_std_attribute): Use uneval_string_attr for standard
+       deprecated and nodiscard attributes.
+
 2023-10-31  David Malcolm  <dmalcolm@redhat.com>
 
        * module.cc (ordinary_loc_of): Update for removal of