Daily bump.
[official-gcc.git] / gcc / cp / ChangeLog
blobb2ec9213ac401cb8bcb6021cc0497497a088f4ae
1 2024-02-10  Marek Polacek  <polacek@redhat.com>
3         DR 2237
4         PR c++/107126
5         PR c++/97202
6         * parser.cc (cp_parser_unqualified_id): Downgrade the DR2237 error to
7         a pedwarn.
8         (cp_parser_constructor_declarator_p): Likewise.
10 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
12         * tree.cc (debug_binfo): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld"
13         and casts to long.
14         * pt.cc (print_template_statistics): Use HOST_SIZE_T_PRINT_DEC
15         and casts to fmt_size_t instead of "%ld" and casts to long.
16         * class.cc (dump_class_hierarchy_1): Use HOST_WIDE_INT_PRINT_UNSIGNED
17         instead of "%lu" and casts to unsigned long.  For TYPE_ALIGN, use
18         %u instead of %lu and drop casts to unsigned long.
19         * parser.cc (cp_lexer_peek_nth_token): Use HOST_SIZE_T_PRINT_DEC
20         and casts to fmt_size_t instead of "%ld" and casts to long.
22 2024-02-09  Marek Polacek  <polacek@redhat.com>
24         PR c++/113834
25         * semantics.cc (finish_type_pack_element): Perform range checking
26         before tree_to_shwi.
28 2024-02-09  Marek Polacek  <polacek@redhat.com>
30         PR c++/98388
31         * coroutines.cc (coro_rewrite_function_body): Pass tf_warning_or_error
32         to build_throw.
33         (morph_fn_to_coro): Likewise.
34         * cp-tree.h (build_throw): Adjust.
35         * except.cc (expand_end_catch_block): Pass tf_warning_or_error to
36         build_throw.
37         (build_throw): Add a tsubst_flags_t parameter.  Use it.  Remove
38         redundant variable.  Guard an inform call.
39         * parser.cc (cp_parser_throw_expression): Pass tf_warning_or_error
40         to build_throw.
41         * pt.cc (tsubst_expr) <case THROW_EXPR>: Pass complain to build_throw.
43 2024-02-09  Patrick Palka  <ppalka@redhat.com>
45         PR c++/112580
46         * module.cc (trees_in::read_class_def): When streaming in
47         an anonymous union field of an as-base class, don't overwrite
48         ANON_AGGR_TYPE_FIELD.
50 2024-02-08  Patrick Palka  <ppalka@redhat.com>
52         PR c++/113649
53         * pt.cc (do_class_deduction): Add outer_targs parameter.
54         Substitute outer arguments into the CTAD template.
55         (do_auto_deduction): Pass outer_targs to do_class_deduction.
57 2024-02-08  Jason Merrill  <jason@redhat.com>
59         * pt.cc (create_template_parm_object): Pass TARGET_EXPR to
60         cxx_constant_value.
62 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
64         PR c++/113788
65         * parser.cc (CP_PARSER_FLAGS_PARAMETER): New enumerator.
66         (cp_parser_decl_specifier_seq): Parse RID_THIS only if
67         CP_PARSER_FLAGS_PARAMETER is set in flags.
68         (cp_parser_parameter_declaration): Or in CP_PARSER_FLAGS_PARAMETER
69         when calling cp_parser_decl_specifier_seq.
71 2024-02-06  Marek Polacek  <polacek@redhat.com>
73         * method.cc (early_check_defaulted_comparison): Add
74         auto_diagnostic_group.
76 2024-02-06  Jason Merrill  <jason@redhat.com>
78         PR c++/107291
79         * method.cc (early_check_defaulted_comparison): Fail if not friend.
81 2024-02-05  Jason Merrill  <jason@redhat.com>
83         PR c++/111286
84         * tree.cc (rvalue): Don't drop cv-quals from an array.
86 2024-02-03  Patrick Palka  <ppalka@redhat.com>
88         PR c++/110006
89         PR c++/112769
90         * constraint.cc (subst_info::quiet): Accomodate non-diagnostic
91         tsubst flags.
92         (tsubst_valid_expression_requirement): Likewise.
93         (tsubst_simple_requirement): Return a substituted _REQ node when
94         processing_template_decl.
95         (tsubst_type_requirement_1): Accomodate non-diagnostic tsubst
96         flags.
97         (tsubst_type_requirement): Return a substituted _REQ node when
98         processing_template_decl.
99         (tsubst_compound_requirement): Likewise.  Accomodate non-diagnostic
100         tsubst flags.
101         (tsubst_nested_requirement): Likewise.
102         (tsubst_requires_expr): Don't defer partial substitution when
103         processing_constraint_expression_p is true, in which case return
104         a substituted REQUIRES_EXPR.
105         * pt.cc (tsubst_expr) <case REQUIRES_EXPR>: Accomodate
106         non-diagnostic tsubst flags.
108 2024-02-02  Jason Merrill  <jason@redhat.com>
110         PR c++/110084
111         * pt.cc (tsubst_function_decl): Only check a function defaulted
112         outside the class if the class is complete.
114 2024-02-02  Jason Merrill  <jason@redhat.com>
116         PR c++/112439
117         * constexpr.cc (cxx_eval_store_expression): Check empty_base
118         before marking a CONSTRUCTOR readonly.
120 2024-02-02  Jason Merrill  <jason@redhat.com>
122         PR c++/113638
123         * cp-tree.h: Adjust comment.
124         * pt.cc (instantiate_template): Set VAR_HAD_UNKNOWN_BOUND for
125         variable template.
127 2024-02-01  Marek Polacek  <polacek@redhat.com>
129         * call.cc (reference_like_class_p): Consider even non-templates for
130         std::span-like classes.
132 2024-02-01  Patrick Palka  <ppalka@redhat.com>
134         PR c++/112737
135         * pt.cc (iterative_hash_template_arg) <case TEMPLATE_DECL>:
136         Adjust hashing to match cp_tree_equal.
137         (ctp_hasher::hash): Also hash CLASS_PLACEHOLDER_TEMPLATE.
138         * tree.cc (cp_tree_equal) <case TEMPLATE_DECL>: Return true
139         for ttp TEMPLATE_DECLs if their TEMPLATE_TEMPLATE_PARMs are
140         equivalent.
141         * typeck.cc (structural_comptypes) <case TEMPLATE_TYPE_PARM>:
142         Use cp_tree_equal to compare CLASS_PLACEHOLDER_TEMPLATE.
144 2024-02-01  Marek Polacek  <polacek@redhat.com>
146         PR c++/112437
147         * typeck.cc (treat_lvalue_as_rvalue_p): Bail out on sk_namespace in
148         the move on throw of parms loop.
150 2024-01-30  Marek Polacek  <polacek@redhat.com>
152         PR c++/110358
153         PR c++/109640
154         * call.cc (reference_like_class_p): Don't warn for std::span-like
155         classes.
157 2024-01-30  Patrick Palka  <ppalka@redhat.com>
159         PR c++/113640
160         * call.cc (keep_unused_object_arg): Punt for an xobj member
161         function.
163 2024-01-30  Patrick Palka  <ppalka@redhat.com>
165         PR c++/113644
166         * pt.cc (unify) <case INTEGER_CST>: Handle NULL_TREE type.
168 2024-01-30  Nathaniel Shead  <nathanieloshead@gmail.com>
170         PR c++/107594
171         * module.cc (get_module): Bail on empty name.
173 2024-01-29  Jason Merrill  <jason@redhat.com>
175         PR c++/113544
176         * pt.cc (instantiate_class_template): Don't partially instantiate.
177         (tsubst_stmt): Likewise.
179 2024-01-26  Nathaniel Shead  <nathanieloshead@gmail.com>
181         PR c++/113580
182         * module.cc (struct post_process_data): Create.
183         (trees_in::post_decls): Use.
184         (trees_in::post_process): Return entire vector at once.
185         Change overload to take post_process_data instead of tree.
186         (trees_out::write_function_def): Write needed flags from
187         DECL_STRUCT_FUNCTION.
188         (trees_in::read_function_def): Read them and pass to
189         post_process.
190         (module_state::read_cluster): Write flags into cfun.
192 2024-01-26  Nathaniel Shead  <nathanieloshead@gmail.com>
194         PR c++/112899
195         * cp-tree.h (note_variable_template_instantiation): Rename to...
196         (note_vague_linkage_variable): ...this.
197         * decl2.cc (note_variable_template_instantiation): Rename to...
198         (note_vague_linkage_variable): ...this.
199         * pt.cc (instantiate_decl): Rename usage of above function.
200         * module.cc (trees_in::read_var_def): Remember pending statics
201         that we stream in.
203 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
205         PR c++/113599
206         * typeck2.cc (build_m_component_ref): Use convert instead of
207         cp_convert for pointer conversion.
209 2024-01-25  Jason Merrill  <jason@redhat.com>
211         PR c++/113598
212         * init.cc (build_vec_init): Don't use {} for PMF.
214 2024-01-25  Jason Merrill  <jason@redhat.com>
216         PR c++/109227
217         * coroutines.cc (build_co_await): Use cxx_maybe_build_cleanup.
218         (build_actor_fn, process_conditional, maybe_promote_temps)
219         (morph_fn_to_coro): Likewise.
220         (expand_one_await_expression): Use build_cleanup.
222 2024-01-25  Nathaniel Shead  <nathanieloshead@gmail.com>
224         PR c++/113405
225         * module.cc (set_defining_module): Track partial specialisations
226         for all declarations.
228 2024-01-25  Nathaniel Shead  <nathanieloshead@gmail.com>
230         PR c++/100707
231         * name-lookup.cc (add_imported_namespace): Don't mark namespaces
232         as imported.
234 2024-01-24  Patrick Palka  <ppalka@redhat.com>
236         PR c++/113529
237         * call.cc (add_operator_candidates): Propagate error_mark_node
238         result after recursing to find rewritten candidates.
240 2024-01-23  Marek Polacek  <polacek@redhat.com>
242         PR c++/113256
243         PR c++/111607
244         PR c++/109640
245         * call.cc (do_warn_dangling_reference): Don't warn if the temporary
246         is of lambda type.
248 2024-01-23  Nathaniel Shead  <nathanieloshead@gmail.com>
250         PR c++/112820
251         PR c++/102607
252         * module.cc (trees_out::lang_type_bools): Write interface_only
253         and interface_unknown.
254         (trees_in::lang_type_bools): Read the above flags.
255         (trees_in::decl_value): Reset CLASSTYPE_INTERFACE_* except for
256         extern templates.
257         (trees_in::read_class_def): Remove buggy extern template
258         handling.
260 2024-01-19  Jason Merrill  <jason@redhat.com>
262         PR c++/113498
263         * pt.cc (decl_template_info): New fn.
264         (get_template_info): Use it.
266 2024-01-19  Jason Merrill  <jason@redhat.com>
268         PR c++/112632
269         PR c++/112594
270         PR c++/111357
271         PR c++/104594
272         PR c++/67898
273         * cp-tree.h (IMPLICIT_CONV_EXPR_FORCED): New.
274         * pt.cc (expand_integer_pack): Remove 111357 workaround.
275         (maybe_convert_nontype_argument): Add force parm.
276         (convert_template_argument): Handle alias template args
277         specially.
278         (tsubst_expr): Don't ignore IMPLICIT_CONV_EXPR_NONTYPE_ARG.
279         * error.cc (dump_expr) [CASE_CONVERT]: Handle null optype.
281 2024-01-18  Marek Polacek  <polacek@redhat.com>
283         PR c++/113389
284         * decl.cc (grokdeclarator) <case cdk_function>: Set TREE_PURPOSE to
285         NULL_TREE when emitting an error.
287 2024-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
289         PR c++/112588
290         * module.cc (trees_in::read_function_def): Don't overwrite
291         arguments.
293 2024-01-17  Patrick Palka  <ppalka@redhat.com>
295         PR c++/113242
296         PR c++/99493
297         * pt.cc (invalid_tparm_referent_p) <case ADDR_EXPR>: Suppress
298         DECL_ARTIFICIAL rejection test for class NTTP objects.
300 2024-01-16  Nathaniel Shead  <nathanieloshead@gmail.com>
302         PR c++/113292
303         * decl2.cc (get_tls_wrapper_fn): Set DECL_CONTEXT.
304         (c_parse_final_cleanups): Suppress warning for no definition of
305         TLS wrapper functions in header modules.
306         * module.cc (trees_out::lang_decl_vals): Write wrapped variable
307         for TLS wrapper functions.
308         (trees_in::lang_decl_vals): Read it.
309         (trees_out::decl_value): Write TLS model for thread-local vars.
310         (trees_in::decl_value): Read it for new decls. Remember to emit
311         definitions of TLS wrapper functions later.
313 2024-01-16  Nathaniel Shead  <nathanieloshead@gmail.com>
315         * name-lookup.h (enum scope_kind): Add 'sk_count'.
316         * name-lookup.cc (cp_binding_level_descriptor): Add missing
317         scope kinds. Add assertion that the list is up to date. Fix
318         handling of explicit_spec_p.
320 2024-01-16  Marek Polacek  <polacek@redhat.com>
322         * decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic
323         messages.
325 2024-01-16  Marek Polacek  <polacek@redhat.com>
327         PR c++/113340
328         * decl.cc (grokdeclarator) <case cdk_function>: Clear
329         is_xobj_member_function in case of an error.
331 2024-01-16  waffl3x  <waffl3x@protonmail.com>
333         PR c++/113307
334         * parser.cc (cp_parser_parameter_declaration): Reject packs
335         on xobj params.
337 2024-01-15  Marek Polacek  <polacek@redhat.com>
339         PR c++/110065
340         * parser.cc (cp_parser_template_type_arg): Add auto checking.
342 2024-01-15  Patrick Palka  <ppalka@redhat.com>
344         * parser.cc (cp_parser_check_access_in_redeclaration): Don't
345         check access for a partial or explicit specialization.
346         * pt.cc (maybe_new_partial_specialization): Don't set TREE_PRIVATE
347         or TREE_PROTECTED on the newly created partial specialization.
349 2024-01-15  Patrick Palka  <ppalka@redhat.com>
351         PR c++/104634
352         * pt.cc (maybe_new_partial_specialization): Propagate TREE_PUBLIC
353         to the newly created partial specialization.
355 2024-01-15  Patrick Palka  <ppalka@redhat.com>
357         PR c++/109899
358         * init.cc (build_vec_delete_1): Assume expr_noexcept_p returns
359         false in a template context.
361 2024-01-13  Jakub Jelinek  <jakub@redhat.com>
363         * mangle.cc (write_nested_name): Mangle explicit object
364         member functions with H as per
365         https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal.
367 2024-01-12  Jason Merrill  <jason@redhat.com>
369         PR c++/113038
370         * name-lookup.cc (lookup_elaborated_type): Look for bindings
371         in the global namespace in the ABI namespace.
373 2024-01-12  Jason Merrill  <jason@redhat.com>
375         * call.cc (reversed_match): New.
376         (enum class pmatch): New enum.
377         (cand_parms_match): Add match_kind parm.
378         (object_parms_correspond): Add fn parms.
379         (joust): Adjust.
380         * class.cc (xobj_iobj_parameters_correspond): Rename to...
381         (iobj_parm_corresponds_to): ...this.  Take the other
382         type instead of a second function.
383         (object_parms_correspond): Adjust.
384         * cp-tree.h (iobj_parm_corresponds_to): Declare.
386 2024-01-11  Jason Merrill  <jason@redhat.com>
388         PR c++/113191
389         * class.cc (xobj_iobj_parameters_correspond): Add context parm.
390         (object_parms_correspond): Factor out of...
391         (add_method): ...here.
392         * method.cc (defaulted_late_check): Use it.
393         * call.cc (class_of_implicit_object): New.
394         (object_parms_correspond): Overload taking two candidates.
395         (cand_parms_match): Use it.
396         (joust): Check reversed before comparing constraints.
397         * cp-tree.h (object_parms_correspond): Declare.
399 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
401         * parser.cc (cp_parser_pragma): Initialize to false.
403 2024-01-09  Jason Merrill  <jason@redhat.com>
405         * semantics.cc (is_object_parameter): New.
406         * cp-tree.h (is_object_parameter): Declare.
407         * call.cc (maybe_warn_class_memaccess): Use it.
408         * search.cc (field_access_p): Use it.
409         (class_of_object_parm): New.
410         (field_accessor_p): Adjust for explicit object parms.
412 2024-01-09  Jason Merrill  <jason@redhat.com>
414         * call.cc (build_over_call): Refactor handle_arg lambda.
415         * class.cc (xobj_iobj_parameters_correspond): Fix FIXME.
416         * method.cc (defaulted_late_check): Adjust comments.
418 2024-01-09  waffl3x  <waffl3x@protonmail.com>
420         PR c++/102609
421         PR c++/102609
422         C++23 P0847R7 (deducing this) - CWG2586.
423         * decl.cc (copy_fn_p): Accept xobj copy assignment functions.
424         (move_signature_fn_p): Accept xobj move assignment functions.
425         * method.cc (do_build_copy_assign): Handle defaulted xobj member
426         functions.
427         (defaulted_late_check): Comment.
428         (defaultable_fn_check): Comment.
430 2024-01-09  waffl3x  <waffl3x@protonmail.com>
432         PR c++/102609
433         PR c++/102609
434         C++23 P0847R7 (deducing this) - xobj lambdas.
435         * lambda.cc (build_capture_proxy): Don't fold direct object types.
436         * parser.cc (cp_parser_lambda_declarator_opt): Handle xobj lambdas,
437         diagnostics.  Comments also updated.
438         * pt.cc (tsubst_function_decl): Handle xobj lambdas.  Check object
439         type of xobj lambda call operator, diagnose incorrect types.
440         (tsubst_lambda_expr): Update comment.
441         * semantics.cc (finish_decltype_type): Also consider by-value object
442         parameter qualifications.
444 2024-01-09  waffl3x  <waffl3x@protonmail.com>
446         PR c++/102609
447         PR c++/102609
448         C++23 P0847R7 (deducing this) - diagnostics.
449         * class.cc (resolve_address_of_overloaded_function): Diagnostics.
450         * cp-tree.h (TFF_XOBJ_FUNC): Define.
451         * decl.cc (grokfndecl): Diagnostics.
452         (grokdeclarator): Diagnostics.
453         * error.cc (dump_aggr_type): Pass TFF_XOBJ_FUNC.
454         (dump_lambda_function): Formatting for xobj lambda.
455         (dump_function_decl): Pass TFF_XOBJ_FUNC.
456         (dump_parameters): Formatting for xobj member functions.
457         (function_category): Formatting for xobj member functions.
458         * parser.cc (cp_parser_decl_specifier_seq): Diagnostics.
459         (cp_parser_parameter_declaration): Diagnostics.
460         * search.cc (look_for_overrides_here): Make xobj member functions
461         override.
462         (look_for_overrides_r): Reject an overriding xobj member function
463         and diagnose it.
464         * semantics.cc (finish_this_expr): Diagnostics.
465         * typeck.cc (cp_build_addr_expr_1): Diagnostics.
467 2024-01-09  waffl3x  <waffl3x@protonmail.com>
469         PR c++/102609
470         PR c++/102609
471         C++23 P0847R7 (deducing this) - initial functionality.
472         * class.cc (xobj_iobj_parameters_correspond): New function, checks
473         for corresponding object parameters between xobj and iobj member
474         functions.
475         (add_method): Handle object parameters of xobj member functions, use
476         xobj_iobj_parameters_correspond.
477         * call.cc (build_over_call): Refactor, handle xobj member functions.
478         (cand_parms_match): Handle object parameters of xobj and iobj member
479         functions, use xobj_iobj_parameters_correspond.
480         * cp-tree.h (enum cp_decl_spec): Add ds_this, add comments.
481         * decl.cc (grokfndecl): Add xobj_func_p parameter.  For xobj member
482         functions, Set xobj_flag, don't set static_function flag.
483         (grokdeclarator): Handle xobj member functions, tell grokfndecl.
484         (grok_op_properties): Don't error for xobj operators.
485         * parser.cc (cp_parser_decl_specifier_seq): Handle this specifier.
486         (cp_parser_parameter_declaration): Set default argument to
487         "this_identifier" for xobj parameters.
488         (set_and_check_decl_spec_loc): Add "this", add comments.
489         * tree.cc (build_min_non_dep_op_overload): Handle xobj operators.
490         * typeck.cc (cp_build_addr_expr_1): Handle address-of xobj member
491         functions.
493 2024-01-09  waffl3x  <waffl3x@protonmail.com>
494             Jason Merrill  <jason@redhat.com>
496         PR c++/102609
497         * cp-tree.h (struct lang_decl_fn): New data member.
498         (DECL_NONSTATIC_MEMBER_FUNCTION_P): Poison.
499         (DECL_IOBJ_MEMBER_FUNCTION_P): Define.
500         (DECL_FUNCTION_XOBJ_FLAG): Define.
501         (DECL_XOBJ_MEMBER_FUNCTION_P): Define.
502         (DECL_OBJECT_MEMBER_FUNCTION_P): Define.
503         (DECL_FUNCTION_MEMBER_P): Don't use
504         DECL_NONSTATIC_MEMBER_FUNCTION_P.
505         (DECL_CONST_MEMFUNC_P): Likewise.
506         (DECL_VOLATILE_MEMFUNC_P): Likewise.
507         (DECL_NONSTATIC_MEMBER_P): Likewise.
508         * module.cc (trees_out::lang_decl_bools): Handle xobj_flag.
509         (trees_in::lang_decl_bools): Handle xobj_flag.
510         * call.cc (build_this_conversion)
511         (add_function_candidate)
512         (add_template_candidate_real)
513         (add_candidates)
514         (maybe_warn_class_memaccess)
515         (cand_parms_match)
516         (joust)
517         (do_warn_dangling_reference)
518         * class.cc (finalize_literal_type_property)
519         (finish_struct)
520         (resolve_address_of_overloaded_function)
521         * constexpr.cc (is_valid_constexpr_fn)
522         (cxx_bind_parameters_in_call)
523         * contracts.cc (build_contract_condition_function)
524         * cp-objcp-common.cc (cp_decl_dwarf_attribute)
525         * cxx-pretty-print.cc (cxx_pretty_printer::postfix_expression)
526         (cxx_pretty_printer::declaration_specifiers)
527         (cxx_pretty_printer::direct_declarator)
528         * decl.cc (cp_finish_decl)
529         (grok_special_member_properties)
530         (start_preparsed_function)
531         (record_key_method_defined)
532         * decl2.cc (cp_handle_deprecated_or_unavailable)
533         * init.cc (find_uninit_fields_r)
534         (build_offset_ref)
535         * lambda.cc (lambda_expr_this_capture)
536         (maybe_generic_this_capture)
537         (nonlambda_method_basetype)
538         * mangle.cc (write_nested_name)
539         * method.cc (early_check_defaulted_comparison)
540         (skip_artificial_parms_for)
541         (num_artificial_parms_for)
542         * pt.cc (is_specialization_of_friend)
543         (determine_specialization)
544         (copy_default_args_to_explicit_spec)
545         (check_explicit_specialization)
546         (tsubst_contract_attribute)
547         (check_non_deducible_conversions)
548         (more_specialized_fn)
549         (maybe_instantiate_noexcept)
550         (register_parameter_specializations)
551         (value_dependent_expression_p)
552         * search.cc (shared_member_p)
553         (lookup_member)
554         (field_access_p)
555         * semantics.cc (finish_omp_declare_simd_methods)
556         * tree.cc (lvalue_kind)
557         * typeck.cc (invalid_nonstatic_memfn_p): Don't use
558         DECL_NONSTATIC_MEMBER_FUNCTION_P.
560 2024-01-09  Julian Brown  <julian@codesourcery.com>
562         * constexpr.cc (potential_consant_expression_1): Handle
563         OMP_ARRAY_SECTION.
564         * cp-tree.h (grok_omp_array_section, build_omp_array_section): Add
565         prototypes.
566         * decl2.cc (grok_omp_array_section): New function.
567         * error.cc (dump_expr): Handle OMP_ARRAY_SECTION.
568         * parser.cc (cp_parser_new): Initialize parser->omp_array_section_p.
569         (cp_parser_statement_expr): Disallow array sections.
570         (cp_parser_postfix_open_square_expression): Support OMP_ARRAY_SECTION
571         parsing.
572         (cp_parser_parenthesized_expression_list, cp_parser_lambda_expression,
573         cp_parser_braced_list): Disallow array sections.
574         (cp_parser_omp_var_list_no_open): Remove ALLOW_DEREF parameter, add
575         MAP_LVALUE in its place.  Support generalised lvalue parsing for
576         OpenMP map, to and from clauses.  Use OMP_ARRAY_SECTION
577         code instead of TREE_LIST to represent OpenMP array sections.
578         (cp_parser_omp_var_list): Remove ALLOW_DEREF parameter, add MAP_LVALUE.
579         Pass to cp_parser_omp_var_list_no_open.
580         (cp_parser_oacc_data_clause): Update call to cp_parser_omp_var_list.
581         (cp_parser_omp_clause_map): Add sk_omp scope around
582         cp_parser_omp_var_list_no_open call.
583         * parser.h (cp_parser): Add omp_array_section_p field.
584         * pt.cc (tsubst, tsubst_copy, tsubst_omp_clause_decl,
585         tsubst_copy_and_build): Add OMP_ARRAY_SECTION support.
586         * semantics.cc (handle_omp_array_sections_1, handle_omp_array_sections,
587         cp_oacc_check_attachments, finish_omp_clauses): Use OMP_ARRAY_SECTION
588         instead of TREE_LIST where appropriate.  Handle more types of map
589         expression.
590         * typeck.cc (build_omp_array_section): New function.
592 2024-01-07  Nathaniel Shead  <nathanieloshead@gmail.com>
594         * module.cc (trees_out::write_var_def): Only write initializers
595         in header modules.
597 2024-01-07  Nathaniel Shead  <nathanieloshead@gmail.com>
599         PR c++/109679
600         * module.cc (depset::hash::add_binding_entity): Don't skip names
601         in the GMF if they've been exported with a using declaration.
603 2024-01-07  Nathaniel Shead  <nathanieloshead@gmail.com>
605         PR c++/110808
606         * parser.cc (cp_parser_module_name): Rewrite to handle
607         module-names and module-partitions independently.
608         (cp_parser_module_partition): New function.
609         (cp_parser_module_declaration): Parse module partitions
610         explicitly. Don't change state if parsing module decl failed.
611         (cp_parser_import_declaration): Handle different kinds of
612         import-declarations locally.
614 2024-01-03  Patrick Palka  <ppalka@redhat.com>
616         PR c++/113064
617         * call.cc (reference_binding): Still try a conversion via a
618         temporary if a direct conversion was bad.
620 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
622         * parser.cc (cp_parser_omp_clause_name): Move handling of indirect
623         clause to correspond to alphabetical order.
626 Copyright (C) 2024 Free Software Foundation, Inc.
628 Copying and distribution of this file, with or without modification,
629 are permitted in any medium without royalty provided the copyright
630 notice and this notice are preserved.