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