Daily bump.
[official-gcc.git] / gcc / cp / ChangeLog
blobbcef33685de6b3614984f5670fb80062a70db392
1 2024-02-13  Marek Polacek  <polacek@redhat.com>
3         DR 1693
4         PR c++/113760
5         * parser.cc (cp_parser_member_declaration): Only pedwarn about an extra
6         semicolon in C++98.
8 2024-02-13  Tobias Burnus  <tburnus@baylibre.com>
10         PR middle-end/113904
11         * parser.cc (cp_parser_omp_context_selector): Handle splitting of
12         OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
14 2024-02-13  Patrick Palka  <ppalka@redhat.com>
16         * Make-lang.in (CFLAGS-cp/module.o): Add $(ZLIBINC).
17         * module.cc: Include <zlib.h>.
18         (bytes::calc_crc): Use crc32 from zlib.
19         (bytes_out::set_crc): Use crc32_combine from zlib.
21 2024-02-13  Patrick Palka  <ppalka@redhat.com>
23         * module.cc (depset::hash::add_specializations): Use
24         STRIP_TEMPLATE consistently.
25         (get_originating_module_decl): Handle class-scope CONST_DECL.
27 2024-02-13  Patrick Palka  <ppalka@redhat.com>
29         * lambda.cc (lambda_function): Call get_class_binding_direct
30         instead of lookup_member to sidestep lazy loading.
31         * name-lookup.cc (check_local_shadow): Punt if we're in a
32         function context that's not actual parsing.
34 2024-02-13  Jason Merrill  <jason@redhat.com>
36         PR c++/113612
37         * pt.cc (process_partial_specialization): Return early
38         on redeclaration.
40 2024-02-13  Marek Polacek  <polacek@redhat.com>
42         PR c++/112436
43         * except.cc (expand_start_catch_block): Pass tf_warning_or_error to
44         is_admissible_throw_operand_or_catch_parameter.
45         (build_throw): Pass complain to
46         is_admissible_throw_operand_or_catch_parameter.
47         (complete_ptr_ref_or_void_ptr_p): Add a tsubst_flags_t parameter.  Use
48         it.  Return bool.  Call complete_type_or_maybe_complain instead of
49         complete_type_or_else.
50         (is_admissible_throw_operand_or_catch_parameter): Add a tsubst_flags_t
51         parameter.  Use it.  Guard error calls.
53 2024-02-13  Alex Coplan  <alex.coplan@arm.com>
55         PR c++/113658
56         * cp-objcp-common.cc (cp_feature_table): Remove entry for
57         cxx_constexpr_string_builtins.
59 2024-02-12  Marek Polacek  <polacek@redhat.com>
61         PR c++/113545
62         * constexpr.cc (cxx_eval_switch_expr): If the condition doesn't reduce
63         to an INTEGER_CST, consider it non-constant.
65 2024-02-10  Marek Polacek  <polacek@redhat.com>
67         DR 2237
68         PR c++/107126
69         PR c++/97202
70         * parser.cc (cp_parser_unqualified_id): Downgrade the DR2237 error to
71         a pedwarn.
72         (cp_parser_constructor_declarator_p): Likewise.
74 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
76         * tree.cc (debug_binfo): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld"
77         and casts to long.
78         * pt.cc (print_template_statistics): Use HOST_SIZE_T_PRINT_DEC
79         and casts to fmt_size_t instead of "%ld" and casts to long.
80         * class.cc (dump_class_hierarchy_1): Use HOST_WIDE_INT_PRINT_UNSIGNED
81         instead of "%lu" and casts to unsigned long.  For TYPE_ALIGN, use
82         %u instead of %lu and drop casts to unsigned long.
83         * parser.cc (cp_lexer_peek_nth_token): Use HOST_SIZE_T_PRINT_DEC
84         and casts to fmt_size_t instead of "%ld" and casts to long.
86 2024-02-09  Marek Polacek  <polacek@redhat.com>
88         PR c++/113834
89         * semantics.cc (finish_type_pack_element): Perform range checking
90         before tree_to_shwi.
92 2024-02-09  Marek Polacek  <polacek@redhat.com>
94         PR c++/98388
95         * coroutines.cc (coro_rewrite_function_body): Pass tf_warning_or_error
96         to build_throw.
97         (morph_fn_to_coro): Likewise.
98         * cp-tree.h (build_throw): Adjust.
99         * except.cc (expand_end_catch_block): Pass tf_warning_or_error to
100         build_throw.
101         (build_throw): Add a tsubst_flags_t parameter.  Use it.  Remove
102         redundant variable.  Guard an inform call.
103         * parser.cc (cp_parser_throw_expression): Pass tf_warning_or_error
104         to build_throw.
105         * pt.cc (tsubst_expr) <case THROW_EXPR>: Pass complain to build_throw.
107 2024-02-09  Patrick Palka  <ppalka@redhat.com>
109         PR c++/112580
110         * module.cc (trees_in::read_class_def): When streaming in
111         an anonymous union field of an as-base class, don't overwrite
112         ANON_AGGR_TYPE_FIELD.
114 2024-02-08  Patrick Palka  <ppalka@redhat.com>
116         PR c++/113649
117         * pt.cc (do_class_deduction): Add outer_targs parameter.
118         Substitute outer arguments into the CTAD template.
119         (do_auto_deduction): Pass outer_targs to do_class_deduction.
121 2024-02-08  Jason Merrill  <jason@redhat.com>
123         * pt.cc (create_template_parm_object): Pass TARGET_EXPR to
124         cxx_constant_value.
126 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
128         PR c++/113788
129         * parser.cc (CP_PARSER_FLAGS_PARAMETER): New enumerator.
130         (cp_parser_decl_specifier_seq): Parse RID_THIS only if
131         CP_PARSER_FLAGS_PARAMETER is set in flags.
132         (cp_parser_parameter_declaration): Or in CP_PARSER_FLAGS_PARAMETER
133         when calling cp_parser_decl_specifier_seq.
135 2024-02-06  Marek Polacek  <polacek@redhat.com>
137         * method.cc (early_check_defaulted_comparison): Add
138         auto_diagnostic_group.
140 2024-02-06  Jason Merrill  <jason@redhat.com>
142         PR c++/107291
143         * method.cc (early_check_defaulted_comparison): Fail if not friend.
145 2024-02-05  Jason Merrill  <jason@redhat.com>
147         PR c++/111286
148         * tree.cc (rvalue): Don't drop cv-quals from an array.
150 2024-02-03  Patrick Palka  <ppalka@redhat.com>
152         PR c++/110006
153         PR c++/112769
154         * constraint.cc (subst_info::quiet): Accomodate non-diagnostic
155         tsubst flags.
156         (tsubst_valid_expression_requirement): Likewise.
157         (tsubst_simple_requirement): Return a substituted _REQ node when
158         processing_template_decl.
159         (tsubst_type_requirement_1): Accomodate non-diagnostic tsubst
160         flags.
161         (tsubst_type_requirement): Return a substituted _REQ node when
162         processing_template_decl.
163         (tsubst_compound_requirement): Likewise.  Accomodate non-diagnostic
164         tsubst flags.
165         (tsubst_nested_requirement): Likewise.
166         (tsubst_requires_expr): Don't defer partial substitution when
167         processing_constraint_expression_p is true, in which case return
168         a substituted REQUIRES_EXPR.
169         * pt.cc (tsubst_expr) <case REQUIRES_EXPR>: Accomodate
170         non-diagnostic tsubst flags.
172 2024-02-02  Jason Merrill  <jason@redhat.com>
174         PR c++/110084
175         * pt.cc (tsubst_function_decl): Only check a function defaulted
176         outside the class if the class is complete.
178 2024-02-02  Jason Merrill  <jason@redhat.com>
180         PR c++/112439
181         * constexpr.cc (cxx_eval_store_expression): Check empty_base
182         before marking a CONSTRUCTOR readonly.
184 2024-02-02  Jason Merrill  <jason@redhat.com>
186         PR c++/113638
187         * cp-tree.h: Adjust comment.
188         * pt.cc (instantiate_template): Set VAR_HAD_UNKNOWN_BOUND for
189         variable template.
191 2024-02-01  Marek Polacek  <polacek@redhat.com>
193         * call.cc (reference_like_class_p): Consider even non-templates for
194         std::span-like classes.
196 2024-02-01  Patrick Palka  <ppalka@redhat.com>
198         PR c++/112737
199         * pt.cc (iterative_hash_template_arg) <case TEMPLATE_DECL>:
200         Adjust hashing to match cp_tree_equal.
201         (ctp_hasher::hash): Also hash CLASS_PLACEHOLDER_TEMPLATE.
202         * tree.cc (cp_tree_equal) <case TEMPLATE_DECL>: Return true
203         for ttp TEMPLATE_DECLs if their TEMPLATE_TEMPLATE_PARMs are
204         equivalent.
205         * typeck.cc (structural_comptypes) <case TEMPLATE_TYPE_PARM>:
206         Use cp_tree_equal to compare CLASS_PLACEHOLDER_TEMPLATE.
208 2024-02-01  Marek Polacek  <polacek@redhat.com>
210         PR c++/112437
211         * typeck.cc (treat_lvalue_as_rvalue_p): Bail out on sk_namespace in
212         the move on throw of parms loop.
214 2024-01-30  Marek Polacek  <polacek@redhat.com>
216         PR c++/110358
217         PR c++/109640
218         * call.cc (reference_like_class_p): Don't warn for std::span-like
219         classes.
221 2024-01-30  Patrick Palka  <ppalka@redhat.com>
223         PR c++/113640
224         * call.cc (keep_unused_object_arg): Punt for an xobj member
225         function.
227 2024-01-30  Patrick Palka  <ppalka@redhat.com>
229         PR c++/113644
230         * pt.cc (unify) <case INTEGER_CST>: Handle NULL_TREE type.
232 2024-01-30  Nathaniel Shead  <nathanieloshead@gmail.com>
234         PR c++/107594
235         * module.cc (get_module): Bail on empty name.
237 2024-01-29  Jason Merrill  <jason@redhat.com>
239         PR c++/113544
240         * pt.cc (instantiate_class_template): Don't partially instantiate.
241         (tsubst_stmt): Likewise.
243 2024-01-26  Nathaniel Shead  <nathanieloshead@gmail.com>
245         PR c++/113580
246         * module.cc (struct post_process_data): Create.
247         (trees_in::post_decls): Use.
248         (trees_in::post_process): Return entire vector at once.
249         Change overload to take post_process_data instead of tree.
250         (trees_out::write_function_def): Write needed flags from
251         DECL_STRUCT_FUNCTION.
252         (trees_in::read_function_def): Read them and pass to
253         post_process.
254         (module_state::read_cluster): Write flags into cfun.
256 2024-01-26  Nathaniel Shead  <nathanieloshead@gmail.com>
258         PR c++/112899
259         * cp-tree.h (note_variable_template_instantiation): Rename to...
260         (note_vague_linkage_variable): ...this.
261         * decl2.cc (note_variable_template_instantiation): Rename to...
262         (note_vague_linkage_variable): ...this.
263         * pt.cc (instantiate_decl): Rename usage of above function.
264         * module.cc (trees_in::read_var_def): Remember pending statics
265         that we stream in.
267 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
269         PR c++/113599
270         * typeck2.cc (build_m_component_ref): Use convert instead of
271         cp_convert for pointer conversion.
273 2024-01-25  Jason Merrill  <jason@redhat.com>
275         PR c++/113598
276         * init.cc (build_vec_init): Don't use {} for PMF.
278 2024-01-25  Jason Merrill  <jason@redhat.com>
280         PR c++/109227
281         * coroutines.cc (build_co_await): Use cxx_maybe_build_cleanup.
282         (build_actor_fn, process_conditional, maybe_promote_temps)
283         (morph_fn_to_coro): Likewise.
284         (expand_one_await_expression): Use build_cleanup.
286 2024-01-25  Nathaniel Shead  <nathanieloshead@gmail.com>
288         PR c++/113405
289         * module.cc (set_defining_module): Track partial specialisations
290         for all declarations.
292 2024-01-25  Nathaniel Shead  <nathanieloshead@gmail.com>
294         PR c++/100707
295         * name-lookup.cc (add_imported_namespace): Don't mark namespaces
296         as imported.
298 2024-01-24  Patrick Palka  <ppalka@redhat.com>
300         PR c++/113529
301         * call.cc (add_operator_candidates): Propagate error_mark_node
302         result after recursing to find rewritten candidates.
304 2024-01-23  Marek Polacek  <polacek@redhat.com>
306         PR c++/113256
307         PR c++/111607
308         PR c++/109640
309         * call.cc (do_warn_dangling_reference): Don't warn if the temporary
310         is of lambda type.
312 2024-01-23  Nathaniel Shead  <nathanieloshead@gmail.com>
314         PR c++/112820
315         PR c++/102607
316         * module.cc (trees_out::lang_type_bools): Write interface_only
317         and interface_unknown.
318         (trees_in::lang_type_bools): Read the above flags.
319         (trees_in::decl_value): Reset CLASSTYPE_INTERFACE_* except for
320         extern templates.
321         (trees_in::read_class_def): Remove buggy extern template
322         handling.
324 2024-01-19  Jason Merrill  <jason@redhat.com>
326         PR c++/113498
327         * pt.cc (decl_template_info): New fn.
328         (get_template_info): Use it.
330 2024-01-19  Jason Merrill  <jason@redhat.com>
332         PR c++/112632
333         PR c++/112594
334         PR c++/111357
335         PR c++/104594
336         PR c++/67898
337         * cp-tree.h (IMPLICIT_CONV_EXPR_FORCED): New.
338         * pt.cc (expand_integer_pack): Remove 111357 workaround.
339         (maybe_convert_nontype_argument): Add force parm.
340         (convert_template_argument): Handle alias template args
341         specially.
342         (tsubst_expr): Don't ignore IMPLICIT_CONV_EXPR_NONTYPE_ARG.
343         * error.cc (dump_expr) [CASE_CONVERT]: Handle null optype.
345 2024-01-18  Marek Polacek  <polacek@redhat.com>
347         PR c++/113389
348         * decl.cc (grokdeclarator) <case cdk_function>: Set TREE_PURPOSE to
349         NULL_TREE when emitting an error.
351 2024-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
353         PR c++/112588
354         * module.cc (trees_in::read_function_def): Don't overwrite
355         arguments.
357 2024-01-17  Patrick Palka  <ppalka@redhat.com>
359         PR c++/113242
360         PR c++/99493
361         * pt.cc (invalid_tparm_referent_p) <case ADDR_EXPR>: Suppress
362         DECL_ARTIFICIAL rejection test for class NTTP objects.
364 2024-01-16  Nathaniel Shead  <nathanieloshead@gmail.com>
366         PR c++/113292
367         * decl2.cc (get_tls_wrapper_fn): Set DECL_CONTEXT.
368         (c_parse_final_cleanups): Suppress warning for no definition of
369         TLS wrapper functions in header modules.
370         * module.cc (trees_out::lang_decl_vals): Write wrapped variable
371         for TLS wrapper functions.
372         (trees_in::lang_decl_vals): Read it.
373         (trees_out::decl_value): Write TLS model for thread-local vars.
374         (trees_in::decl_value): Read it for new decls. Remember to emit
375         definitions of TLS wrapper functions later.
377 2024-01-16  Nathaniel Shead  <nathanieloshead@gmail.com>
379         * name-lookup.h (enum scope_kind): Add 'sk_count'.
380         * name-lookup.cc (cp_binding_level_descriptor): Add missing
381         scope kinds. Add assertion that the list is up to date. Fix
382         handling of explicit_spec_p.
384 2024-01-16  Marek Polacek  <polacek@redhat.com>
386         * decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic
387         messages.
389 2024-01-16  Marek Polacek  <polacek@redhat.com>
391         PR c++/113340
392         * decl.cc (grokdeclarator) <case cdk_function>: Clear
393         is_xobj_member_function in case of an error.
395 2024-01-16  waffl3x  <waffl3x@protonmail.com>
397         PR c++/113307
398         * parser.cc (cp_parser_parameter_declaration): Reject packs
399         on xobj params.
401 2024-01-15  Marek Polacek  <polacek@redhat.com>
403         PR c++/110065
404         * parser.cc (cp_parser_template_type_arg): Add auto checking.
406 2024-01-15  Patrick Palka  <ppalka@redhat.com>
408         * parser.cc (cp_parser_check_access_in_redeclaration): Don't
409         check access for a partial or explicit specialization.
410         * pt.cc (maybe_new_partial_specialization): Don't set TREE_PRIVATE
411         or TREE_PROTECTED on the newly created partial specialization.
413 2024-01-15  Patrick Palka  <ppalka@redhat.com>
415         PR c++/104634
416         * pt.cc (maybe_new_partial_specialization): Propagate TREE_PUBLIC
417         to the newly created partial specialization.
419 2024-01-15  Patrick Palka  <ppalka@redhat.com>
421         PR c++/109899
422         * init.cc (build_vec_delete_1): Assume expr_noexcept_p returns
423         false in a template context.
425 2024-01-13  Jakub Jelinek  <jakub@redhat.com>
427         * mangle.cc (write_nested_name): Mangle explicit object
428         member functions with H as per
429         https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal.
431 2024-01-12  Jason Merrill  <jason@redhat.com>
433         PR c++/113038
434         * name-lookup.cc (lookup_elaborated_type): Look for bindings
435         in the global namespace in the ABI namespace.
437 2024-01-12  Jason Merrill  <jason@redhat.com>
439         * call.cc (reversed_match): New.
440         (enum class pmatch): New enum.
441         (cand_parms_match): Add match_kind parm.
442         (object_parms_correspond): Add fn parms.
443         (joust): Adjust.
444         * class.cc (xobj_iobj_parameters_correspond): Rename to...
445         (iobj_parm_corresponds_to): ...this.  Take the other
446         type instead of a second function.
447         (object_parms_correspond): Adjust.
448         * cp-tree.h (iobj_parm_corresponds_to): Declare.
450 2024-01-11  Jason Merrill  <jason@redhat.com>
452         PR c++/113191
453         * class.cc (xobj_iobj_parameters_correspond): Add context parm.
454         (object_parms_correspond): Factor out of...
455         (add_method): ...here.
456         * method.cc (defaulted_late_check): Use it.
457         * call.cc (class_of_implicit_object): New.
458         (object_parms_correspond): Overload taking two candidates.
459         (cand_parms_match): Use it.
460         (joust): Check reversed before comparing constraints.
461         * cp-tree.h (object_parms_correspond): Declare.
463 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
465         * parser.cc (cp_parser_pragma): Initialize to false.
467 2024-01-09  Jason Merrill  <jason@redhat.com>
469         * semantics.cc (is_object_parameter): New.
470         * cp-tree.h (is_object_parameter): Declare.
471         * call.cc (maybe_warn_class_memaccess): Use it.
472         * search.cc (field_access_p): Use it.
473         (class_of_object_parm): New.
474         (field_accessor_p): Adjust for explicit object parms.
476 2024-01-09  Jason Merrill  <jason@redhat.com>
478         * call.cc (build_over_call): Refactor handle_arg lambda.
479         * class.cc (xobj_iobj_parameters_correspond): Fix FIXME.
480         * method.cc (defaulted_late_check): Adjust comments.
482 2024-01-09  waffl3x  <waffl3x@protonmail.com>
484         PR c++/102609
485         PR c++/102609
486         C++23 P0847R7 (deducing this) - CWG2586.
487         * decl.cc (copy_fn_p): Accept xobj copy assignment functions.
488         (move_signature_fn_p): Accept xobj move assignment functions.
489         * method.cc (do_build_copy_assign): Handle defaulted xobj member
490         functions.
491         (defaulted_late_check): Comment.
492         (defaultable_fn_check): Comment.
494 2024-01-09  waffl3x  <waffl3x@protonmail.com>
496         PR c++/102609
497         PR c++/102609
498         C++23 P0847R7 (deducing this) - xobj lambdas.
499         * lambda.cc (build_capture_proxy): Don't fold direct object types.
500         * parser.cc (cp_parser_lambda_declarator_opt): Handle xobj lambdas,
501         diagnostics.  Comments also updated.
502         * pt.cc (tsubst_function_decl): Handle xobj lambdas.  Check object
503         type of xobj lambda call operator, diagnose incorrect types.
504         (tsubst_lambda_expr): Update comment.
505         * semantics.cc (finish_decltype_type): Also consider by-value object
506         parameter qualifications.
508 2024-01-09  waffl3x  <waffl3x@protonmail.com>
510         PR c++/102609
511         PR c++/102609
512         C++23 P0847R7 (deducing this) - diagnostics.
513         * class.cc (resolve_address_of_overloaded_function): Diagnostics.
514         * cp-tree.h (TFF_XOBJ_FUNC): Define.
515         * decl.cc (grokfndecl): Diagnostics.
516         (grokdeclarator): Diagnostics.
517         * error.cc (dump_aggr_type): Pass TFF_XOBJ_FUNC.
518         (dump_lambda_function): Formatting for xobj lambda.
519         (dump_function_decl): Pass TFF_XOBJ_FUNC.
520         (dump_parameters): Formatting for xobj member functions.
521         (function_category): Formatting for xobj member functions.
522         * parser.cc (cp_parser_decl_specifier_seq): Diagnostics.
523         (cp_parser_parameter_declaration): Diagnostics.
524         * search.cc (look_for_overrides_here): Make xobj member functions
525         override.
526         (look_for_overrides_r): Reject an overriding xobj member function
527         and diagnose it.
528         * semantics.cc (finish_this_expr): Diagnostics.
529         * typeck.cc (cp_build_addr_expr_1): Diagnostics.
531 2024-01-09  waffl3x  <waffl3x@protonmail.com>
533         PR c++/102609
534         PR c++/102609
535         C++23 P0847R7 (deducing this) - initial functionality.
536         * class.cc (xobj_iobj_parameters_correspond): New function, checks
537         for corresponding object parameters between xobj and iobj member
538         functions.
539         (add_method): Handle object parameters of xobj member functions, use
540         xobj_iobj_parameters_correspond.
541         * call.cc (build_over_call): Refactor, handle xobj member functions.
542         (cand_parms_match): Handle object parameters of xobj and iobj member
543         functions, use xobj_iobj_parameters_correspond.
544         * cp-tree.h (enum cp_decl_spec): Add ds_this, add comments.
545         * decl.cc (grokfndecl): Add xobj_func_p parameter.  For xobj member
546         functions, Set xobj_flag, don't set static_function flag.
547         (grokdeclarator): Handle xobj member functions, tell grokfndecl.
548         (grok_op_properties): Don't error for xobj operators.
549         * parser.cc (cp_parser_decl_specifier_seq): Handle this specifier.
550         (cp_parser_parameter_declaration): Set default argument to
551         "this_identifier" for xobj parameters.
552         (set_and_check_decl_spec_loc): Add "this", add comments.
553         * tree.cc (build_min_non_dep_op_overload): Handle xobj operators.
554         * typeck.cc (cp_build_addr_expr_1): Handle address-of xobj member
555         functions.
557 2024-01-09  waffl3x  <waffl3x@protonmail.com>
558             Jason Merrill  <jason@redhat.com>
560         PR c++/102609
561         * cp-tree.h (struct lang_decl_fn): New data member.
562         (DECL_NONSTATIC_MEMBER_FUNCTION_P): Poison.
563         (DECL_IOBJ_MEMBER_FUNCTION_P): Define.
564         (DECL_FUNCTION_XOBJ_FLAG): Define.
565         (DECL_XOBJ_MEMBER_FUNCTION_P): Define.
566         (DECL_OBJECT_MEMBER_FUNCTION_P): Define.
567         (DECL_FUNCTION_MEMBER_P): Don't use
568         DECL_NONSTATIC_MEMBER_FUNCTION_P.
569         (DECL_CONST_MEMFUNC_P): Likewise.
570         (DECL_VOLATILE_MEMFUNC_P): Likewise.
571         (DECL_NONSTATIC_MEMBER_P): Likewise.
572         * module.cc (trees_out::lang_decl_bools): Handle xobj_flag.
573         (trees_in::lang_decl_bools): Handle xobj_flag.
574         * call.cc (build_this_conversion)
575         (add_function_candidate)
576         (add_template_candidate_real)
577         (add_candidates)
578         (maybe_warn_class_memaccess)
579         (cand_parms_match)
580         (joust)
581         (do_warn_dangling_reference)
582         * class.cc (finalize_literal_type_property)
583         (finish_struct)
584         (resolve_address_of_overloaded_function)
585         * constexpr.cc (is_valid_constexpr_fn)
586         (cxx_bind_parameters_in_call)
587         * contracts.cc (build_contract_condition_function)
588         * cp-objcp-common.cc (cp_decl_dwarf_attribute)
589         * cxx-pretty-print.cc (cxx_pretty_printer::postfix_expression)
590         (cxx_pretty_printer::declaration_specifiers)
591         (cxx_pretty_printer::direct_declarator)
592         * decl.cc (cp_finish_decl)
593         (grok_special_member_properties)
594         (start_preparsed_function)
595         (record_key_method_defined)
596         * decl2.cc (cp_handle_deprecated_or_unavailable)
597         * init.cc (find_uninit_fields_r)
598         (build_offset_ref)
599         * lambda.cc (lambda_expr_this_capture)
600         (maybe_generic_this_capture)
601         (nonlambda_method_basetype)
602         * mangle.cc (write_nested_name)
603         * method.cc (early_check_defaulted_comparison)
604         (skip_artificial_parms_for)
605         (num_artificial_parms_for)
606         * pt.cc (is_specialization_of_friend)
607         (determine_specialization)
608         (copy_default_args_to_explicit_spec)
609         (check_explicit_specialization)
610         (tsubst_contract_attribute)
611         (check_non_deducible_conversions)
612         (more_specialized_fn)
613         (maybe_instantiate_noexcept)
614         (register_parameter_specializations)
615         (value_dependent_expression_p)
616         * search.cc (shared_member_p)
617         (lookup_member)
618         (field_access_p)
619         * semantics.cc (finish_omp_declare_simd_methods)
620         * tree.cc (lvalue_kind)
621         * typeck.cc (invalid_nonstatic_memfn_p): Don't use
622         DECL_NONSTATIC_MEMBER_FUNCTION_P.
624 2024-01-09  Julian Brown  <julian@codesourcery.com>
626         * constexpr.cc (potential_consant_expression_1): Handle
627         OMP_ARRAY_SECTION.
628         * cp-tree.h (grok_omp_array_section, build_omp_array_section): Add
629         prototypes.
630         * decl2.cc (grok_omp_array_section): New function.
631         * error.cc (dump_expr): Handle OMP_ARRAY_SECTION.
632         * parser.cc (cp_parser_new): Initialize parser->omp_array_section_p.
633         (cp_parser_statement_expr): Disallow array sections.
634         (cp_parser_postfix_open_square_expression): Support OMP_ARRAY_SECTION
635         parsing.
636         (cp_parser_parenthesized_expression_list, cp_parser_lambda_expression,
637         cp_parser_braced_list): Disallow array sections.
638         (cp_parser_omp_var_list_no_open): Remove ALLOW_DEREF parameter, add
639         MAP_LVALUE in its place.  Support generalised lvalue parsing for
640         OpenMP map, to and from clauses.  Use OMP_ARRAY_SECTION
641         code instead of TREE_LIST to represent OpenMP array sections.
642         (cp_parser_omp_var_list): Remove ALLOW_DEREF parameter, add MAP_LVALUE.
643         Pass to cp_parser_omp_var_list_no_open.
644         (cp_parser_oacc_data_clause): Update call to cp_parser_omp_var_list.
645         (cp_parser_omp_clause_map): Add sk_omp scope around
646         cp_parser_omp_var_list_no_open call.
647         * parser.h (cp_parser): Add omp_array_section_p field.
648         * pt.cc (tsubst, tsubst_copy, tsubst_omp_clause_decl,
649         tsubst_copy_and_build): Add OMP_ARRAY_SECTION support.
650         * semantics.cc (handle_omp_array_sections_1, handle_omp_array_sections,
651         cp_oacc_check_attachments, finish_omp_clauses): Use OMP_ARRAY_SECTION
652         instead of TREE_LIST where appropriate.  Handle more types of map
653         expression.
654         * typeck.cc (build_omp_array_section): New function.
656 2024-01-07  Nathaniel Shead  <nathanieloshead@gmail.com>
658         * module.cc (trees_out::write_var_def): Only write initializers
659         in header modules.
661 2024-01-07  Nathaniel Shead  <nathanieloshead@gmail.com>
663         PR c++/109679
664         * module.cc (depset::hash::add_binding_entity): Don't skip names
665         in the GMF if they've been exported with a using declaration.
667 2024-01-07  Nathaniel Shead  <nathanieloshead@gmail.com>
669         PR c++/110808
670         * parser.cc (cp_parser_module_name): Rewrite to handle
671         module-names and module-partitions independently.
672         (cp_parser_module_partition): New function.
673         (cp_parser_module_declaration): Parse module partitions
674         explicitly. Don't change state if parsing module decl failed.
675         (cp_parser_import_declaration): Handle different kinds of
676         import-declarations locally.
678 2024-01-03  Patrick Palka  <ppalka@redhat.com>
680         PR c++/113064
681         * call.cc (reference_binding): Still try a conversion via a
682         temporary if a direct conversion was bad.
684 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
686         * parser.cc (cp_parser_omp_clause_name): Move handling of indirect
687         clause to correspond to alphabetical order.
690 Copyright (C) 2024 Free Software Foundation, Inc.
692 Copying and distribution of this file, with or without modification,
693 are permitted in any medium without royalty provided the copyright
694 notice and this notice are preserved.