]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
analyzer: fix -Wanalyzer-deref-before-check false positive seen in loop header macro...
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
cc606a91
GA
12024-03-19 Nathaniel Shead <nathanieloshead@gmail.com>
2
3 * cp-tree.h (module_maybe_has_cmi_p): New function.
4 * decl.cc (grokfndecl): Mark block-scope functions as public if
5 they could be visible in other TUs.
6 * decl2.cc (no_linkage_error): Don't error for declarations that
7 could be defined in other TUs since C++20. Suppress duplicate
8 errors from 'check_global_declaration'.
9 * tree.cc (no_linkage_check): In relaxed mode, don't consider
10 types in a module CMI to have no linkage.
11
b5490afe
GA
122024-03-16 Nathaniel Shead <nathanieloshead@gmail.com>
13
14 PR c++/112631
15 * cp-tree.h (named_module_attach_p): New function.
16 * decl.cc (start_decl): Check for attachment not purview.
17 (grokmethod): Likewise.
18
c1f6690b
GA
192024-03-14 Chung-Lin Tang <cltang@baylibre.com>
20
21 * parser.cc (cp_parser_oacc_data_clause): Add parsing support for
22 'readonly' modifier, set OMP_CLAUSE_MAP_READONLY if readonly modifier
23 found, update comments.
24 (cp_parser_oacc_cache): Add parsing support for 'readonly' modifier,
25 set OMP_CLAUSE__CACHE__READONLY if readonly modifier found, update
26 comments.
27
f6d9426b
GA
282024-03-12 Nathaniel Shead <nathanieloshead@gmail.com>
29
30 PR c++/98645
31 PR c++/98688
32 PR c++/111224
33 * module.cc (enum tree_tag): Add new tag for builtin types.
34 (trees_out::start): POLY_INT_CSTs can be emitted.
35 (trees_in::start): Likewise.
36 (trees_out::core_vals): Stream POLY_INT_CSTs.
37 (trees_in::core_vals): Likewise.
38 (trees_out::type_node): Handle vectors with multiple coeffs.
39 (trees_in::tree_node): Likewise.
40 (init_modules): Register target-specific builtin types. Bump
41 initial capacity slightly.
42
c775a030
GA
432024-03-08 Jakub Jelinek <jakub@redhat.com>
44
45 * pt.cc (tsubst_expr): Handle MEM_REF.
46
472024-03-08 Jakub Jelinek <jakub@redhat.com>
48
49 PR debug/113918
50 * cp-objcp-common.cc (cp_type_dwarf_attribute): Return 1
51 for DW_AT_export_symbols on anonymous structs or unions.
52
532024-03-08 Jakub Jelinek <jakub@redhat.com>
54
55 PR c++/113802
56 * parser.cc (cp_parser_parameter_declaration): Move the xobj_param_p
57 pack diagnostics after ellipsis handling and if an error is reported,
58 pretend this specifier didn't appear. Formatting fix.
59
1e74c758
GA
602024-03-07 Nathaniel Shead <nathanieloshead@gmail.com>
61
62 PR c++/114229
63 * module.cc (trees_out::core_bools): Redetermine
64 DECL_INTERFACE_KNOWN on stream-in for vtables and tinfo.
65 * decl2.cc (import_export_decl): Add fixme for ABI changes with
66 module vtables and tinfo.
67
682024-03-07 Patrick Palka <ppalka@redhat.com>
69
70 PR c++/103994
71 * cp-tree.h (add_mergeable_specialization): Remove second
72 parameter.
73 * module.cc (depset::disc_bits::DB_ALIAS_TMPL_INST_BIT): Remove.
74 (depset::disc_bits::DB_ALIAS_SPEC_BIT): Remove.
75 (depset::is_alias_tmpl_inst): Remove.
76 (depset::is_alias): Remove.
77 (merge_kind::MK_tmpl_alias_mask): Remove.
78 (merge_kind::MK_alias_spec): Remove.
79 (merge_kind_name): Remove entries for alias specializations.
80 (trees_out::core_vals) <case TEMPLATE_DECL>: Adjust after
81 removing is_alias_tmpl_inst.
82 (trees_in::decl_value): Adjust add_mergeable_specialization
83 calls.
84 (trees_out::get_merge_kind) <case depset::EK_SPECIALIZATION>:
85 Use MK_decl_spec for alias template specializations.
86 (trees_out::key_mergeable): Simplify after MK_tmpl_alias_mask
87 removal.
88 (depset::hash::make_dependency): Adjust after removing
89 DB_ALIAS_TMPL_INST_BIT.
90 (specialization_add): Don't allow alias templates when !decl_p.
91 (depset::hash::add_specializations): Remove now-dead code
92 accomodating alias template specializations in the type table.
93 * pt.cc (lookup_template_class): Dispatch early to
94 instantiate_alias_template for alias templates. Simplify
95 accordingly.
96 (add_mergeable_specialization): Remove alias_p parameter and
97 simplify accordingly.
98
992024-03-07 Patrick Palka <ppalka@redhat.com>
100
101 PR c++/110730
102 PR c++/105512
103 * module.cc (module_state::write_namespaces): Stream the
104 abi_tag attribute of an inline namespace.
105 (module_state::read_namespaces): Likewise.
106
1072024-03-07 Marek Polacek <polacek@redhat.com>
108
109 PR c++/110031
110 * pt.cc (lookup_and_finish_template_variable): Pass complain to
111 mark_used.
112
1132024-03-07 Nathaniel Shead <nathanieloshead@gmail.com>
114
115 PR c++/98356
116 * typeck2.cc (cxx_incomplete_type_diagnostic): Don't assume
117 'member' will be a FUNCTION_DECL (or something like it).
118
1192024-03-07 Nathaniel Shead <nathanieloshead@gmail.com>
120
121 PR c++/98881
122 * module.cc (trees_out::tpl_parms_fini): Stream out DECL_CONTEXT
123 for template template parameters.
124 (trees_in::tpl_parms_fini): Read it.
125
8b483cd5
GA
1262024-03-06 Marek Polacek <polacek@redhat.com>
127
128 PR c++/114114
129 * pt.cc (maybe_instantiate_noexcept): Save/restore
130 cp_unevaluated_operand, c_inhibit_evaluation_warnings, and
131 cp_noexcept_operand around the tsubst_expr call.
132
1332024-03-06 Nathaniel Shead <nathanieloshead@gmail.com>
134
135 PR c++/113629
136 * pt.cc (type_unification_real): Only use DEDUCE_CONV for the
137 return type of a conversion function.
138
1392024-03-06 Patrick Palka <ppalka@redhat.com>
140
141 * module.cc (trees_out::get_merge_kind) <case depset::EK_DECL>:
142 Accomodate class-scope DECL_UNINSTANTIATED_TEMPLATE_FRIEND_P
143 TEMPLATE_DECL. Consolidate IDENTIFIER_ANON_P cases.
144
214dadf3
GA
1452024-03-05 Patrick Palka <ppalka@redhat.com>
146
147 * parser.cc (cp_parser_translation_unit): Relax GMF contents
148 error into a pedwarn.
149
264e3ad4
GA
1502024-03-04 Nathaniel Shead <nathanieloshead@gmail.com>
151
152 * name-lookup.cc (walk_module_binding): Remove completed FIXME.
153 (do_nonmember_using_decl): Mark redeclared entities as exported
154 when needed. Check for re-exporting internal linkage types.
155
306a4c32
GA
1562024-03-01 Patrick Palka <ppalka@redhat.com>
157
158 PR c++/104919
159 PR c++/106009
160 * module.cc (depset::hash::sneakoscope): Remove.
161 (trees_out::decl_node): Always add a dependency on a local type.
162 (depset::hash::find_dependencies): Remove sneakoscope stuff.
163
1642024-03-01 Nathaniel Shead <nathanieloshead@gmail.com>
165
166 PR c++/114170
167 * module.cc (has_definition): Fall back to DECL_INITIALIZED_P
168 when DECL_INITIAL is not set on a template.
169 (module_state::write_inits): Only increment count when
170 initializers are actually written.
171
1722024-03-01 Nathaniel Shead <nathanieloshead@gmail.com>
173
174 PR c++/114005
175 * init.cc (create_temporary_var): Use current_scope instead of
176 current_function_decl.
177
1782024-03-01 Patrick Palka <ppalka@redhat.com>
179
180 * decl.cc (maybe_register_incomplete_var): Restrict second
181 branch to static data members from a not-yet-complete class.
182
1832024-03-01 Marek Polacek <polacek@redhat.com>
184
185 PR c++/110358
186 PR c++/109642
187 * call.cc (no_dangling_p): New.
188 (reference_like_class_p): Use it.
189 (do_warn_dangling_reference): Use it. Don't warn when the function
190 or its enclosing class has attribute gnu::no_dangling.
191 * tree.cc (cxx_gnu_attributes): Add gnu::no_dangling.
192 (handle_no_dangling_attribute): New.
193
1942024-03-01 Patrick Palka <ppalka@redhat.com>
195
196 PR c++/110025
197 PR c++/114138
198 * cp-tree.h (make_cast_auto): Declare.
199 * parser.cc (cp_parser_functional_cast): If the type is an auto,
200 replace it with a level-less one via make_cast_auto.
201 * pt.cc (find_parameter_packs_r): Don't treat level-less auto
202 as a type parameter pack.
203 (tsubst) <case TEMPLATE_TYPE_PARM>: Generalize CTAD placeholder
204 auto handling to all level-less autos.
205 (make_cast_auto): Define.
206 (do_auto_deduction): Handle replacement of a level-less auto.
207
2082024-03-01 Jakub Jelinek <jakub@redhat.com>
209
210 PR c++/92687
211 * decl.cc (lookup_decomp_type): Return NULL_TREE if decomp_type_table
212 doesn't have entry for V.
213 * semantics.cc (finish_decltype_type): If ptds.saved, assert
214 DECL_HAS_VALUE_EXPR_P is true and decide on tuple vs. non-tuple based
215 on if lookup_decomp_type is NULL or not.
216
b05f474c
GA
2172024-02-29 Marek Polacek <polacek@redhat.com>
218
219 PR c++/113987
220 * call.cc (conv_binds_to_reference_parm_p): New.
221 * cp-tree.h (conv_binds_to_reference_parm_p): Declare.
222 * init.cc (find_uninit_fields_r): Call it.
223
2242024-02-29 Nathaniel Shead <nathanieloshead@gmail.com>
225
226 PR c++/111710
227 * cp-tree.h (DECL_MODULE_KEYED_DECLS_P): Remove tree checking.
228 (struct lang_decl_base): Update comments and fix whitespace.
229 * module.cc (trees_out::lang_decl_bools): Always write
230 module_keyed_decls_p flag...
231 (trees_in::lang_decl_bools): ...and always read it.
232 (trees_out::decl_value): Handle all kinds of keyed decls.
233 (trees_in::decl_value): Likewise.
234 (trees_in::tree_value): Deduplicate LAMBDA_EXPRs.
235 (maybe_key_decl): Also support lambdas attached to fields,
236 parameters, and types. Key lambdas attached to fields to their
237 class.
238 (trees_out::get_merge_kind): Likewise.
239 (trees_out::key_mergeable): Likewise.
240 (trees_in::key_mergeable): Support keyed decls in a TYPE_DECL
241 container.
242 * parser.cc (cp_parser_class_head): Start a lambda scope when
243 parsing base classes.
244
fd52355a
GA
2452024-02-28 Jakub Jelinek <jakub@redhat.com>
246 Patrick Palka <ppalka@redhat.com>
247
248 PR c++/113976
249 * decl.cc (grokdeclarator): Don't call cp_apply_type_quals_to_decl
250 on DECL_TEMPLATE_INSTANTIATED VAR_DECLs.
251
2522024-02-28 Nathaniel Shead <nathanieloshead@gmail.com>
253
254 PR c++/113970
255 PR c++/114013
256 * decl.cc (make_rtl_for_nonlocal_decl): Don't defer inline
257 variables.
258
4d9da419
GA
2592024-02-23 Jakub Jelinek <jakub@redhat.com>
260
261 PR c++/113083
262 * cp-gimplify.cc (cp_fold): For targetm.cxx.cdtor_returns_this ()
263 wrap r into a COMPOUND_EXPR and return folded CALL_EXPR_ARG (x, 0).
264
52490278
GA
2652024-02-19 Patrick Palka <ppalka@redhat.com>
266
267 PR c++/113966
268 * constraint.cc (tsubst_compound_requirement): Don't check
269 the noexcept condition or the return-type-requirement when
270 partially substituting.
271
c1d15713
GA
2722024-02-17 Marek Polacek <polacek@redhat.com>
273
274 PR c++/113158
275 * search.cc (maybe_check_overriding_exception_spec): Defer checking
276 when a noexcept couldn't be instantiated & evaluated to false/true.
277
d70f155b
GA
2782024-02-16 Marek Polacek <polacek@redhat.com>
279
280 DR 1351
281 * search.cc (maybe_check_overriding_exception_spec): Don't error about
282 a looser exception specification if the overrider is deleted.
283
2842024-02-16 Marek Polacek <polacek@redhat.com>
285
286 PR c++/113789
287 PR c++/113853
288 * typeck.cc (treat_lvalue_as_rvalue_p): Update code to better
289 reflect [expr.prim.id.unqual]#4.2.
290
2912024-02-16 Jakub Jelinek <jakub@redhat.com>
292
293 PR c++/113929
294 * parser.cc (cp_parser_parameter_declaration): Diagnose this specifier
295 on template parameter declaration.
296
2972024-02-16 Patrick Palka <ppalka@redhat.com>
298
299 * module.cc (trees_out::core_bools): Stream TREE_UNAVAILABLE.
300 (trees_in::core_bools): Likewise.
301 (trees_out::core_vals): Stream LAMBDA_EXPR_REGEN_INFO.
302 (trees_in::core_vals): Likewise.
303
5266f930
GA
3042024-02-14 Nathaniel Shead <nathanieloshead@gmail.com>
305
306 PR c++/113708
307 * decl.cc (make_rtl_for_nonlocal_decl): Defer inline variables.
308 * decl2.cc (import_export_decl): Support inline variables.
309
3102024-02-14 Patrick Palka <ppalka@redhat.com>
311
312 PR c++/113908
313 PR c++/113332
314 * method.cc (synthesized_method_walk): Use maybe_push_to_top_level.
315
3162024-02-14 Nathaniel Shead <nathanieloshead@gmail.com>
317
318 PR c++/99573
319 * decl.cc (start_enum): Reorder check for redeclaring in module.
320 Add missing auto_diagnostic_groups.
321
df6c57ce
GA
3222024-02-13 Marek Polacek <polacek@redhat.com>
323
324 DR 1693
325 PR c++/113760
326 * parser.cc (cp_parser_member_declaration): Only pedwarn about an extra
327 semicolon in C++98.
328
3292024-02-13 Tobias Burnus <tburnus@baylibre.com>
330
331 PR middle-end/113904
332 * parser.cc (cp_parser_omp_context_selector): Handle splitting of
333 OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
334
3352024-02-13 Patrick Palka <ppalka@redhat.com>
336
337 * Make-lang.in (CFLAGS-cp/module.o): Add $(ZLIBINC).
338 * module.cc: Include <zlib.h>.
339 (bytes::calc_crc): Use crc32 from zlib.
340 (bytes_out::set_crc): Use crc32_combine from zlib.
341
3422024-02-13 Patrick Palka <ppalka@redhat.com>
343
344 * module.cc (depset::hash::add_specializations): Use
345 STRIP_TEMPLATE consistently.
346 (get_originating_module_decl): Handle class-scope CONST_DECL.
347
3482024-02-13 Patrick Palka <ppalka@redhat.com>
349
350 * lambda.cc (lambda_function): Call get_class_binding_direct
351 instead of lookup_member to sidestep lazy loading.
352 * name-lookup.cc (check_local_shadow): Punt if we're in a
353 function context that's not actual parsing.
354
3552024-02-13 Jason Merrill <jason@redhat.com>
356
357 PR c++/113612
358 * pt.cc (process_partial_specialization): Return early
359 on redeclaration.
360
3612024-02-13 Marek Polacek <polacek@redhat.com>
362
363 PR c++/112436
364 * except.cc (expand_start_catch_block): Pass tf_warning_or_error to
365 is_admissible_throw_operand_or_catch_parameter.
366 (build_throw): Pass complain to
367 is_admissible_throw_operand_or_catch_parameter.
368 (complete_ptr_ref_or_void_ptr_p): Add a tsubst_flags_t parameter. Use
369 it. Return bool. Call complete_type_or_maybe_complain instead of
370 complete_type_or_else.
371 (is_admissible_throw_operand_or_catch_parameter): Add a tsubst_flags_t
372 parameter. Use it. Guard error calls.
373
3742024-02-13 Alex Coplan <alex.coplan@arm.com>
375
376 PR c++/113658
377 * cp-objcp-common.cc (cp_feature_table): Remove entry for
378 cxx_constexpr_string_builtins.
379
bf074ee4
GA
3802024-02-12 Marek Polacek <polacek@redhat.com>
381
382 PR c++/113545
383 * constexpr.cc (cxx_eval_switch_expr): If the condition doesn't reduce
384 to an INTEGER_CST, consider it non-constant.
385
67d5b10e
GA
3862024-02-10 Marek Polacek <polacek@redhat.com>
387
388 DR 2237
389 PR c++/107126
390 PR c++/97202
391 * parser.cc (cp_parser_unqualified_id): Downgrade the DR2237 error to
392 a pedwarn.
393 (cp_parser_constructor_declarator_p): Likewise.
394
3952024-02-10 Jakub Jelinek <jakub@redhat.com>
396
397 * tree.cc (debug_binfo): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld"
398 and casts to long.
399 * pt.cc (print_template_statistics): Use HOST_SIZE_T_PRINT_DEC
400 and casts to fmt_size_t instead of "%ld" and casts to long.
401 * class.cc (dump_class_hierarchy_1): Use HOST_WIDE_INT_PRINT_UNSIGNED
402 instead of "%lu" and casts to unsigned long. For TYPE_ALIGN, use
403 %u instead of %lu and drop casts to unsigned long.
404 * parser.cc (cp_lexer_peek_nth_token): Use HOST_SIZE_T_PRINT_DEC
405 and casts to fmt_size_t instead of "%ld" and casts to long.
406
2523654a
GA
4072024-02-09 Marek Polacek <polacek@redhat.com>
408
409 PR c++/113834
410 * semantics.cc (finish_type_pack_element): Perform range checking
411 before tree_to_shwi.
412
4132024-02-09 Marek Polacek <polacek@redhat.com>
414
415 PR c++/98388
416 * coroutines.cc (coro_rewrite_function_body): Pass tf_warning_or_error
417 to build_throw.
418 (morph_fn_to_coro): Likewise.
419 * cp-tree.h (build_throw): Adjust.
420 * except.cc (expand_end_catch_block): Pass tf_warning_or_error to
421 build_throw.
422 (build_throw): Add a tsubst_flags_t parameter. Use it. Remove
423 redundant variable. Guard an inform call.
424 * parser.cc (cp_parser_throw_expression): Pass tf_warning_or_error
425 to build_throw.
426 * pt.cc (tsubst_expr) <case THROW_EXPR>: Pass complain to build_throw.
427
4282024-02-09 Patrick Palka <ppalka@redhat.com>
429
430 PR c++/112580
431 * module.cc (trees_in::read_class_def): When streaming in
432 an anonymous union field of an as-base class, don't overwrite
433 ANON_AGGR_TYPE_FIELD.
434
90586e27
GA
4352024-02-08 Patrick Palka <ppalka@redhat.com>
436
437 PR c++/113649
438 * pt.cc (do_class_deduction): Add outer_targs parameter.
439 Substitute outer arguments into the CTAD template.
440 (do_auto_deduction): Pass outer_targs to do_class_deduction.
441
4422024-02-08 Jason Merrill <jason@redhat.com>
443
444 * pt.cc (create_template_parm_object): Pass TARGET_EXPR to
445 cxx_constant_value.
446
3e4c4c5e
GA
4472024-02-06 Jakub Jelinek <jakub@redhat.com>
448
449 PR c++/113788
450 * parser.cc (CP_PARSER_FLAGS_PARAMETER): New enumerator.
451 (cp_parser_decl_specifier_seq): Parse RID_THIS only if
452 CP_PARSER_FLAGS_PARAMETER is set in flags.
453 (cp_parser_parameter_declaration): Or in CP_PARSER_FLAGS_PARAMETER
454 when calling cp_parser_decl_specifier_seq.
455
4562024-02-06 Marek Polacek <polacek@redhat.com>
457
458 * method.cc (early_check_defaulted_comparison): Add
459 auto_diagnostic_group.
460
4612024-02-06 Jason Merrill <jason@redhat.com>
462
463 PR c++/107291
464 * method.cc (early_check_defaulted_comparison): Fail if not friend.
465
1c9ddaae
GA
4662024-02-05 Jason Merrill <jason@redhat.com>
467
468 PR c++/111286
469 * tree.cc (rvalue): Don't drop cv-quals from an array.
470
4b7d4d8a
GA
4712024-02-03 Patrick Palka <ppalka@redhat.com>
472
473 PR c++/110006
474 PR c++/112769
475 * constraint.cc (subst_info::quiet): Accomodate non-diagnostic
476 tsubst flags.
477 (tsubst_valid_expression_requirement): Likewise.
478 (tsubst_simple_requirement): Return a substituted _REQ node when
479 processing_template_decl.
480 (tsubst_type_requirement_1): Accomodate non-diagnostic tsubst
481 flags.
482 (tsubst_type_requirement): Return a substituted _REQ node when
483 processing_template_decl.
484 (tsubst_compound_requirement): Likewise. Accomodate non-diagnostic
485 tsubst flags.
486 (tsubst_nested_requirement): Likewise.
487 (tsubst_requires_expr): Don't defer partial substitution when
488 processing_constraint_expression_p is true, in which case return
489 a substituted REQUIRES_EXPR.
490 * pt.cc (tsubst_expr) <case REQUIRES_EXPR>: Accomodate
491 non-diagnostic tsubst flags.
492
4932024-02-02 Jason Merrill <jason@redhat.com>
494
495 PR c++/110084
496 * pt.cc (tsubst_function_decl): Only check a function defaulted
497 outside the class if the class is complete.
498
4992024-02-02 Jason Merrill <jason@redhat.com>
500
501 PR c++/112439
502 * constexpr.cc (cxx_eval_store_expression): Check empty_base
503 before marking a CONSTRUCTOR readonly.
504
5052024-02-02 Jason Merrill <jason@redhat.com>
506
507 PR c++/113638
508 * cp-tree.h: Adjust comment.
509 * pt.cc (instantiate_template): Set VAR_HAD_UNKNOWN_BOUND for
510 variable template.
511
e2554540
GA
5122024-02-01 Marek Polacek <polacek@redhat.com>
513
514 * call.cc (reference_like_class_p): Consider even non-templates for
515 std::span-like classes.
516
5172024-02-01 Patrick Palka <ppalka@redhat.com>
518
519 PR c++/112737
520 * pt.cc (iterative_hash_template_arg) <case TEMPLATE_DECL>:
521 Adjust hashing to match cp_tree_equal.
522 (ctp_hasher::hash): Also hash CLASS_PLACEHOLDER_TEMPLATE.
523 * tree.cc (cp_tree_equal) <case TEMPLATE_DECL>: Return true
524 for ttp TEMPLATE_DECLs if their TEMPLATE_TEMPLATE_PARMs are
525 equivalent.
526 * typeck.cc (structural_comptypes) <case TEMPLATE_TYPE_PARM>:
527 Use cp_tree_equal to compare CLASS_PLACEHOLDER_TEMPLATE.
528
5292024-02-01 Marek Polacek <polacek@redhat.com>
530
531 PR c++/112437
532 * typeck.cc (treat_lvalue_as_rvalue_p): Bail out on sk_namespace in
533 the move on throw of parms loop.
534
097ddd55
GA
5352024-01-30 Marek Polacek <polacek@redhat.com>
536
537 PR c++/110358
538 PR c++/109640
539 * call.cc (reference_like_class_p): Don't warn for std::span-like
540 classes.
541
5422024-01-30 Patrick Palka <ppalka@redhat.com>
543
544 PR c++/113640
545 * call.cc (keep_unused_object_arg): Punt for an xobj member
546 function.
547
5482024-01-30 Patrick Palka <ppalka@redhat.com>
549
550 PR c++/113644
551 * pt.cc (unify) <case INTEGER_CST>: Handle NULL_TREE type.
552
5532024-01-30 Nathaniel Shead <nathanieloshead@gmail.com>
554
555 PR c++/107594
556 * module.cc (get_module): Bail on empty name.
557
f0706819
GA
5582024-01-29 Jason Merrill <jason@redhat.com>
559
560 PR c++/113544
561 * pt.cc (instantiate_class_template): Don't partially instantiate.
562 (tsubst_stmt): Likewise.
563
ce9dae56
GA
5642024-01-26 Nathaniel Shead <nathanieloshead@gmail.com>
565
566 PR c++/113580
567 * module.cc (struct post_process_data): Create.
568 (trees_in::post_decls): Use.
569 (trees_in::post_process): Return entire vector at once.
570 Change overload to take post_process_data instead of tree.
571 (trees_out::write_function_def): Write needed flags from
572 DECL_STRUCT_FUNCTION.
573 (trees_in::read_function_def): Read them and pass to
574 post_process.
575 (module_state::read_cluster): Write flags into cfun.
576
5772024-01-26 Nathaniel Shead <nathanieloshead@gmail.com>
578
579 PR c++/112899
580 * cp-tree.h (note_variable_template_instantiation): Rename to...
581 (note_vague_linkage_variable): ...this.
582 * decl2.cc (note_variable_template_instantiation): Rename to...
583 (note_vague_linkage_variable): ...this.
584 * pt.cc (instantiate_decl): Rename usage of above function.
585 * module.cc (trees_in::read_var_def): Remember pending statics
586 that we stream in.
587
f22a7ae8
GA
5882024-01-25 Jakub Jelinek <jakub@redhat.com>
589
590 PR c++/113599
591 * typeck2.cc (build_m_component_ref): Use convert instead of
592 cp_convert for pointer conversion.
593
5942024-01-25 Jason Merrill <jason@redhat.com>
595
596 PR c++/113598
597 * init.cc (build_vec_init): Don't use {} for PMF.
598
5992024-01-25 Jason Merrill <jason@redhat.com>
600
601 PR c++/109227
602 * coroutines.cc (build_co_await): Use cxx_maybe_build_cleanup.
603 (build_actor_fn, process_conditional, maybe_promote_temps)
604 (morph_fn_to_coro): Likewise.
605 (expand_one_await_expression): Use build_cleanup.
606
6072024-01-25 Nathaniel Shead <nathanieloshead@gmail.com>
608
609 PR c++/113405
610 * module.cc (set_defining_module): Track partial specialisations
611 for all declarations.
612
6132024-01-25 Nathaniel Shead <nathanieloshead@gmail.com>
614
615 PR c++/100707
616 * name-lookup.cc (add_imported_namespace): Don't mark namespaces
617 as imported.
618
2a9637b2
GA
6192024-01-24 Patrick Palka <ppalka@redhat.com>
620
621 PR c++/113529
622 * call.cc (add_operator_candidates): Propagate error_mark_node
623 result after recursing to find rewritten candidates.
624
3128786c
GA
6252024-01-23 Marek Polacek <polacek@redhat.com>
626
627 PR c++/113256
628 PR c++/111607
629 PR c++/109640
630 * call.cc (do_warn_dangling_reference): Don't warn if the temporary
631 is of lambda type.
632
6332024-01-23 Nathaniel Shead <nathanieloshead@gmail.com>
634
635 PR c++/112820
636 PR c++/102607
637 * module.cc (trees_out::lang_type_bools): Write interface_only
638 and interface_unknown.
639 (trees_in::lang_type_bools): Read the above flags.
640 (trees_in::decl_value): Reset CLASSTYPE_INTERFACE_* except for
641 extern templates.
642 (trees_in::read_class_def): Remove buggy extern template
643 handling.
644
c2544854
GA
6452024-01-19 Jason Merrill <jason@redhat.com>
646
647 PR c++/113498
648 * pt.cc (decl_template_info): New fn.
649 (get_template_info): Use it.
650
6512024-01-19 Jason Merrill <jason@redhat.com>
652
653 PR c++/112632
654 PR c++/112594
655 PR c++/111357
656 PR c++/104594
657 PR c++/67898
658 * cp-tree.h (IMPLICIT_CONV_EXPR_FORCED): New.
659 * pt.cc (expand_integer_pack): Remove 111357 workaround.
660 (maybe_convert_nontype_argument): Add force parm.
661 (convert_template_argument): Handle alias template args
662 specially.
663 (tsubst_expr): Don't ignore IMPLICIT_CONV_EXPR_NONTYPE_ARG.
664 * error.cc (dump_expr) [CASE_CONVERT]: Handle null optype.
665
bb0f96ab
GA
6662024-01-18 Marek Polacek <polacek@redhat.com>
667
668 PR c++/113389
669 * decl.cc (grokdeclarator) <case cdk_function>: Set TREE_PURPOSE to
670 NULL_TREE when emitting an error.
671
2c213ac9
GA
6722024-01-17 Nathaniel Shead <nathanieloshead@gmail.com>
673
674 PR c++/112588
675 * module.cc (trees_in::read_function_def): Don't overwrite
676 arguments.
677
6782024-01-17 Patrick Palka <ppalka@redhat.com>
679
680 PR c++/113242
681 PR c++/99493
682 * pt.cc (invalid_tparm_referent_p) <case ADDR_EXPR>: Suppress
683 DECL_ARTIFICIAL rejection test for class NTTP objects.
684
1a177974
GA
6852024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
686
687 PR c++/113292
688 * decl2.cc (get_tls_wrapper_fn): Set DECL_CONTEXT.
689 (c_parse_final_cleanups): Suppress warning for no definition of
690 TLS wrapper functions in header modules.
691 * module.cc (trees_out::lang_decl_vals): Write wrapped variable
692 for TLS wrapper functions.
693 (trees_in::lang_decl_vals): Read it.
694 (trees_out::decl_value): Write TLS model for thread-local vars.
695 (trees_in::decl_value): Read it for new decls. Remember to emit
696 definitions of TLS wrapper functions later.
697
6982024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
699
700 * name-lookup.h (enum scope_kind): Add 'sk_count'.
701 * name-lookup.cc (cp_binding_level_descriptor): Add missing
702 scope kinds. Add assertion that the list is up to date. Fix
703 handling of explicit_spec_p.
704
7052024-01-16 Marek Polacek <polacek@redhat.com>
706
707 * decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic
708 messages.
709
7102024-01-16 Marek Polacek <polacek@redhat.com>
711
712 PR c++/113340
713 * decl.cc (grokdeclarator) <case cdk_function>: Clear
714 is_xobj_member_function in case of an error.
715
7162024-01-16 waffl3x <waffl3x@protonmail.com>
717
718 PR c++/113307
719 * parser.cc (cp_parser_parameter_declaration): Reject packs
720 on xobj params.
721
be035ec4
GA
7222024-01-15 Marek Polacek <polacek@redhat.com>
723
724 PR c++/110065
725 * parser.cc (cp_parser_template_type_arg): Add auto checking.
726
7272024-01-15 Patrick Palka <ppalka@redhat.com>
728
729 * parser.cc (cp_parser_check_access_in_redeclaration): Don't
730 check access for a partial or explicit specialization.
731 * pt.cc (maybe_new_partial_specialization): Don't set TREE_PRIVATE
732 or TREE_PROTECTED on the newly created partial specialization.
733
7342024-01-15 Patrick Palka <ppalka@redhat.com>
735
736 PR c++/104634
737 * pt.cc (maybe_new_partial_specialization): Propagate TREE_PUBLIC
738 to the newly created partial specialization.
739
7402024-01-15 Patrick Palka <ppalka@redhat.com>
741
742 PR c++/109899
743 * init.cc (build_vec_delete_1): Assume expr_noexcept_p returns
744 false in a template context.
745
ed5bf208
GA
7462024-01-13 Jakub Jelinek <jakub@redhat.com>
747
748 * mangle.cc (write_nested_name): Mangle explicit object
749 member functions with H as per
750 https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal.
751
444a31f3
GA
7522024-01-12 Jason Merrill <jason@redhat.com>
753
754 PR c++/113038
755 * name-lookup.cc (lookup_elaborated_type): Look for bindings
756 in the global namespace in the ABI namespace.
757
7582024-01-12 Jason Merrill <jason@redhat.com>
759
760 * call.cc (reversed_match): New.
761 (enum class pmatch): New enum.
762 (cand_parms_match): Add match_kind parm.
763 (object_parms_correspond): Add fn parms.
764 (joust): Adjust.
765 * class.cc (xobj_iobj_parameters_correspond): Rename to...
766 (iobj_parm_corresponds_to): ...this. Take the other
767 type instead of a second function.
768 (object_parms_correspond): Adjust.
769 * cp-tree.h (iobj_parm_corresponds_to): Declare.
770
1a80e955
GA
7712024-01-11 Jason Merrill <jason@redhat.com>
772
773 PR c++/113191
774 * class.cc (xobj_iobj_parameters_correspond): Add context parm.
775 (object_parms_correspond): Factor out of...
776 (add_method): ...here.
777 * method.cc (defaulted_late_check): Use it.
778 * call.cc (class_of_implicit_object): New.
779 (object_parms_correspond): Overload taking two candidates.
780 (cand_parms_match): Use it.
781 (joust): Check reversed before comparing constraints.
782 * cp-tree.h (object_parms_correspond): Declare.
783
45af8962
GA
7842024-01-10 Tamar Christina <tamar.christina@arm.com>
785
786 * parser.cc (cp_parser_pragma): Initialize to false.
787
73ce73fc
GA
7882024-01-09 Jason Merrill <jason@redhat.com>
789
790 * semantics.cc (is_object_parameter): New.
791 * cp-tree.h (is_object_parameter): Declare.
792 * call.cc (maybe_warn_class_memaccess): Use it.
793 * search.cc (field_access_p): Use it.
794 (class_of_object_parm): New.
795 (field_accessor_p): Adjust for explicit object parms.
796
7972024-01-09 Jason Merrill <jason@redhat.com>
798
799 * call.cc (build_over_call): Refactor handle_arg lambda.
800 * class.cc (xobj_iobj_parameters_correspond): Fix FIXME.
801 * method.cc (defaulted_late_check): Adjust comments.
802
8032024-01-09 waffl3x <waffl3x@protonmail.com>
804
805 PR c++/102609
806 PR c++/102609
807 C++23 P0847R7 (deducing this) - CWG2586.
808 * decl.cc (copy_fn_p): Accept xobj copy assignment functions.
809 (move_signature_fn_p): Accept xobj move assignment functions.
810 * method.cc (do_build_copy_assign): Handle defaulted xobj member
811 functions.
812 (defaulted_late_check): Comment.
813 (defaultable_fn_check): Comment.
814
8152024-01-09 waffl3x <waffl3x@protonmail.com>
816
817 PR c++/102609
818 PR c++/102609
819 C++23 P0847R7 (deducing this) - xobj lambdas.
820 * lambda.cc (build_capture_proxy): Don't fold direct object types.
821 * parser.cc (cp_parser_lambda_declarator_opt): Handle xobj lambdas,
822 diagnostics. Comments also updated.
823 * pt.cc (tsubst_function_decl): Handle xobj lambdas. Check object
824 type of xobj lambda call operator, diagnose incorrect types.
825 (tsubst_lambda_expr): Update comment.
826 * semantics.cc (finish_decltype_type): Also consider by-value object
827 parameter qualifications.
828
8292024-01-09 waffl3x <waffl3x@protonmail.com>
830
831 PR c++/102609
832 PR c++/102609
833 C++23 P0847R7 (deducing this) - diagnostics.
834 * class.cc (resolve_address_of_overloaded_function): Diagnostics.
835 * cp-tree.h (TFF_XOBJ_FUNC): Define.
836 * decl.cc (grokfndecl): Diagnostics.
837 (grokdeclarator): Diagnostics.
838 * error.cc (dump_aggr_type): Pass TFF_XOBJ_FUNC.
839 (dump_lambda_function): Formatting for xobj lambda.
840 (dump_function_decl): Pass TFF_XOBJ_FUNC.
841 (dump_parameters): Formatting for xobj member functions.
842 (function_category): Formatting for xobj member functions.
843 * parser.cc (cp_parser_decl_specifier_seq): Diagnostics.
844 (cp_parser_parameter_declaration): Diagnostics.
845 * search.cc (look_for_overrides_here): Make xobj member functions
846 override.
847 (look_for_overrides_r): Reject an overriding xobj member function
848 and diagnose it.
849 * semantics.cc (finish_this_expr): Diagnostics.
850 * typeck.cc (cp_build_addr_expr_1): Diagnostics.
851
8522024-01-09 waffl3x <waffl3x@protonmail.com>
853
854 PR c++/102609
855 PR c++/102609
856 C++23 P0847R7 (deducing this) - initial functionality.
857 * class.cc (xobj_iobj_parameters_correspond): New function, checks
858 for corresponding object parameters between xobj and iobj member
859 functions.
860 (add_method): Handle object parameters of xobj member functions, use
861 xobj_iobj_parameters_correspond.
862 * call.cc (build_over_call): Refactor, handle xobj member functions.
863 (cand_parms_match): Handle object parameters of xobj and iobj member
864 functions, use xobj_iobj_parameters_correspond.
865 * cp-tree.h (enum cp_decl_spec): Add ds_this, add comments.
866 * decl.cc (grokfndecl): Add xobj_func_p parameter. For xobj member
867 functions, Set xobj_flag, don't set static_function flag.
868 (grokdeclarator): Handle xobj member functions, tell grokfndecl.
869 (grok_op_properties): Don't error for xobj operators.
870 * parser.cc (cp_parser_decl_specifier_seq): Handle this specifier.
871 (cp_parser_parameter_declaration): Set default argument to
872 "this_identifier" for xobj parameters.
873 (set_and_check_decl_spec_loc): Add "this", add comments.
874 * tree.cc (build_min_non_dep_op_overload): Handle xobj operators.
875 * typeck.cc (cp_build_addr_expr_1): Handle address-of xobj member
876 functions.
877
8782024-01-09 waffl3x <waffl3x@protonmail.com>
879 Jason Merrill <jason@redhat.com>
880
881 PR c++/102609
882 * cp-tree.h (struct lang_decl_fn): New data member.
883 (DECL_NONSTATIC_MEMBER_FUNCTION_P): Poison.
884 (DECL_IOBJ_MEMBER_FUNCTION_P): Define.
885 (DECL_FUNCTION_XOBJ_FLAG): Define.
886 (DECL_XOBJ_MEMBER_FUNCTION_P): Define.
887 (DECL_OBJECT_MEMBER_FUNCTION_P): Define.
888 (DECL_FUNCTION_MEMBER_P): Don't use
889 DECL_NONSTATIC_MEMBER_FUNCTION_P.
890 (DECL_CONST_MEMFUNC_P): Likewise.
891 (DECL_VOLATILE_MEMFUNC_P): Likewise.
892 (DECL_NONSTATIC_MEMBER_P): Likewise.
893 * module.cc (trees_out::lang_decl_bools): Handle xobj_flag.
894 (trees_in::lang_decl_bools): Handle xobj_flag.
895 * call.cc (build_this_conversion)
896 (add_function_candidate)
897 (add_template_candidate_real)
898 (add_candidates)
899 (maybe_warn_class_memaccess)
900 (cand_parms_match)
901 (joust)
902 (do_warn_dangling_reference)
903 * class.cc (finalize_literal_type_property)
904 (finish_struct)
905 (resolve_address_of_overloaded_function)
906 * constexpr.cc (is_valid_constexpr_fn)
907 (cxx_bind_parameters_in_call)
908 * contracts.cc (build_contract_condition_function)
909 * cp-objcp-common.cc (cp_decl_dwarf_attribute)
910 * cxx-pretty-print.cc (cxx_pretty_printer::postfix_expression)
911 (cxx_pretty_printer::declaration_specifiers)
912 (cxx_pretty_printer::direct_declarator)
913 * decl.cc (cp_finish_decl)
914 (grok_special_member_properties)
915 (start_preparsed_function)
916 (record_key_method_defined)
917 * decl2.cc (cp_handle_deprecated_or_unavailable)
918 * init.cc (find_uninit_fields_r)
919 (build_offset_ref)
920 * lambda.cc (lambda_expr_this_capture)
921 (maybe_generic_this_capture)
922 (nonlambda_method_basetype)
923 * mangle.cc (write_nested_name)
924 * method.cc (early_check_defaulted_comparison)
925 (skip_artificial_parms_for)
926 (num_artificial_parms_for)
927 * pt.cc (is_specialization_of_friend)
928 (determine_specialization)
929 (copy_default_args_to_explicit_spec)
930 (check_explicit_specialization)
931 (tsubst_contract_attribute)
932 (check_non_deducible_conversions)
933 (more_specialized_fn)
934 (maybe_instantiate_noexcept)
935 (register_parameter_specializations)
936 (value_dependent_expression_p)
937 * search.cc (shared_member_p)
938 (lookup_member)
939 (field_access_p)
940 * semantics.cc (finish_omp_declare_simd_methods)
941 * tree.cc (lvalue_kind)
942 * typeck.cc (invalid_nonstatic_memfn_p): Don't use
943 DECL_NONSTATIC_MEMBER_FUNCTION_P.
944
9452024-01-09 Julian Brown <julian@codesourcery.com>
946
947 * constexpr.cc (potential_consant_expression_1): Handle
948 OMP_ARRAY_SECTION.
949 * cp-tree.h (grok_omp_array_section, build_omp_array_section): Add
950 prototypes.
951 * decl2.cc (grok_omp_array_section): New function.
952 * error.cc (dump_expr): Handle OMP_ARRAY_SECTION.
953 * parser.cc (cp_parser_new): Initialize parser->omp_array_section_p.
954 (cp_parser_statement_expr): Disallow array sections.
955 (cp_parser_postfix_open_square_expression): Support OMP_ARRAY_SECTION
956 parsing.
957 (cp_parser_parenthesized_expression_list, cp_parser_lambda_expression,
958 cp_parser_braced_list): Disallow array sections.
959 (cp_parser_omp_var_list_no_open): Remove ALLOW_DEREF parameter, add
960 MAP_LVALUE in its place. Support generalised lvalue parsing for
961 OpenMP map, to and from clauses. Use OMP_ARRAY_SECTION
962 code instead of TREE_LIST to represent OpenMP array sections.
963 (cp_parser_omp_var_list): Remove ALLOW_DEREF parameter, add MAP_LVALUE.
964 Pass to cp_parser_omp_var_list_no_open.
965 (cp_parser_oacc_data_clause): Update call to cp_parser_omp_var_list.
966 (cp_parser_omp_clause_map): Add sk_omp scope around
967 cp_parser_omp_var_list_no_open call.
968 * parser.h (cp_parser): Add omp_array_section_p field.
969 * pt.cc (tsubst, tsubst_copy, tsubst_omp_clause_decl,
970 tsubst_copy_and_build): Add OMP_ARRAY_SECTION support.
971 * semantics.cc (handle_omp_array_sections_1, handle_omp_array_sections,
972 cp_oacc_check_attachments, finish_omp_clauses): Use OMP_ARRAY_SECTION
973 instead of TREE_LIST where appropriate. Handle more types of map
974 expression.
975 * typeck.cc (build_omp_array_section): New function.
976
59e0c218
GA
9772024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
978
979 * module.cc (trees_out::write_var_def): Only write initializers
980 in header modules.
981
9822024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
983
984 PR c++/109679
985 * module.cc (depset::hash::add_binding_entity): Don't skip names
986 in the GMF if they've been exported with a using declaration.
987
9882024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
989
990 PR c++/110808
991 * parser.cc (cp_parser_module_name): Rewrite to handle
992 module-names and module-partitions independently.
993 (cp_parser_module_partition): New function.
994 (cp_parser_module_declaration): Parse module partitions
995 explicitly. Don't change state if parsing module decl failed.
996 (cp_parser_import_declaration): Handle different kinds of
997 import-declarations locally.
998
eb84e8d3
GA
9992024-01-03 Patrick Palka <ppalka@redhat.com>
1000
1001 PR c++/113064
1002 * call.cc (reference_binding): Still try a conversion via a
1003 temporary if a direct conversion was bad.
1004
10052024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
1006
1007 * parser.cc (cp_parser_omp_clause_name): Move handling of indirect
1008 clause to correspond to alphabetical order.
1009
ad41bd84 1010\f
8c22aed4 1011Copyright (C) 2024 Free Software Foundation, Inc.
ad41bd84
JM
1012
1013Copying and distribution of this file, with or without modification,
1014are permitted in any medium without royalty provided the copyright
1015notice and this notice are preserved.