1 2024-02-23 Jakub Jelinek <jakub@redhat.com>
4 * cp-gimplify.cc (cp_fold): For targetm.cxx.cdtor_returns_this ()
5 wrap r into a COMPOUND_EXPR and return folded CALL_EXPR_ARG (x, 0).
7 2024-02-19 Patrick Palka <ppalka@redhat.com>
10 * constraint.cc (tsubst_compound_requirement): Don't check
11 the noexcept condition or the return-type-requirement when
12 partially substituting.
14 2024-02-17 Marek Polacek <polacek@redhat.com>
17 * search.cc (maybe_check_overriding_exception_spec): Defer checking
18 when a noexcept couldn't be instantiated & evaluated to false/true.
20 2024-02-16 Marek Polacek <polacek@redhat.com>
23 * search.cc (maybe_check_overriding_exception_spec): Don't error about
24 a looser exception specification if the overrider is deleted.
26 2024-02-16 Marek Polacek <polacek@redhat.com>
30 * typeck.cc (treat_lvalue_as_rvalue_p): Update code to better
31 reflect [expr.prim.id.unqual]#4.2.
33 2024-02-16 Jakub Jelinek <jakub@redhat.com>
36 * parser.cc (cp_parser_parameter_declaration): Diagnose this specifier
37 on template parameter declaration.
39 2024-02-16 Patrick Palka <ppalka@redhat.com>
41 * module.cc (trees_out::core_bools): Stream TREE_UNAVAILABLE.
42 (trees_in::core_bools): Likewise.
43 (trees_out::core_vals): Stream LAMBDA_EXPR_REGEN_INFO.
44 (trees_in::core_vals): Likewise.
46 2024-02-14 Nathaniel Shead <nathanieloshead@gmail.com>
49 * decl.cc (make_rtl_for_nonlocal_decl): Defer inline variables.
50 * decl2.cc (import_export_decl): Support inline variables.
52 2024-02-14 Patrick Palka <ppalka@redhat.com>
56 * method.cc (synthesized_method_walk): Use maybe_push_to_top_level.
58 2024-02-14 Nathaniel Shead <nathanieloshead@gmail.com>
61 * decl.cc (start_enum): Reorder check for redeclaring in module.
62 Add missing auto_diagnostic_groups.
64 2024-02-13 Marek Polacek <polacek@redhat.com>
68 * parser.cc (cp_parser_member_declaration): Only pedwarn about an extra
71 2024-02-13 Tobias Burnus <tburnus@baylibre.com>
74 * parser.cc (cp_parser_omp_context_selector): Handle splitting of
75 OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
77 2024-02-13 Patrick Palka <ppalka@redhat.com>
79 * Make-lang.in (CFLAGS-cp/module.o): Add $(ZLIBINC).
80 * module.cc: Include <zlib.h>.
81 (bytes::calc_crc): Use crc32 from zlib.
82 (bytes_out::set_crc): Use crc32_combine from zlib.
84 2024-02-13 Patrick Palka <ppalka@redhat.com>
86 * module.cc (depset::hash::add_specializations): Use
87 STRIP_TEMPLATE consistently.
88 (get_originating_module_decl): Handle class-scope CONST_DECL.
90 2024-02-13 Patrick Palka <ppalka@redhat.com>
92 * lambda.cc (lambda_function): Call get_class_binding_direct
93 instead of lookup_member to sidestep lazy loading.
94 * name-lookup.cc (check_local_shadow): Punt if we're in a
95 function context that's not actual parsing.
97 2024-02-13 Jason Merrill <jason@redhat.com>
100 * pt.cc (process_partial_specialization): Return early
103 2024-02-13 Marek Polacek <polacek@redhat.com>
106 * except.cc (expand_start_catch_block): Pass tf_warning_or_error to
107 is_admissible_throw_operand_or_catch_parameter.
108 (build_throw): Pass complain to
109 is_admissible_throw_operand_or_catch_parameter.
110 (complete_ptr_ref_or_void_ptr_p): Add a tsubst_flags_t parameter. Use
111 it. Return bool. Call complete_type_or_maybe_complain instead of
112 complete_type_or_else.
113 (is_admissible_throw_operand_or_catch_parameter): Add a tsubst_flags_t
114 parameter. Use it. Guard error calls.
116 2024-02-13 Alex Coplan <alex.coplan@arm.com>
119 * cp-objcp-common.cc (cp_feature_table): Remove entry for
120 cxx_constexpr_string_builtins.
122 2024-02-12 Marek Polacek <polacek@redhat.com>
125 * constexpr.cc (cxx_eval_switch_expr): If the condition doesn't reduce
126 to an INTEGER_CST, consider it non-constant.
128 2024-02-10 Marek Polacek <polacek@redhat.com>
133 * parser.cc (cp_parser_unqualified_id): Downgrade the DR2237 error to
135 (cp_parser_constructor_declarator_p): Likewise.
137 2024-02-10 Jakub Jelinek <jakub@redhat.com>
139 * tree.cc (debug_binfo): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld"
141 * pt.cc (print_template_statistics): Use HOST_SIZE_T_PRINT_DEC
142 and casts to fmt_size_t instead of "%ld" and casts to long.
143 * class.cc (dump_class_hierarchy_1): Use HOST_WIDE_INT_PRINT_UNSIGNED
144 instead of "%lu" and casts to unsigned long. For TYPE_ALIGN, use
145 %u instead of %lu and drop casts to unsigned long.
146 * parser.cc (cp_lexer_peek_nth_token): Use HOST_SIZE_T_PRINT_DEC
147 and casts to fmt_size_t instead of "%ld" and casts to long.
149 2024-02-09 Marek Polacek <polacek@redhat.com>
152 * semantics.cc (finish_type_pack_element): Perform range checking
155 2024-02-09 Marek Polacek <polacek@redhat.com>
158 * coroutines.cc (coro_rewrite_function_body): Pass tf_warning_or_error
160 (morph_fn_to_coro): Likewise.
161 * cp-tree.h (build_throw): Adjust.
162 * except.cc (expand_end_catch_block): Pass tf_warning_or_error to
164 (build_throw): Add a tsubst_flags_t parameter. Use it. Remove
165 redundant variable. Guard an inform call.
166 * parser.cc (cp_parser_throw_expression): Pass tf_warning_or_error
168 * pt.cc (tsubst_expr) <case THROW_EXPR>: Pass complain to build_throw.
170 2024-02-09 Patrick Palka <ppalka@redhat.com>
173 * module.cc (trees_in::read_class_def): When streaming in
174 an anonymous union field of an as-base class, don't overwrite
175 ANON_AGGR_TYPE_FIELD.
177 2024-02-08 Patrick Palka <ppalka@redhat.com>
180 * pt.cc (do_class_deduction): Add outer_targs parameter.
181 Substitute outer arguments into the CTAD template.
182 (do_auto_deduction): Pass outer_targs to do_class_deduction.
184 2024-02-08 Jason Merrill <jason@redhat.com>
186 * pt.cc (create_template_parm_object): Pass TARGET_EXPR to
189 2024-02-06 Jakub Jelinek <jakub@redhat.com>
192 * parser.cc (CP_PARSER_FLAGS_PARAMETER): New enumerator.
193 (cp_parser_decl_specifier_seq): Parse RID_THIS only if
194 CP_PARSER_FLAGS_PARAMETER is set in flags.
195 (cp_parser_parameter_declaration): Or in CP_PARSER_FLAGS_PARAMETER
196 when calling cp_parser_decl_specifier_seq.
198 2024-02-06 Marek Polacek <polacek@redhat.com>
200 * method.cc (early_check_defaulted_comparison): Add
201 auto_diagnostic_group.
203 2024-02-06 Jason Merrill <jason@redhat.com>
206 * method.cc (early_check_defaulted_comparison): Fail if not friend.
208 2024-02-05 Jason Merrill <jason@redhat.com>
211 * tree.cc (rvalue): Don't drop cv-quals from an array.
213 2024-02-03 Patrick Palka <ppalka@redhat.com>
217 * constraint.cc (subst_info::quiet): Accomodate non-diagnostic
219 (tsubst_valid_expression_requirement): Likewise.
220 (tsubst_simple_requirement): Return a substituted _REQ node when
221 processing_template_decl.
222 (tsubst_type_requirement_1): Accomodate non-diagnostic tsubst
224 (tsubst_type_requirement): Return a substituted _REQ node when
225 processing_template_decl.
226 (tsubst_compound_requirement): Likewise. Accomodate non-diagnostic
228 (tsubst_nested_requirement): Likewise.
229 (tsubst_requires_expr): Don't defer partial substitution when
230 processing_constraint_expression_p is true, in which case return
231 a substituted REQUIRES_EXPR.
232 * pt.cc (tsubst_expr) <case REQUIRES_EXPR>: Accomodate
233 non-diagnostic tsubst flags.
235 2024-02-02 Jason Merrill <jason@redhat.com>
238 * pt.cc (tsubst_function_decl): Only check a function defaulted
239 outside the class if the class is complete.
241 2024-02-02 Jason Merrill <jason@redhat.com>
244 * constexpr.cc (cxx_eval_store_expression): Check empty_base
245 before marking a CONSTRUCTOR readonly.
247 2024-02-02 Jason Merrill <jason@redhat.com>
250 * cp-tree.h: Adjust comment.
251 * pt.cc (instantiate_template): Set VAR_HAD_UNKNOWN_BOUND for
254 2024-02-01 Marek Polacek <polacek@redhat.com>
256 * call.cc (reference_like_class_p): Consider even non-templates for
257 std::span-like classes.
259 2024-02-01 Patrick Palka <ppalka@redhat.com>
262 * pt.cc (iterative_hash_template_arg) <case TEMPLATE_DECL>:
263 Adjust hashing to match cp_tree_equal.
264 (ctp_hasher::hash): Also hash CLASS_PLACEHOLDER_TEMPLATE.
265 * tree.cc (cp_tree_equal) <case TEMPLATE_DECL>: Return true
266 for ttp TEMPLATE_DECLs if their TEMPLATE_TEMPLATE_PARMs are
268 * typeck.cc (structural_comptypes) <case TEMPLATE_TYPE_PARM>:
269 Use cp_tree_equal to compare CLASS_PLACEHOLDER_TEMPLATE.
271 2024-02-01 Marek Polacek <polacek@redhat.com>
274 * typeck.cc (treat_lvalue_as_rvalue_p): Bail out on sk_namespace in
275 the move on throw of parms loop.
277 2024-01-30 Marek Polacek <polacek@redhat.com>
281 * call.cc (reference_like_class_p): Don't warn for std::span-like
284 2024-01-30 Patrick Palka <ppalka@redhat.com>
287 * call.cc (keep_unused_object_arg): Punt for an xobj member
290 2024-01-30 Patrick Palka <ppalka@redhat.com>
293 * pt.cc (unify) <case INTEGER_CST>: Handle NULL_TREE type.
295 2024-01-30 Nathaniel Shead <nathanieloshead@gmail.com>
298 * module.cc (get_module): Bail on empty name.
300 2024-01-29 Jason Merrill <jason@redhat.com>
303 * pt.cc (instantiate_class_template): Don't partially instantiate.
304 (tsubst_stmt): Likewise.
306 2024-01-26 Nathaniel Shead <nathanieloshead@gmail.com>
309 * module.cc (struct post_process_data): Create.
310 (trees_in::post_decls): Use.
311 (trees_in::post_process): Return entire vector at once.
312 Change overload to take post_process_data instead of tree.
313 (trees_out::write_function_def): Write needed flags from
314 DECL_STRUCT_FUNCTION.
315 (trees_in::read_function_def): Read them and pass to
317 (module_state::read_cluster): Write flags into cfun.
319 2024-01-26 Nathaniel Shead <nathanieloshead@gmail.com>
322 * cp-tree.h (note_variable_template_instantiation): Rename to...
323 (note_vague_linkage_variable): ...this.
324 * decl2.cc (note_variable_template_instantiation): Rename to...
325 (note_vague_linkage_variable): ...this.
326 * pt.cc (instantiate_decl): Rename usage of above function.
327 * module.cc (trees_in::read_var_def): Remember pending statics
330 2024-01-25 Jakub Jelinek <jakub@redhat.com>
333 * typeck2.cc (build_m_component_ref): Use convert instead of
334 cp_convert for pointer conversion.
336 2024-01-25 Jason Merrill <jason@redhat.com>
339 * init.cc (build_vec_init): Don't use {} for PMF.
341 2024-01-25 Jason Merrill <jason@redhat.com>
344 * coroutines.cc (build_co_await): Use cxx_maybe_build_cleanup.
345 (build_actor_fn, process_conditional, maybe_promote_temps)
346 (morph_fn_to_coro): Likewise.
347 (expand_one_await_expression): Use build_cleanup.
349 2024-01-25 Nathaniel Shead <nathanieloshead@gmail.com>
352 * module.cc (set_defining_module): Track partial specialisations
353 for all declarations.
355 2024-01-25 Nathaniel Shead <nathanieloshead@gmail.com>
358 * name-lookup.cc (add_imported_namespace): Don't mark namespaces
361 2024-01-24 Patrick Palka <ppalka@redhat.com>
364 * call.cc (add_operator_candidates): Propagate error_mark_node
365 result after recursing to find rewritten candidates.
367 2024-01-23 Marek Polacek <polacek@redhat.com>
372 * call.cc (do_warn_dangling_reference): Don't warn if the temporary
375 2024-01-23 Nathaniel Shead <nathanieloshead@gmail.com>
379 * module.cc (trees_out::lang_type_bools): Write interface_only
380 and interface_unknown.
381 (trees_in::lang_type_bools): Read the above flags.
382 (trees_in::decl_value): Reset CLASSTYPE_INTERFACE_* except for
384 (trees_in::read_class_def): Remove buggy extern template
387 2024-01-19 Jason Merrill <jason@redhat.com>
390 * pt.cc (decl_template_info): New fn.
391 (get_template_info): Use it.
393 2024-01-19 Jason Merrill <jason@redhat.com>
400 * cp-tree.h (IMPLICIT_CONV_EXPR_FORCED): New.
401 * pt.cc (expand_integer_pack): Remove 111357 workaround.
402 (maybe_convert_nontype_argument): Add force parm.
403 (convert_template_argument): Handle alias template args
405 (tsubst_expr): Don't ignore IMPLICIT_CONV_EXPR_NONTYPE_ARG.
406 * error.cc (dump_expr) [CASE_CONVERT]: Handle null optype.
408 2024-01-18 Marek Polacek <polacek@redhat.com>
411 * decl.cc (grokdeclarator) <case cdk_function>: Set TREE_PURPOSE to
412 NULL_TREE when emitting an error.
414 2024-01-17 Nathaniel Shead <nathanieloshead@gmail.com>
417 * module.cc (trees_in::read_function_def): Don't overwrite
420 2024-01-17 Patrick Palka <ppalka@redhat.com>
424 * pt.cc (invalid_tparm_referent_p) <case ADDR_EXPR>: Suppress
425 DECL_ARTIFICIAL rejection test for class NTTP objects.
427 2024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
430 * decl2.cc (get_tls_wrapper_fn): Set DECL_CONTEXT.
431 (c_parse_final_cleanups): Suppress warning for no definition of
432 TLS wrapper functions in header modules.
433 * module.cc (trees_out::lang_decl_vals): Write wrapped variable
434 for TLS wrapper functions.
435 (trees_in::lang_decl_vals): Read it.
436 (trees_out::decl_value): Write TLS model for thread-local vars.
437 (trees_in::decl_value): Read it for new decls. Remember to emit
438 definitions of TLS wrapper functions later.
440 2024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
442 * name-lookup.h (enum scope_kind): Add 'sk_count'.
443 * name-lookup.cc (cp_binding_level_descriptor): Add missing
444 scope kinds. Add assertion that the list is up to date. Fix
445 handling of explicit_spec_p.
447 2024-01-16 Marek Polacek <polacek@redhat.com>
449 * decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic
452 2024-01-16 Marek Polacek <polacek@redhat.com>
455 * decl.cc (grokdeclarator) <case cdk_function>: Clear
456 is_xobj_member_function in case of an error.
458 2024-01-16 waffl3x <waffl3x@protonmail.com>
461 * parser.cc (cp_parser_parameter_declaration): Reject packs
464 2024-01-15 Marek Polacek <polacek@redhat.com>
467 * parser.cc (cp_parser_template_type_arg): Add auto checking.
469 2024-01-15 Patrick Palka <ppalka@redhat.com>
471 * parser.cc (cp_parser_check_access_in_redeclaration): Don't
472 check access for a partial or explicit specialization.
473 * pt.cc (maybe_new_partial_specialization): Don't set TREE_PRIVATE
474 or TREE_PROTECTED on the newly created partial specialization.
476 2024-01-15 Patrick Palka <ppalka@redhat.com>
479 * pt.cc (maybe_new_partial_specialization): Propagate TREE_PUBLIC
480 to the newly created partial specialization.
482 2024-01-15 Patrick Palka <ppalka@redhat.com>
485 * init.cc (build_vec_delete_1): Assume expr_noexcept_p returns
486 false in a template context.
488 2024-01-13 Jakub Jelinek <jakub@redhat.com>
490 * mangle.cc (write_nested_name): Mangle explicit object
491 member functions with H as per
492 https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal.
494 2024-01-12 Jason Merrill <jason@redhat.com>
497 * name-lookup.cc (lookup_elaborated_type): Look for bindings
498 in the global namespace in the ABI namespace.
500 2024-01-12 Jason Merrill <jason@redhat.com>
502 * call.cc (reversed_match): New.
503 (enum class pmatch): New enum.
504 (cand_parms_match): Add match_kind parm.
505 (object_parms_correspond): Add fn parms.
507 * class.cc (xobj_iobj_parameters_correspond): Rename to...
508 (iobj_parm_corresponds_to): ...this. Take the other
509 type instead of a second function.
510 (object_parms_correspond): Adjust.
511 * cp-tree.h (iobj_parm_corresponds_to): Declare.
513 2024-01-11 Jason Merrill <jason@redhat.com>
516 * class.cc (xobj_iobj_parameters_correspond): Add context parm.
517 (object_parms_correspond): Factor out of...
518 (add_method): ...here.
519 * method.cc (defaulted_late_check): Use it.
520 * call.cc (class_of_implicit_object): New.
521 (object_parms_correspond): Overload taking two candidates.
522 (cand_parms_match): Use it.
523 (joust): Check reversed before comparing constraints.
524 * cp-tree.h (object_parms_correspond): Declare.
526 2024-01-10 Tamar Christina <tamar.christina@arm.com>
528 * parser.cc (cp_parser_pragma): Initialize to false.
530 2024-01-09 Jason Merrill <jason@redhat.com>
532 * semantics.cc (is_object_parameter): New.
533 * cp-tree.h (is_object_parameter): Declare.
534 * call.cc (maybe_warn_class_memaccess): Use it.
535 * search.cc (field_access_p): Use it.
536 (class_of_object_parm): New.
537 (field_accessor_p): Adjust for explicit object parms.
539 2024-01-09 Jason Merrill <jason@redhat.com>
541 * call.cc (build_over_call): Refactor handle_arg lambda.
542 * class.cc (xobj_iobj_parameters_correspond): Fix FIXME.
543 * method.cc (defaulted_late_check): Adjust comments.
545 2024-01-09 waffl3x <waffl3x@protonmail.com>
549 C++23 P0847R7 (deducing this) - CWG2586.
550 * decl.cc (copy_fn_p): Accept xobj copy assignment functions.
551 (move_signature_fn_p): Accept xobj move assignment functions.
552 * method.cc (do_build_copy_assign): Handle defaulted xobj member
554 (defaulted_late_check): Comment.
555 (defaultable_fn_check): Comment.
557 2024-01-09 waffl3x <waffl3x@protonmail.com>
561 C++23 P0847R7 (deducing this) - xobj lambdas.
562 * lambda.cc (build_capture_proxy): Don't fold direct object types.
563 * parser.cc (cp_parser_lambda_declarator_opt): Handle xobj lambdas,
564 diagnostics. Comments also updated.
565 * pt.cc (tsubst_function_decl): Handle xobj lambdas. Check object
566 type of xobj lambda call operator, diagnose incorrect types.
567 (tsubst_lambda_expr): Update comment.
568 * semantics.cc (finish_decltype_type): Also consider by-value object
569 parameter qualifications.
571 2024-01-09 waffl3x <waffl3x@protonmail.com>
575 C++23 P0847R7 (deducing this) - diagnostics.
576 * class.cc (resolve_address_of_overloaded_function): Diagnostics.
577 * cp-tree.h (TFF_XOBJ_FUNC): Define.
578 * decl.cc (grokfndecl): Diagnostics.
579 (grokdeclarator): Diagnostics.
580 * error.cc (dump_aggr_type): Pass TFF_XOBJ_FUNC.
581 (dump_lambda_function): Formatting for xobj lambda.
582 (dump_function_decl): Pass TFF_XOBJ_FUNC.
583 (dump_parameters): Formatting for xobj member functions.
584 (function_category): Formatting for xobj member functions.
585 * parser.cc (cp_parser_decl_specifier_seq): Diagnostics.
586 (cp_parser_parameter_declaration): Diagnostics.
587 * search.cc (look_for_overrides_here): Make xobj member functions
589 (look_for_overrides_r): Reject an overriding xobj member function
591 * semantics.cc (finish_this_expr): Diagnostics.
592 * typeck.cc (cp_build_addr_expr_1): Diagnostics.
594 2024-01-09 waffl3x <waffl3x@protonmail.com>
598 C++23 P0847R7 (deducing this) - initial functionality.
599 * class.cc (xobj_iobj_parameters_correspond): New function, checks
600 for corresponding object parameters between xobj and iobj member
602 (add_method): Handle object parameters of xobj member functions, use
603 xobj_iobj_parameters_correspond.
604 * call.cc (build_over_call): Refactor, handle xobj member functions.
605 (cand_parms_match): Handle object parameters of xobj and iobj member
606 functions, use xobj_iobj_parameters_correspond.
607 * cp-tree.h (enum cp_decl_spec): Add ds_this, add comments.
608 * decl.cc (grokfndecl): Add xobj_func_p parameter. For xobj member
609 functions, Set xobj_flag, don't set static_function flag.
610 (grokdeclarator): Handle xobj member functions, tell grokfndecl.
611 (grok_op_properties): Don't error for xobj operators.
612 * parser.cc (cp_parser_decl_specifier_seq): Handle this specifier.
613 (cp_parser_parameter_declaration): Set default argument to
614 "this_identifier" for xobj parameters.
615 (set_and_check_decl_spec_loc): Add "this", add comments.
616 * tree.cc (build_min_non_dep_op_overload): Handle xobj operators.
617 * typeck.cc (cp_build_addr_expr_1): Handle address-of xobj member
620 2024-01-09 waffl3x <waffl3x@protonmail.com>
621 Jason Merrill <jason@redhat.com>
624 * cp-tree.h (struct lang_decl_fn): New data member.
625 (DECL_NONSTATIC_MEMBER_FUNCTION_P): Poison.
626 (DECL_IOBJ_MEMBER_FUNCTION_P): Define.
627 (DECL_FUNCTION_XOBJ_FLAG): Define.
628 (DECL_XOBJ_MEMBER_FUNCTION_P): Define.
629 (DECL_OBJECT_MEMBER_FUNCTION_P): Define.
630 (DECL_FUNCTION_MEMBER_P): Don't use
631 DECL_NONSTATIC_MEMBER_FUNCTION_P.
632 (DECL_CONST_MEMFUNC_P): Likewise.
633 (DECL_VOLATILE_MEMFUNC_P): Likewise.
634 (DECL_NONSTATIC_MEMBER_P): Likewise.
635 * module.cc (trees_out::lang_decl_bools): Handle xobj_flag.
636 (trees_in::lang_decl_bools): Handle xobj_flag.
637 * call.cc (build_this_conversion)
638 (add_function_candidate)
639 (add_template_candidate_real)
641 (maybe_warn_class_memaccess)
644 (do_warn_dangling_reference)
645 * class.cc (finalize_literal_type_property)
647 (resolve_address_of_overloaded_function)
648 * constexpr.cc (is_valid_constexpr_fn)
649 (cxx_bind_parameters_in_call)
650 * contracts.cc (build_contract_condition_function)
651 * cp-objcp-common.cc (cp_decl_dwarf_attribute)
652 * cxx-pretty-print.cc (cxx_pretty_printer::postfix_expression)
653 (cxx_pretty_printer::declaration_specifiers)
654 (cxx_pretty_printer::direct_declarator)
655 * decl.cc (cp_finish_decl)
656 (grok_special_member_properties)
657 (start_preparsed_function)
658 (record_key_method_defined)
659 * decl2.cc (cp_handle_deprecated_or_unavailable)
660 * init.cc (find_uninit_fields_r)
662 * lambda.cc (lambda_expr_this_capture)
663 (maybe_generic_this_capture)
664 (nonlambda_method_basetype)
665 * mangle.cc (write_nested_name)
666 * method.cc (early_check_defaulted_comparison)
667 (skip_artificial_parms_for)
668 (num_artificial_parms_for)
669 * pt.cc (is_specialization_of_friend)
670 (determine_specialization)
671 (copy_default_args_to_explicit_spec)
672 (check_explicit_specialization)
673 (tsubst_contract_attribute)
674 (check_non_deducible_conversions)
675 (more_specialized_fn)
676 (maybe_instantiate_noexcept)
677 (register_parameter_specializations)
678 (value_dependent_expression_p)
679 * search.cc (shared_member_p)
682 * semantics.cc (finish_omp_declare_simd_methods)
683 * tree.cc (lvalue_kind)
684 * typeck.cc (invalid_nonstatic_memfn_p): Don't use
685 DECL_NONSTATIC_MEMBER_FUNCTION_P.
687 2024-01-09 Julian Brown <julian@codesourcery.com>
689 * constexpr.cc (potential_consant_expression_1): Handle
691 * cp-tree.h (grok_omp_array_section, build_omp_array_section): Add
693 * decl2.cc (grok_omp_array_section): New function.
694 * error.cc (dump_expr): Handle OMP_ARRAY_SECTION.
695 * parser.cc (cp_parser_new): Initialize parser->omp_array_section_p.
696 (cp_parser_statement_expr): Disallow array sections.
697 (cp_parser_postfix_open_square_expression): Support OMP_ARRAY_SECTION
699 (cp_parser_parenthesized_expression_list, cp_parser_lambda_expression,
700 cp_parser_braced_list): Disallow array sections.
701 (cp_parser_omp_var_list_no_open): Remove ALLOW_DEREF parameter, add
702 MAP_LVALUE in its place. Support generalised lvalue parsing for
703 OpenMP map, to and from clauses. Use OMP_ARRAY_SECTION
704 code instead of TREE_LIST to represent OpenMP array sections.
705 (cp_parser_omp_var_list): Remove ALLOW_DEREF parameter, add MAP_LVALUE.
706 Pass to cp_parser_omp_var_list_no_open.
707 (cp_parser_oacc_data_clause): Update call to cp_parser_omp_var_list.
708 (cp_parser_omp_clause_map): Add sk_omp scope around
709 cp_parser_omp_var_list_no_open call.
710 * parser.h (cp_parser): Add omp_array_section_p field.
711 * pt.cc (tsubst, tsubst_copy, tsubst_omp_clause_decl,
712 tsubst_copy_and_build): Add OMP_ARRAY_SECTION support.
713 * semantics.cc (handle_omp_array_sections_1, handle_omp_array_sections,
714 cp_oacc_check_attachments, finish_omp_clauses): Use OMP_ARRAY_SECTION
715 instead of TREE_LIST where appropriate. Handle more types of map
717 * typeck.cc (build_omp_array_section): New function.
719 2024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
721 * module.cc (trees_out::write_var_def): Only write initializers
724 2024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
727 * module.cc (depset::hash::add_binding_entity): Don't skip names
728 in the GMF if they've been exported with a using declaration.
730 2024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
733 * parser.cc (cp_parser_module_name): Rewrite to handle
734 module-names and module-partitions independently.
735 (cp_parser_module_partition): New function.
736 (cp_parser_module_declaration): Parse module partitions
737 explicitly. Don't change state if parsing module decl failed.
738 (cp_parser_import_declaration): Handle different kinds of
739 import-declarations locally.
741 2024-01-03 Patrick Palka <ppalka@redhat.com>
744 * call.cc (reference_binding): Still try a conversion via a
745 temporary if a direct conversion was bad.
747 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
749 * parser.cc (cp_parser_omp_clause_name): Move handling of indirect
750 clause to correspond to alphabetical order.
753 Copyright (C) 2024 Free Software Foundation, Inc.
755 Copying and distribution of this file, with or without modification,
756 are permitted in any medium without royalty provided the copyright
757 notice and this notice are preserved.