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