]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/cp/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
1 2024-02-10 Marek Polacek <polacek@redhat.com>
2
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.
9
10 2024-02-10 Jakub Jelinek <jakub@redhat.com>
11
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.
21
22 2024-02-09 Marek Polacek <polacek@redhat.com>
23
24 PR c++/113834
25 * semantics.cc (finish_type_pack_element): Perform range checking
26 before tree_to_shwi.
27
28 2024-02-09 Marek Polacek <polacek@redhat.com>
29
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.
42
43 2024-02-09 Patrick Palka <ppalka@redhat.com>
44
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.
49
50 2024-02-08 Patrick Palka <ppalka@redhat.com>
51
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.
56
57 2024-02-08 Jason Merrill <jason@redhat.com>
58
59 * pt.cc (create_template_parm_object): Pass TARGET_EXPR to
60 cxx_constant_value.
61
62 2024-02-06 Jakub Jelinek <jakub@redhat.com>
63
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.
70
71 2024-02-06 Marek Polacek <polacek@redhat.com>
72
73 * method.cc (early_check_defaulted_comparison): Add
74 auto_diagnostic_group.
75
76 2024-02-06 Jason Merrill <jason@redhat.com>
77
78 PR c++/107291
79 * method.cc (early_check_defaulted_comparison): Fail if not friend.
80
81 2024-02-05 Jason Merrill <jason@redhat.com>
82
83 PR c++/111286
84 * tree.cc (rvalue): Don't drop cv-quals from an array.
85
86 2024-02-03 Patrick Palka <ppalka@redhat.com>
87
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.
107
108 2024-02-02 Jason Merrill <jason@redhat.com>
109
110 PR c++/110084
111 * pt.cc (tsubst_function_decl): Only check a function defaulted
112 outside the class if the class is complete.
113
114 2024-02-02 Jason Merrill <jason@redhat.com>
115
116 PR c++/112439
117 * constexpr.cc (cxx_eval_store_expression): Check empty_base
118 before marking a CONSTRUCTOR readonly.
119
120 2024-02-02 Jason Merrill <jason@redhat.com>
121
122 PR c++/113638
123 * cp-tree.h: Adjust comment.
124 * pt.cc (instantiate_template): Set VAR_HAD_UNKNOWN_BOUND for
125 variable template.
126
127 2024-02-01 Marek Polacek <polacek@redhat.com>
128
129 * call.cc (reference_like_class_p): Consider even non-templates for
130 std::span-like classes.
131
132 2024-02-01 Patrick Palka <ppalka@redhat.com>
133
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.
143
144 2024-02-01 Marek Polacek <polacek@redhat.com>
145
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.
149
150 2024-01-30 Marek Polacek <polacek@redhat.com>
151
152 PR c++/110358
153 PR c++/109640
154 * call.cc (reference_like_class_p): Don't warn for std::span-like
155 classes.
156
157 2024-01-30 Patrick Palka <ppalka@redhat.com>
158
159 PR c++/113640
160 * call.cc (keep_unused_object_arg): Punt for an xobj member
161 function.
162
163 2024-01-30 Patrick Palka <ppalka@redhat.com>
164
165 PR c++/113644
166 * pt.cc (unify) <case INTEGER_CST>: Handle NULL_TREE type.
167
168 2024-01-30 Nathaniel Shead <nathanieloshead@gmail.com>
169
170 PR c++/107594
171 * module.cc (get_module): Bail on empty name.
172
173 2024-01-29 Jason Merrill <jason@redhat.com>
174
175 PR c++/113544
176 * pt.cc (instantiate_class_template): Don't partially instantiate.
177 (tsubst_stmt): Likewise.
178
179 2024-01-26 Nathaniel Shead <nathanieloshead@gmail.com>
180
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.
191
192 2024-01-26 Nathaniel Shead <nathanieloshead@gmail.com>
193
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.
202
203 2024-01-25 Jakub Jelinek <jakub@redhat.com>
204
205 PR c++/113599
206 * typeck2.cc (build_m_component_ref): Use convert instead of
207 cp_convert for pointer conversion.
208
209 2024-01-25 Jason Merrill <jason@redhat.com>
210
211 PR c++/113598
212 * init.cc (build_vec_init): Don't use {} for PMF.
213
214 2024-01-25 Jason Merrill <jason@redhat.com>
215
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.
221
222 2024-01-25 Nathaniel Shead <nathanieloshead@gmail.com>
223
224 PR c++/113405
225 * module.cc (set_defining_module): Track partial specialisations
226 for all declarations.
227
228 2024-01-25 Nathaniel Shead <nathanieloshead@gmail.com>
229
230 PR c++/100707
231 * name-lookup.cc (add_imported_namespace): Don't mark namespaces
232 as imported.
233
234 2024-01-24 Patrick Palka <ppalka@redhat.com>
235
236 PR c++/113529
237 * call.cc (add_operator_candidates): Propagate error_mark_node
238 result after recursing to find rewritten candidates.
239
240 2024-01-23 Marek Polacek <polacek@redhat.com>
241
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.
247
248 2024-01-23 Nathaniel Shead <nathanieloshead@gmail.com>
249
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.
259
260 2024-01-19 Jason Merrill <jason@redhat.com>
261
262 PR c++/113498
263 * pt.cc (decl_template_info): New fn.
264 (get_template_info): Use it.
265
266 2024-01-19 Jason Merrill <jason@redhat.com>
267
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.
280
281 2024-01-18 Marek Polacek <polacek@redhat.com>
282
283 PR c++/113389
284 * decl.cc (grokdeclarator) <case cdk_function>: Set TREE_PURPOSE to
285 NULL_TREE when emitting an error.
286
287 2024-01-17 Nathaniel Shead <nathanieloshead@gmail.com>
288
289 PR c++/112588
290 * module.cc (trees_in::read_function_def): Don't overwrite
291 arguments.
292
293 2024-01-17 Patrick Palka <ppalka@redhat.com>
294
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.
299
300 2024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
301
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.
312
313 2024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
314
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.
319
320 2024-01-16 Marek Polacek <polacek@redhat.com>
321
322 * decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic
323 messages.
324
325 2024-01-16 Marek Polacek <polacek@redhat.com>
326
327 PR c++/113340
328 * decl.cc (grokdeclarator) <case cdk_function>: Clear
329 is_xobj_member_function in case of an error.
330
331 2024-01-16 waffl3x <waffl3x@protonmail.com>
332
333 PR c++/113307
334 * parser.cc (cp_parser_parameter_declaration): Reject packs
335 on xobj params.
336
337 2024-01-15 Marek Polacek <polacek@redhat.com>
338
339 PR c++/110065
340 * parser.cc (cp_parser_template_type_arg): Add auto checking.
341
342 2024-01-15 Patrick Palka <ppalka@redhat.com>
343
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.
348
349 2024-01-15 Patrick Palka <ppalka@redhat.com>
350
351 PR c++/104634
352 * pt.cc (maybe_new_partial_specialization): Propagate TREE_PUBLIC
353 to the newly created partial specialization.
354
355 2024-01-15 Patrick Palka <ppalka@redhat.com>
356
357 PR c++/109899
358 * init.cc (build_vec_delete_1): Assume expr_noexcept_p returns
359 false in a template context.
360
361 2024-01-13 Jakub Jelinek <jakub@redhat.com>
362
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.
366
367 2024-01-12 Jason Merrill <jason@redhat.com>
368
369 PR c++/113038
370 * name-lookup.cc (lookup_elaborated_type): Look for bindings
371 in the global namespace in the ABI namespace.
372
373 2024-01-12 Jason Merrill <jason@redhat.com>
374
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.
385
386 2024-01-11 Jason Merrill <jason@redhat.com>
387
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.
398
399 2024-01-10 Tamar Christina <tamar.christina@arm.com>
400
401 * parser.cc (cp_parser_pragma): Initialize to false.
402
403 2024-01-09 Jason Merrill <jason@redhat.com>
404
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.
411
412 2024-01-09 Jason Merrill <jason@redhat.com>
413
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.
417
418 2024-01-09 waffl3x <waffl3x@protonmail.com>
419
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.
429
430 2024-01-09 waffl3x <waffl3x@protonmail.com>
431
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.
443
444 2024-01-09 waffl3x <waffl3x@protonmail.com>
445
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.
466
467 2024-01-09 waffl3x <waffl3x@protonmail.com>
468
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.
492
493 2024-01-09 waffl3x <waffl3x@protonmail.com>
494 Jason Merrill <jason@redhat.com>
495
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.
559
560 2024-01-09 Julian Brown <julian@codesourcery.com>
561
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.
591
592 2024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
593
594 * module.cc (trees_out::write_var_def): Only write initializers
595 in header modules.
596
597 2024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
598
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.
602
603 2024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
604
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.
613
614 2024-01-03 Patrick Palka <ppalka@redhat.com>
615
616 PR c++/113064
617 * call.cc (reference_binding): Still try a conversion via a
618 temporary if a direct conversion was bad.
619
620 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
621
622 * parser.cc (cp_parser_omp_clause_name): Move handling of indirect
623 clause to correspond to alphabetical order.
624
625 \f
626 Copyright (C) 2024 Free Software Foundation, Inc.
627
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.