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