]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/cp/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
1 2023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
2
3 * Make-lang.in: Merge perf data collected when compiling cc1plus and runtime libraries
4
5 2023-04-27 Jason Merrill <jason@redhat.com>
6
7 * call.cc (print_conversion_rejection): Use iloc_sentinel.
8
9 2023-04-27 Jason Merrill <jason@redhat.com>
10
11 PR c++/61445
12 * pt.cc (instantiate_decl): Assert !defer_ok for local
13 class members.
14
15 2023-04-26 Jason Merrill <jason@redhat.com>
16
17 * init.cc (nsdmi_inst): Remove.
18 (maybe_instantiate_nsdmi_init): Use DECL_INITIAL instead.
19
20 2023-04-26 Jason Merrill <jason@redhat.com>
21
22 PR c++/109241
23 * pt.cc (instantiate_class_template): Do partially instantiate.
24 (tsubst_expr): Do call complete_type for partial instantiations.
25
26 2023-04-26 Jason Merrill <jason@redhat.com>
27
28 PR c++/69836
29 * pt.cc (regenerate_decl_from_template): Skip unique friends.
30
31 2023-04-26 Patrick Palka <ppalka@redhat.com>
32
33 * pt.cc (most_specialized_partial_spec): Exit early when
34 DECL_TEMPLATE_SPECIALIZATIONS is empty. Move local variable
35 declarations closer to their first use. Remove redundant
36 flag_concepts test. Remove redundant forward declaration.
37
38 2023-04-25 Patrick Palka <ppalka@redhat.com>
39
40 PR c++/108975
41 * pt.cc (value_dependent_expression_p) <case VAR_DECL>:
42 Suppress conservative early exit for reference variables
43 when DECL_HAS_VALUE_EXPR_P.
44
45 2023-04-25 Tobias Burnus <tobias@codesourcery.com>
46
47 * parser.cc (cp_parser_omp_scan_loop_body): Handle
48 zero exec statements before/after 'omp scan'.
49
50 2023-04-24 Patrick Palka <ppalka@redhat.com>
51
52 * cp-tree.h (cp_expr_location): Define here.
53 * tree.cc (cp_expr_location): Don't define here.
54
55 2023-04-21 Jason Merrill <jason@redhat.com>
56
57 PR c++/108099
58 * decl.cc (grokdeclarator): Don't clear typedef_decl after 'unsigned
59 typedef' pedwarn. Use c_common_signed_or_unsigned_type. Also
60 handle 'signed typedef'.
61
62 2023-04-21 Patrick Palka <ppalka@redhat.com>
63
64 * tree.cc (cp_walk_subtrees): Avoid repeatedly dereferencing tp.
65 <case DECLTYPE_TYPE>: Use cp_unevaluated and WALK_SUBTREE.
66 <case ALIGNOF_EXPR etc>: Likewise.
67
68 2023-04-20 Patrick Palka <ppalka@redhat.com>
69
70 * pt.cc (tsubst) <case TEMPLATE_TYPE_PARM>: Don't recurse when
71 level lowering a cv-qualified type template parameter. Remove
72 recursive loop breaker in the level lowering case for constrained
73 autos. Use the TEMPLATE_PARM_DESCENDANTS cache in this case as
74 well.
75
76 2023-04-20 Patrick Palka <ppalka@redhat.com>
77
78 * constraint.cc (diagnose_trait_expr): Convert a TREE_VEC
79 of arguments into a TREE_LIST for sake of pretty printing.
80 * cxx-pretty-print.cc (pp_cxx_trait): Handle TREE_VEC
81 instead of TREE_LIST of trailing variadic trait arguments.
82 * method.cc (constructible_expr): Likewise.
83 (is_xible_helper): Likewise.
84 * parser.cc (cp_parser_trait): Represent trailing variadic trait
85 arguments as a TREE_VEC instead of TREE_LIST.
86 * pt.cc (value_dependent_expression_p): Handle TREE_VEC
87 instead of TREE_LIST of trailing variadic trait arguments.
88 * semantics.cc (finish_type_pack_element): Likewise.
89 (check_trait_type): Likewise.
90
91 2023-04-20 Patrick Palka <ppalka@redhat.com>
92
93 * tree.cc (strip_typedefs): Move TREE_LIST handling to
94 strip_typedefs_expr. Dispatch to strip_typedefs_expr for
95 non-type 't'.
96 <case TYPENAME_TYPE>: Remove manual dispatching to
97 strip_typedefs_expr.
98 <case TRAIT_TYPE>: Likewise.
99 (strip_typedefs_expr): Replaces calls to strip_typedefs_expr
100 with strip_typedefs throughout. Don't dispatch to strip_typedefs
101 for type 't'.
102 <case TREE_LIST>: Replace this with the better version from
103 strip_typedefs.
104
105 2023-04-19 Patrick Palka <ppalka@redhat.com>
106 Jonathan Wakely <jwakely@redhat.com>
107
108 PR c++/100157
109 * cp-trait.def (TYPE_PACK_ELEMENT): Define.
110 * cp-tree.h (finish_trait_type): Add complain parameter.
111 * cxx-pretty-print.cc (pp_cxx_trait): Handle
112 CPTK_TYPE_PACK_ELEMENT.
113 * parser.cc (cp_parser_constant_expression): Document default
114 arguments.
115 (cp_parser_trait): Handle CPTK_TYPE_PACK_ELEMENT. Pass
116 tf_warning_or_error to finish_trait_type.
117 * pt.cc (tsubst) <case TRAIT_TYPE>: Handle non-type first
118 argument. Pass complain to finish_trait_type.
119 * semantics.cc (finish_type_pack_element): Define.
120 (finish_trait_type): Add complain parameter. Handle
121 CPTK_TYPE_PACK_ELEMENT.
122 * tree.cc (strip_typedefs): Handle non-type first argument.
123 Pass tf_warning_or_error to finish_trait_type.
124 * typeck.cc (structural_comptypes) <case TRAIT_TYPE>: Use
125 cp_tree_equal instead of same_type_p for the first argument.
126
127 2023-04-19 Patrick Palka <ppalka@redhat.com>
128
129 PR c++/109556
130 * pt.cc (try_class_unification): Don't ggc_free the copy of
131 'targs'.
132
133 2023-04-19 Jason Merrill <jason@redhat.com>
134
135 PR c++/108099
136 * decl.cc (grokdeclarator): Keep typedef_decl for __int128_t.
137
138 2023-04-17 Patrick Palka <ppalka@redhat.com>
139
140 PR c++/109531
141 * pt.cc (tsubst) <case BOUND_TEMPLATE_TEMPLATE_PARM>:
142 In the level-lowering case just use lookup_template_class
143 to rebuild the bound ttp.
144
145 2023-04-15 Jason Merrill <jason@redhat.com>
146
147 PR c++/109357
148 * constexpr.cc (cxx_eval_constant_expression) [TARGET_EXPR]:
149 Check for complex initializer.
150
151 2023-04-13 Patrick Palka <ppalka@redhat.com>
152
153 PR c++/109420
154 * decl.cc (make_typename_type): Also ignore non-types during the
155 lookup if tag_type corresponds to an elaborated-type-specifier.
156 * pt.cc (tsubst) <case TYPENAME_TYPE>: Pass class_type or
157 enum_type as tag_type to make_typename_type accordingly instead
158 of always passing typename_type.
159
160 2023-04-13 Jason Merrill <jason@redhat.com>
161
162 PR c++/109277
163 * semantics.cc (check_trait_type): Handle incomplete type directly.
164 * typeck2.cc (cxx_incomplete_type_diagnostic): Remove assert.
165
166 2023-04-13 Jason Merrill <jason@redhat.com>
167
168 * typeck2.cc (cxx_incomplete_type_diagnostic): Return bool.
169 * cp-tree.h (cxx_incomplete_type_diagnostic): Adjust.
170
171 2023-04-12 Jakub Jelinek <jakub@redhat.com>
172
173 * Make-lang.in (s-cp-module-version): New target.
174 (cp/module.o): Depend on it.
175 (MODULE_VERSION): Remove variable.
176 (CFLAGS-cp/module.o): For -DMODULE_VERSION= argument just
177 cat s-cp-module-version.
178
179 2023-04-09 Iain Sandoe <iain@sandoe.co.uk>
180
181 * coroutines.cc (coro_rewrite_function_body): Ensure that added
182 bind expressions have scope blocks.
183
184 2023-04-04 Jason Merrill <jason@redhat.com>
185
186 PR c++/107484
187 * decl2.cc (find_last_decl): Return early if DECL_USE_TEMPLATE.
188
189 2023-04-03 Patrick Palka <ppalka@redhat.com>
190
191 PR c++/109300
192 * decl.cc (cp_finish_decl): Diagnose ordinary auto deduction
193 with no initializer, instead of asserting.
194
195 2023-04-01 Patrick Palka <ppalka@redhat.com>
196
197 PR c++/109160
198 * cp-tree.h (do_auto_deduction): Add defaulted tmpl parameter.
199 * pt.cc (convert_template_argument): Pass 'in_decl' as 'tmpl' to
200 do_auto_deduction.
201 (tsubst_decl) <case VAR_/TYPE_DECL>: Pass 'tmpl' instead of 't' as
202 'in_decl' to coerce_template_parms.
203 (unify) <case TEMPLATE_PARM_INDEX>: Pass TPARMS_PRIMARY_TEMPLATE
204 as 'tmpl' to do_auto_deduction.
205 (do_auto_deduction): Document default arguments. Rename local
206 variable 'tmpl' to 'ctmpl'. Use 'tmpl' to obtain a full set of
207 template arguments for satisfaction in the adc_unify case.
208
209 2023-04-01 Patrick Palka <ppalka@redhat.com>
210
211 PR c++/53164
212 PR c++/105848
213 * pt.cc (invalid_tparm_referent_p): Accept ADDR_EXPR of
214 FUNCTION_DECL.
215 (instantiate_class_template): Call mark_template_arguments_used.
216 (tsubst_copy_and_build) <case CALL_EXPR>: Revert r13-995 change.
217 (mark_template_arguments_used): Define.
218 (instantiate_body): Call mark_template_arguments_used.
219
220 2023-04-01 Iain Sandoe <iain@sandoe.co.uk>
221
222 PR c++/101118
223 * coroutines.cc (flatten_await_stmt): Use the current count of
224 promoted temporaries to build a unique name for the frame entries.
225
226 2023-03-30 Jason Merrill <jason@redhat.com>
227
228 PR c++/105452
229 * search.cc (type_context_for_name_lookup): New.
230 (accessible_p): Handle anonymous union.
231 * init.cc (maybe_instantiate_nsdmi_init): Use
232 type_context_for_name_lookup.
233 * parser.cc (cp_parser_class_specifier): Likewise.
234 * cp-tree.h (type_context_for_name_lookup): Declare.
235
236 2023-03-30 Jason Merrill <jason@redhat.com>
237
238 PR c++/105221
239 * pt.cc (unify) [FUNCTION_TYPE]: Handle function pointer
240 conversions.
241
242 2023-03-30 Jakub Jelinek <jakub@redhat.com>
243
244 PR c++/109319
245 * decl2.cc (grok_array_decl): After emitting a pedwarn for
246 -Wcomma-subscript, if processing_template_decl set orig_index_exp
247 to compound expr from orig_index_exp_list.
248
249 2023-03-30 Jason Merrill <jason@redhat.com>
250
251 PR c++/107897
252 PR c++/108887
253 * decl2.cc (record_mangling): Use symtab_node::reset.
254
255 2023-03-30 Jakub Jelinek <jakub@redhat.com>
256
257 PR c++/109278
258 * call.cc (convert_like_internal): If pedwarn for extended float
259 type conversions doesn't report anything, avoid calling
260 maybe_inform_about_fndecl_for_bogus_argument_init.
261
262 2023-03-29 Jason Merrill <jason@redhat.com>
263
264 PR c++/109321
265 PR c++/109320
266 * pt.cc (alias_ctad_tweaks): Rewrite deduced args.
267 (type_targs_deducible_from): Handle null pack deduction.
268
269 2023-03-28 David Malcolm <dmalcolm@redhat.com>
270
271 PR c/107002
272 * parser.cc (cp_parser_binary_expression): Update for new param of
273 check_for_xor_used_as_pow.
274
275 2023-03-28 Jakub Jelinek <jakub@redhat.com>
276
277 PR c++/109309
278 * contracts.cc: Include intl.h.
279 (check_postcondition_result): Don't form diagnostics from two halves
280 of an English message to allow translations.
281
282 2023-03-24 Patrick Palka <ppalka@redhat.com>
283
284 PR c++/106969
285 * parser.cc (cp_parser_class_specifier): Clear current_class_ptr
286 and current_class_ref sooner, before parsing a class definition.
287
288 2023-03-24 Jason Merrill <jason@redhat.com>
289
290 PR c++/105481
291 * pt.cc (type_unification_real): Adjust for partial ordering.
292
293 2023-03-23 Jason Merrill <jason@redhat.com>
294
295 PR c++/105996
296 * typeck.cc (build_ptrmemfunc): Drop 0-offset optimization
297 and location wrappers.
298
299 2023-03-23 Marek Polacek <polacek@redhat.com>
300
301 PR c++/107532
302 * call.cc (class_has_reference_member_p): New.
303 (class_has_reference_member_p_r): New.
304 (reference_like_class_p): Don't look for a specific constructor.
305 Use a DFS walk with class_has_reference_member_p_r.
306
307 2023-03-23 Jason Merrill <jason@redhat.com>
308
309 PR c++/109241
310 * pt.cc (find_parameter_packs_r): Handle null TREE_BINFO.
311
312 2023-03-22 Jason Merrill <jason@redhat.com>
313
314 PR c++/108390
315 * pt.cc (unify): Use fold of build_nop instead of fold_convert.
316
317 2023-03-22 Jason Merrill <jason@redhat.com>
318
319 PR c++/108795
320 * semantics.cc (finish_id_expression_1): Check scope before
321 returning id_expression.
322
323 2023-03-22 Alex Coplan <alex.coplan@arm.com>
324
325 PR c++/109177
326 * call.cc (build_over_call): Use make_temp_override to suppress
327 both unavailable and deprecated warnings when calling
328 build_addr_func.
329
330 2023-03-21 Jason Merrill <jason@redhat.com>
331
332 PR c++/106890
333 * init.cc (maybe_instantiate_nsdmi_init): Don't leave
334 current_function_decl set to a constructor.
335
336 2023-03-20 Marek Polacek <polacek@redhat.com>
337
338 PR c++/109159
339 * call.cc (add_template_candidate_real): Add explicit decls to the
340 set of candidates when the initializer is a braced-init-list.
341
342 2023-03-20 Jakub Jelinek <jakub@redhat.com>
343
344 PR c++/109164
345 * cp-tree.h (var_needs_tls_wrapper): Declare.
346 * decl2.cc (var_needs_tls_wrapper): No longer static.
347 * decl.cc (cp_finish_decl): Clear TREE_READONLY on TLS variables
348 for which a TLS wrapper will be needed.
349
350 2023-03-17 Jason Merrill <jason@redhat.com>
351
352 PR c++/108975
353 * lambda.cc (prune_lambda_captures): Don't bother in a template.
354
355 2023-03-17 Jason Merrill <jason@redhat.com>
356
357 PR c++/109172
358 * except.cc (build_throw): Check dtor access.
359
360 2023-03-17 Jason Merrill <jason@redhat.com>
361
362 PR c++/69410
363 * friend.cc (do_friend): Handle namespace as scope argument.
364 * decl.cc (grokdeclarator): Pass down in_namespace.
365
366 2023-03-16 Jason Merrill <jason@redhat.com>
367
368 PR c++/105809
369 * init.cc (get_nsdmi): Split out...
370 (maybe_instantiate_nsdmi_init): ...this function.
371 * cp-tree.h: Declare it.
372 * pt.cc (tsubst_expr): Use it.
373
374 2023-03-16 Jason Merrill <jason@redhat.com>
375
376 PR c++/108242
377 * pt.cc (tsubst_expr) [TAG_DEFN]: Handle partial instantiation.
378
379 2023-03-16 Jason Merrill <jason@redhat.com>
380
381 PR c++/101869
382 * semantics.cc (finish_qualified_id_expr): Don't try to build a
383 pointer-to-member if the scope is an enumeration.
384
385 2023-03-16 Patrick Palka <ppalka@redhat.com>
386
387 PR c++/109030
388 * constexpr.cc (maybe_constant_init_1): For an unevaluated
389 non-manifestly-constant operand, don't constant evaluate
390 and instead call fold_to_constant as in maybe_constant_value.
391
392 2023-03-16 Patrick Palka <ppalka@redhat.com>
393
394 PR c++/100288
395 * constraint.cc (satisfaction_cache::get): Relax overly strict
396 checking assert in the constraint recursion case.
397
398 2023-03-16 Jason Merrill <jason@redhat.com>
399
400 PR c++/105406
401 * coroutines.cc (build_co_await): Handle lvalue 'o'.
402
403 2023-03-15 Jason Merrill <jason@redhat.com>
404
405 PR c++/103871
406 PR c++/98056
407 * typeck.cc (cp_build_modify_expr): Allow array initialization of
408 DECL_ARTIFICIAL variable.
409
410 2023-03-15 Marek Polacek <polacek@redhat.com>
411
412 PR c++/107280
413 * constexpr.cc (cxx_eval_store_expression): Strip location wrappers.
414
415 2023-03-15 Jason Merrill <jason@redhat.com>
416
417 PR c++/58538
418 * semantics.cc (check_template_template_default_arg): Check
419 maybe_get_template_decl_from_type_decl.
420
421 2023-03-15 Jason Merrill <jason@redhat.com>
422
423 PR c++/108179
424 PR c++/104107
425 PR c++/95036
426 * pt.cc (coerce_template_template_parms): Use args from
427 DECL_CONTEXT (arg_tmpl) instead of outer_args.
428
429 2023-03-15 Jason Merrill <jason@redhat.com>
430
431 PR c++/108179
432 * pt.cc (coerce_template_template_parms): Take the arg and parm
433 templates directly.
434 (coerce_template_template_parm): Adjust.
435 (template_template_parm_bindings_ok_p): Adjust.
436 (convert_template_argument): Adjust.
437
438 2023-03-14 Patrick Palka <ppalka@redhat.com>
439
440 PR c++/96830
441 * pt.cc (push_inline_template_parms_recursive): Set
442 TEMPLATE_PARMS_CONSTRAINTS.
443 (push_template_decl): For an out-of-line declaration, verify
444 constraints for each enclosing template scope match those of the
445 original template declaratation.
446
447 2023-03-14 Patrick Palka <ppalka@redhat.com>
448
449 PR c++/96830
450 * pt.cc (redeclare_class_template): Add missing "of" in
451 constraint mismatch diagnostic.
452 (tsubst_friend_class): For an already declared class template,
453 substitute and pass the friend declaration's constraints to
454 redeclare_class_template instead of passing the existing
455 template's constraints.
456
457 2023-03-14 Jason Merrill <jason@redhat.com>
458
459 PR c++/108468
460 * pt.cc (unify_pack_expansion): Check that TPARMS_PRIMARY_TEMPLATE
461 is non-null.
462
463 2023-03-14 Jason Merrill <jason@redhat.com>
464
465 PR c++/107310
466 * cp-gimplify.cc (genericize_if_stmt): Restore folding
467 of constant conditions.
468
469 2023-03-14 Jakub Jelinek <jakub@redhat.com>
470
471 PR c++/109096
472 * tree.cc (record_has_unique_obj_representations): Ignore unnamed
473 bitfields.
474
475 2023-03-13 Jason Merrill <jason@redhat.com>
476
477 PR c++/107128
478 * parser.cc (cp_parser_set_decl_spec_type): Use
479 redefined_builtin_type for extended_float_type_p.
480
481 2023-03-13 Marek Polacek <polacek@redhat.com>
482
483 PR c++/107532
484 * call.cc (reference_like_class_p): Check for std::span.
485
486 2023-03-10 Jakub Jelinek <jakub@redhat.com>
487
488 PR c++/107558
489 * decl.cc (cp_finish_decl): Don't clear TREE_READONLY on
490 automatic non-aggregate variables just because of
491 -fmerge-all-constants.
492
493 2023-03-10 Jakub Jelinek <jakub@redhat.com>
494
495 PR c++/109039
496 * class.cc (end_of_class): For bit-fields, instead of computing
497 offset as sum of byte_position (field) and DECL_SIZE_UNIT (field),
498 compute it as sum of bit_position (field) and DECL_SIZE (field)
499 divided by BITS_PER_UNIT rounded up.
500
501 2023-03-10 Jason Merrill <jason@redhat.com>
502
503 PR c++/108972
504 * lambda.cc (compare_lambda_template_head): Check more
505 for error_mark_node.
506
507 2023-03-10 Jason Merrill <jason@redhat.com>
508
509 PR c++/108566
510 * mangle.cc (anon_aggr_naming_decl): New.
511 (write_unqualified_name): Use it.
512
513 2023-03-10 Jakub Jelinek <jakub@redhat.com>
514
515 PR c/108079
516 * decl.cc (poplevel): Suppress OPT_Wunused_variable warning
517 after diagnosing it.
518
519 2023-03-10 Jason Merrill <jason@redhat.com>
520
521 PR c++/108099
522 * decl.cc (grokdeclarator): Handle non-typedef typedef_decl.
523
524 2023-03-10 Jason Merrill <jason@redhat.com>
525
526 PR c++/108542
527 * class.cc (instantiate_type): Strip location wrapper.
528
529 2023-03-09 Jason Merrill <jason@redhat.com>
530
531 PR c++/108773
532 * init.cc (find_allocator_temps_r): New.
533 (combine_allocator_temps): Replace find_allocator_temp.
534 (build_vec_init): Adjust.
535
536 2023-03-09 Jason Merrill <jason@redhat.com>
537
538 DR 2664
539 PR c++/102529
540 * pt.cc (alias_ctad_tweaks): Continue after deduction failure.
541
542 2023-03-09 Jason Merrill <jason@redhat.com>
543 Michael Spertus <mike@spertus.com>
544
545 PR c++/105841
546 * pt.cc (corresponding_template_parameter_list): Split out...
547 (corresponding_template_parameter): ...from here.
548 (find_template_parameters): Factor out...
549 (find_template_parameter_info::find_in): ...this function.
550 (find_template_parameter_info::find_in_recursive): New.
551 (find_template_parameter_info::found): New.
552 (alias_ctad_tweaks): Only add parms used in the deduced args.
553
554 2023-03-09 Jason Merrill <jason@redhat.com>
555
556 * cp-trait.def (IS_DEDUCIBLE): Add space to name.
557
558 2023-03-09 Jason Merrill <jason@redhat.com>
559
560 PR c++/105841
561 * cp-trait.def (IS_DEDUCIBLE): New.
562 * cxx-pretty-print.cc (pp_cxx_trait): Handle non-type.
563 * parser.cc (cp_parser_trait): Likewise.
564 * tree.cc (cp_tree_equal): Likewise.
565 * pt.cc (tsubst_copy_and_build): Likewise.
566 (type_targs_deducible_from): New.
567 (alias_ctad_tweaks): Use it.
568 * semantics.cc (trait_expr_value): Handle CPTK_IS_DEDUCIBLE.
569 (finish_trait_expr): Likewise.
570 * constraint.cc (diagnose_trait_expr): Likewise.
571 * cp-tree.h (type_targs_deducible_from): Declare.
572
573 2023-03-07 Jason Merrill <jason@redhat.com>
574
575 PR c++/108526
576 PR c++/106651
577 * pt.cc (tsubst_function_decl): Don't replace the closure
578 parameter if DECL_STATIC_FUNCTION_P.
579
580 2023-03-07 Marek Polacek <polacek@redhat.com>
581
582 PR c++/107532
583 * call.cc (reference_like_class_p): New.
584 (do_warn_dangling_reference): Add new bool parameter. See through
585 reference_like_class_p.
586
587 2023-03-07 Jakub Jelinek <jakub@redhat.com>
588
589 PR c++/109042
590 * rtti.cc (emit_support_tinfo_1): Don't assert that last
591 unemitted_tinfo_decls element is tinfo, instead pop from it only in
592 that case.
593 * decl2.cc (c_parse_final_cleanups): Don't call emit_tinfo_decl
594 for unemitted_tinfO_decls which have already non-NULL DECL_INITIAL.
595
596 2023-03-07 Marek Polacek <polacek@redhat.com>
597
598 PR c++/109030
599 * constexpr.cc (cxx_eval_call_expression): Relax assert.
600
601 2023-03-07 Marek Polacek <polacek@redhat.com>
602
603 PR c++/107939
604 * constexpr.cc (potential_constant_expression_1) <case CALL_EXPR>: Pass
605 'any' when recursing on a VAR_DECL and not a pointer to function.
606
607 2023-03-04 Jakub Jelinek <jakub@redhat.com>
608
609 PR c++/108702
610 * constexpr.cc: Include toplev.h.
611 (cxx_eval_constant_expression) <case DECL_EXPR>: When seeing a local
612 static initialized by constant expression outside of a constexpr
613 function which has been deferred by make_rtl_for_nonlocal_decl,
614 call rest_of_decl_compilation on it.
615
616 2023-03-03 Patrick Palka <ppalka@redhat.com>
617
618 PR c++/108998
619 * pt.cc (el_data::skipped_trees): New data member.
620 (extract_locals_r): Push to skipped_trees any unevaluated
621 contexts that we skipped over.
622 (extract_local_specs): For the second walk, start from each
623 tree in skipped_trees.
624
625 2023-03-03 Alexandre Oliva <oliva@adacore.com>
626
627 * typeck.cc (cp_build_binary_op): Suppress redundant warning
628 for pfn null test in pmfn test with vbit-in-delta.
629
630 2023-03-02 Jakub Jelinek <jakub@redhat.com>
631
632 PR target/108883
633 * cp-tree.h (enum cp_tree_index): Remove CPTI_FALLBACK_DFLOAT*_TYPE
634 enumerators.
635 (fallback_dfloat32_type, fallback_dfloat64_type,
636 fallback_dfloat128_type): Remove.
637 * rtti.cc (emit_support_tinfo_1): If not emitted already, call
638 emit_tinfo_decl and remove from unemitted_tinfo_decls right away.
639 (emit_support_tinfos): Move &dfloat*_type_node from fundamentals array
640 into new fundamentals_with_fallback array. Call emit_support_tinfo_1
641 on elements of that array too, with the difference that if
642 the type is NULL, use a fallback REAL_TYPE for it temporarily.
643 Drop the !targetm.decimal_float_supported_p () handling. Call
644 targetm.emit_support_tinfos at the end.
645 * mangle.cc (write_builtin_type): Remove references to
646 fallback_dfloat*_type. Handle bfloat16_type_node mangling.
647
648 2023-03-02 Patrick Palka <ppalka@redhat.com>
649
650 PR c++/108243
651 PR c++/97553
652 * cp-gimplify.cc (cp_fully_fold): Add an internal overload that
653 additionally takes and propagate an mce_value parameter, and
654 define the existing public overload in terms of it.
655 (cp_fully_fold_init): Pass mce_false to cp_fully_fold.
656
657 2023-03-02 Patrick Palka <ppalka@redhat.com>
658
659 PR c++/108243
660 * constexpr.cc (maybe_constant_init_1): Override
661 manifestly_const_eval to true if is_static.
662
663 2023-03-02 Jakub Jelinek <jakub@redhat.com>
664
665 PR debug/108716
666 * cp-gimplify.cc (cp_genericize_r) <case USING_STMT>: Set
667 DECL_SOURCE_LOCATION on IMPORTED_DECL to expression location
668 of USING_STMT or input_location.
669
670 2023-03-02 Marek Polacek <polacek@redhat.com>
671
672 PR c++/106259
673 * parser.cc (class_decl_loc_t::diag_mismatched_tags): If the first
674 lookup of SPEC didn't find anything, try to look for
675 most_general_template.
676
677 2023-03-02 Jakub Jelinek <jakub@redhat.com>
678
679 PR c++/105839
680 * parser.cc (cp_convert_omp_range_for): Allow in assert
681 decomp_first_name without DECL_HAS_VALUE_EXPR_P if it has
682 error_mark_node type.
683 (cp_finish_omp_range_for): Don't set DECL_HAS_VALUE_EXPR_P back
684 on decls which have error_mark_node type.
685
686 2023-03-01 Marek Polacek <polacek@redhat.com>
687
688 PR c++/107574
689 * constexpr.cc (cxx_eval_constant_expression): Emit an error when
690 a PTRMEM_CST cannot be evaluated.
691
692 2023-03-01 Patrick Palka <ppalka@redhat.com>
693
694 * pt.cc (tsubst_scope): Define.
695 (tsubst_decl) <case USING_DECL>: Call tsubst_scope instead of
696 calling tsubst_scope with tf_qualifying_scope set.
697 (tsubst_qualified_id): Call tsubst_scope instead of
698 calling tsubst with tf_qualifying_scope set.
699 (tsubst_copy): Immediately delegate to tsubst for all TYPE_P
700 trees. Remove tf_qualifying_scope manipulation.
701 <case SCOPE_REF>: Call tsubst_scope instead of calling
702 tsubst with tf_qualifying_scope set.
703
704 2023-03-01 Patrick Palka <ppalka@redhat.com>
705 Jason Merrill <jason@redhat.com>
706
707 PR c++/108219
708 PR c++/108218
709 * constexpr.cc (fold_to_constant): Define.
710 (maybe_constant_value): Move up early exit test for unevaluated
711 operands. Try reducing an unevaluated operand to a constant via
712 fold_to_constant.
713 (fold_non_dependent_expr_template): Add early exit test for
714 CONSTANT_CLASS_P nodes. Try reducing an unevaluated operand
715 to a constant via fold_to_constant.
716 * cp-tree.h (fold_to_constant): Declare.
717
718 2023-03-01 Jakub Jelinek <jakub@redhat.com>
719
720 PR c++/108606
721 * constexpr.cc (potential_constant_expression_1) <case DECL_EXPR>:
722 Only recurse on DECL_INITIAL (tmp) if tmp is a VAR_DECL, otherwise
723 just return true.
724
725 2023-02-28 Patrick Palka <ppalka@redhat.com>
726
727 PR c++/108848
728 * pt.cc (finish_template_variable): Move dependence check
729 to here from ...
730 (lookup_and_finish_template_variable): ... here.
731 * semantics.cc (finish_id_expression_1): Call
732 finish_template_variable sooner, before (and regardless of) the
733 type_dependent_expression_p test.
734
735 2023-02-28 Marek Polacek <polacek@redhat.com>
736
737 PR c++/108550
738 * pt.cc (lookup_and_finish_template_variable): Clear tf_partial.
739
740 2023-02-20 Marek Polacek <polacek@redhat.com>
741
742 PR c++/101073
743 * constexpr.cc (cxx_eval_call_expression): Replace shortcutting trivial
744 constructor/op= with a checking assert.
745
746 2023-02-20 Marek Polacek <polacek@redhat.com>
747
748 PR c++/108829
749 * pt.cc (prepend_one_capture): Set LAMBDA_CAPTURE_EXPLICIT_P.
750 (tsubst_lambda_expr): Pass LAMBDA_CAPTURE_EXPLICIT_P to
751 prepend_one_capture.
752
753 2023-02-18 Jason Merrill <jason@redhat.com>
754
755 DR 2518
756 PR c++/52809
757 PR c++/53638
758 PR c++/87389
759 PR c++/89741
760 PR c++/92099
761 PR c++/104041
762 PR c++/104691
763 * semantics.cc (finish_static_assert): Don't diagnose in
764 template context.
765
766 2023-02-17 Patrick Palka <ppalka@redhat.com>
767
768 PR c++/108243
769 PR c++/97553
770 * cp-gimplify.cc (enum fold_flags): Define.
771 (fold_flags_t): Declare.
772 (cp_fold_data::genericize): Replace this data member with ...
773 (cp_fold_data::fold_flags): ... this.
774 (cp_fold_r): Adjust use of cp_fold_data and calls to cp_fold.
775 (cp_fold_function): Likewise.
776 (cp_fold_maybe_rvalue): Add an internal overload that
777 additionally takes and propagates a fold_flags_t parameter, and
778 define the existing public overload in terms of it.
779 (cp_fold_rvalue): Likewise.
780 (cp_fully_fold_init): Adjust use of cp_fold_data.
781 (fold_cache): Replace with ...
782 (fold_caches): ... this 2-element array of caches.
783 (get_fold_cache): Define.
784 (clear_fold_cache): Adjust.
785 (cp_fold): Add fold_flags_t parameter. Use get_fold_cache.
786 Pass flags to calls to cp_fold, cp_fold_rvalue and
787 cp_fold_maybe_rvalue.
788 <case CALL_EXPR>: If ff_mce_false is set, fold
789 __builtin_is_constant_evaluated to false and pass mce_false to
790 maybe_constant_value.
791
792 2023-02-17 Patrick Palka <ppalka@redhat.com>
793
794 * constexpr.cc (constexpr_call::manifestly_const_eval): Give
795 it type int instead of bool.
796 (constexpr_ctx::manifestly_const_eval): Give it type mce_value
797 instead of bool.
798 (cxx_eval_builtin_function_call): Adjust after making
799 manifestly_const_eval tri-state.
800 (cxx_eval_call_expression): Likewise.
801 (cxx_eval_binary_expression): Likewise.
802 (cxx_eval_conditional_expression): Likewise.
803 (cxx_eval_constant_expression): Likewise.
804 (cxx_eval_outermost_constant_expr): Likewise.
805 (cxx_constant_value): Likewise.
806 (cxx_constant_dtor): Likewise.
807 (maybe_constant_value): Give manifestly_const_eval parameter
808 type mce_value instead of bool and adjust accordingly.
809 (fold_non_dependent_expr_template): Adjust call
810 to cxx_eval_outermost_constant_expr.
811 (fold_non_dependent_expr): Likewise.
812 (maybe_constant_init_1): Likewise.
813 * constraint.cc (satisfy_atom): Adjust call to
814 maybe_constant_value.
815 * cp-tree.h (enum class mce_value): Define.
816 (maybe_constant_value): Adjust manifestly_const_eval parameter
817 type and default argument.
818 * decl.cc (compute_array_index_type_loc): Adjust call to
819 maybe_constant_value.
820 * pt.cc (convert_nontype_argument): Likewise.
821
822 2023-02-16 Patrick Palka <ppalka@redhat.com>
823
824 PR c++/107773
825 * cp-tree.h (enum tsubst_flags): New flag tf_qualifying_scope.
826 * decl.cc (make_typename_type): Use lookup_member instead of
827 lookup_field. If tf_qualifying_scope is set, pass want_type=true
828 instead of =false to lookup_member. Generalize format specifier
829 in diagnostic to handle both type and non-type bindings.
830 * pt.cc (tsubst_aggr_type_1): Clear tf_qualifying_scope. Tidy
831 the function.
832 (tsubst_decl) <case USING_DECL>: Set tf_qualifying_scope when
833 substituting USING_DECL_SCOPE.
834 (tsubst): Clear tf_qualifying_scope right away and remember if
835 it was set. Do the same for tf_tst_ok sooner.
836 <case TYPENAME_TYPE>: Set tf_qualifying_scope when substituting
837 TYPE_CONTEXT. Pass tf_qualifying_scope to make_typename_type
838 if it was set.
839 (tsubst_qualified_id): Set tf_qualifying_scope when substituting
840 the scope.
841 (tsubst_copy): Clear tf_qualifying_scope and remember if it was
842 set.
843 <case SCOPE_REF>: Set tf_qualifying_scope when substituting the
844 scope.
845 <case *_TYPE>: Pass tf_qualifying_scope to tsubst if it was set.
846 * search.cc (lookup_member): Document default argument.
847
848 2023-02-16 Patrick Palka <ppalka@redhat.com>
849
850 * cp-tree.h: Mechanically drop static from static inline
851 functions via s/^static inline/inline/g.
852
853 2023-02-15 Marek Polacek <polacek@redhat.com>
854
855 PR c++/106675
856 * call.cc (joust_maybe_elide_copy): Return false for ck_ambig.
857
858 2023-02-10 Marek Polacek <polacek@redhat.com>
859
860 PR c++/107079
861 * call.cc (set_up_extended_ref_temp): Pass var to maybe_constant_init.
862
863 2023-02-09 Tobias Burnus <tobias@codesourcery.com>
864
865 * parser.cc (cp_parser_omp_allocate): Parse align
866 clause and check for restrictions.
867
868 2023-02-09 Jakub Jelinek <jakub@redhat.com>
869
870 PR c++/108698
871 * mangle.cc (write_expression, write_template_arg): Handle
872 EXCESS_PRECISION_EXPR with REAL_CST operand as
873 write_template_arg_literal on fold_convert of the REAL_CST
874 to EXCESS_PRECISION_EXPR type.
875
876 2023-02-06 Patrick Palka <ppalka@redhat.com>
877
878 PR c++/107461
879 * cp-tree.h (call_expr_dependent_name): Declare.
880 * pt.cc (iterative_hash_template_arg) <case CALL_EXPR>: Use
881 call_expr_dependent_name instead of dependent_name.
882 * tree.cc (call_expr_dependent_name): Define.
883 (called_fns_equal): Adjust to take two CALL_EXPRs instead of
884 CALL_EXPR_FNs thereof. Use call_expr_dependent_name instead
885 of dependent_name.
886 (cp_tree_equal) <case CALL_EXPR>: Adjust call to called_fns_equal.
887
888 2023-02-03 Marek Polacek <polacek@redhat.com>
889
890 PR c++/108158
891 * constexpr.cc (cxx_eval_array_reference): Don't replace
892 new_ctx.object.
893
894 2023-02-03 Patrick Palka <ppalka@redhat.com>
895
896 PR c++/107461
897 * semantics.cc (finish_call_expr): Strip ADDR_EXPR from
898 the selected callee during overload set pruning.
899
900 2023-02-03 Patrick Palka <ppalka@redhat.com>
901
902 PR c++/96745
903 * class.cc (check_methods): Diagnose an unviable OVERLOAD
904 set for CLASSTYPE_DESTRUCTOR differently from an ambiguous one.
905 Then prune the OVERLOAD to a single function.
906 (check_bases_and_members): Handle CLASSTYPE_DESTRUCTOR being
907 an OVERLOAD when calling deduce_noexcept_on_destructor.
908 Document why it has to be called before check_methods.
909
910 2023-02-03 Patrick Palka <ppalka@redhat.com>
911
912 PR c++/108579
913 * class.cc (check_methods): Swap order of constraints_satisfied_p
914 and copy/move_fn_p tests.
915
916 2023-02-01 Marek Polacek <polacek@redhat.com>
917
918 PR c++/107755
919 * call.cc (build_new_op): Don't call warn_logical_operator when
920 processing a template.
921
922 2023-02-01 Jakub Jelinek <jakub@redhat.com>
923
924 PR c++/108607
925 * constexpr.cc (cxx_eval_constant_expression): Handle OMP_*
926 and OACC_* constructs as non-constant.
927 (potential_constant_expression_1): Handle OMP_SCAN and OMP_SCOPE.
928
929 2023-02-01 Jason Merrill <jason@redhat.com>
930
931 * class.cc (note_name_declared_in_class): Change from permerror to
932 -Wchanges-meaning pedwarn, forcing -pedantic-errors for most cases.
933
934 2023-01-31 Jason Merrill <jason@redhat.com>
935
936 PR c++/108559
937 * cp-gimplify.cc (any_non_eliding_target_exprs): New.
938 (cp_genericize_init): Check it.
939
940 2023-01-31 Marek Polacek <polacek@redhat.com>
941
942 PR c++/107593
943 PR c++/108597
944 * cp-tree.h (instantiation_dependent_expression_p): Don't
945 declare here.
946
947 2023-01-26 Marek Polacek <polacek@redhat.com>
948
949 PR c++/105300
950 * parser.cc: Remove unnecessary forward declarations.
951 (cp_parser_string_literal): New wrapper.
952 (cp_parser_string_literal_common): Renamed from
953 cp_parser_string_literal. Add a bool parameter. Give an error when
954 UDLs are not permitted.
955 (cp_parser_userdef_string_literal): New wrapper.
956 (finish_userdef_string_literal): Renamed from
957 cp_parser_userdef_string_literal.
958 (cp_parser_primary_expression): Call cp_parser_userdef_string_literal
959 instead of cp_parser_string_literal.
960 (cp_parser_linkage_specification): Move a variable declaration closer
961 to its first use.
962 (cp_parser_static_assert): Likewise.
963 (cp_parser_operator): Call cp_parser_userdef_string_literal instead of
964 cp_parser_string_literal.
965 (cp_parser_asm_definition): Move a variable declaration closer to its
966 first use.
967 (cp_parser_asm_specification_opt): Move variable declarations closer to
968 their first use.
969 (cp_parser_asm_operand_list): Likewise.
970 (cp_parser_asm_clobber_list): Likewise.
971
972 2023-01-26 Jakub Jelinek <jakub@redhat.com>
973
974 PR c++/108503
975 * parser.cc (cp_convert_omp_range_for): If cp_finish_decomp has been
976 called in !processing_template_decl with processing_template_decl
977 temporarily set, clear DECL_HAS_VALUE_EXPR_P on the vars temporarily.
978 (cp_finish_omp_range_for): And set it back again here.
979
980 2023-01-25 Jakub Jelinek <jakub@redhat.com>
981
982 PR c++/108525
983 * mangle.cc (write_closure_type_name): Don't assume all
984 lambda operator() fns are methods.
985
986 2023-01-24 Jason Merrill <jason@redhat.com>
987
988 PR c++/108504
989 * parser.cc (cp_lexer_new_main): Pass C_LEX_STRING_NO_JOIN for first
990 token, too.
991
992 2023-01-24 Jason Merrill <jason@redhat.com>
993
994 PR c++/108526
995 * pt.cc (tsubst_function_decl): Handle static lambda.
996
997 2023-01-24 Jakub Jelinek <jakub@redhat.com>
998
999 PR c++/108474
1000 * cp-gimplify.cc (cp_fold_r): Revert 2023-01-19 changes.
1001
1002 2023-01-24 Jason Merrill <jason@redhat.com>
1003
1004 PR c++/107303
1005 PR c++/107329
1006 * cp-gimplify.cc (cp_fold_r) [TARGET_EXPR]: In case of double
1007 TARGET_EXPR, keep the outer one instead of the inner one.
1008 (maybe_replace_decl): New.
1009
1010 2023-01-23 Jason Merrill <jason@redhat.com>
1011
1012 PR c++/107267
1013 * cp-gimplify.cc (cp_gimplify_init_expr): Allow unexpected elision
1014 of trivial types.
1015
1016 2023-01-23 Marek Polacek <polacek@redhat.com>
1017
1018 PR c++/107797
1019 * cvt.cc (ocp_convert): copy_warning when creating a new
1020 COMPOUND_EXPR.
1021 * init.cc (build_new_1): Suppress -Wunused-value on
1022 compiler-generated COMPOUND_EXPRs.
1023
1024 2023-01-23 Jason Merrill <jason@redhat.com>
1025
1026 PR c++/108195
1027 * call.cc (build_user_type_conversion_1): Check whether the
1028 iterators also find a list ctor.
1029
1030 2023-01-23 Jason Merrill <jason@redhat.com>
1031
1032 PR c++/108496
1033 * decl.cc (grokdeclarator): Check whether DECL_RESULT is already
1034 set.
1035
1036 2023-01-23 Jason Merrill <jason@redhat.com>
1037
1038 PR c++/53288
1039 DR 1299
1040 * call.cc (extend_ref_init_temps_1): Handle ptrmem expression.
1041
1042 2023-01-19 Jakub Jelinek <jakub@redhat.com>
1043
1044 PR c++/108437
1045 * cp-tree.h (keep_unused_object_arg): Declare.
1046 * call.cc (keep_unused_object_arg): No longer static.
1047 * tree.cc (build_min_non_dep_op_overload): Handle ARRAY_REF
1048 with overload being static member function.
1049
1050 2023-01-19 Jakub Jelinek <jakub@redhat.com>
1051
1052 PR c++/53932
1053 * cp-gimplify.cc (cp_fold_r): During cp_fully_fold_init replace
1054 DECL_ANON_UNION_VAR_P VAR_DECLs with their corresponding
1055 DECL_VALUE_EXPR.
1056
1057 2023-01-16 Jakub Jelinek <jakub@redhat.com>
1058
1059 PR c++/105593
1060 * decl.cc (cp_finish_decl): Check warning_enabled_at
1061 at the DECL_SOURCE_LOCATION (decl) for OPT_Winit_self instead
1062 of warn_init_self.
1063
1064 2023-01-14 Jakub Jelinek <jakub@redhat.com>
1065
1066 PR c++/108365
1067 * typeck.cc (cp_build_binary_op): Use may_shorten_divmod for integral
1068 division or modulo.
1069
1070 2023-01-13 Jakub Jelinek <jakub@redhat.com>
1071
1072 PR c++/108285
1073 * cvt.cc (cp_convert_and_check): For EXCESS_PRECISION_EXPR
1074 use its operand except that for warning purposes use the original
1075 EXCESS_PRECISION_EXPR.
1076 * call.cc (convert_like_internal): Only look through
1077 EXCESS_PRECISION_EXPR when calling cp_convert, not when calling
1078 cp_convert_and_check.
1079
1080 2023-01-09 Jakub Jelinek <jakub@redhat.com>
1081
1082 PR c++/105838
1083 PR c++/108047
1084 PR c++/108266
1085 * call.cc (maybe_init_list_as_range): Always return NULL_TREE if
1086 processing_template_decl.
1087
1088 2023-01-05 Patrick Palka <ppalka@redhat.com>
1089
1090 PR c++/108275
1091 * parser.cc (cp_parser_class_head): Use dk_deferred instead of
1092 dk_no_check when parsing the class name.
1093
1094 2023-01-05 Jakub Jelinek <jakub@redhat.com>
1095
1096 PR c++/108286
1097 * semantics.cc (finish_omp_target_clauses): Ignore clauses other than
1098 OMP_CLAUSE_MAP.
1099
1100 2023-01-04 Patrick Palka <ppalka@redhat.com>
1101
1102 PR c++/108282
1103 * decl2.cc (mark_single_function): Ignore mark_used failure
1104 only in a non-SFINAE context rather than in a SFINAE one.
1105
1106 2023-01-04 Jakub Jelinek <jakub@redhat.com>
1107
1108 PR c++/108206
1109 * decl.cc (merge_default_template_args): Return false if either
1110 new_parm or old_parm are erroneous.
1111
1112 \f
1113 Copyright (C) 2023 Free Software Foundation, Inc.
1114
1115 Copying and distribution of this file, with or without modification,
1116 are permitted in any medium without royalty provided the copyright
1117 notice and this notice are preserved.