1 2023-05-19 Andrew Pinski <apinski@marvell.com>
4 * lang-specs.h ("@c++-header"): Add %w after
6 ("@c++-system-header"): Likewise.
7 ("@c++-user-header"): Likewise.
9 2023-05-19 Patrick Palka <ppalka@redhat.com>
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.
15 2023-05-19 Patrick Palka <ppalka@redhat.com>
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.
24 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
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.
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.
63 2023-05-17 Jakub Jelinek <jakub@redhat.com>
66 * init.cc (build_zero_init_1): Don't initialize zero-width bitfields.
67 For unions only initialize the first FIELD_DECL.
69 2023-05-16 Marek Polacek <polacek@redhat.com>
72 * typeck.cc (check_return_expr): In a template, return only after
73 suppressing -Wdangling-reference.
75 2023-05-16 Patrick Palka <ppalka@redhat.com>
78 * call.cc (add_list_candidates): Check for invalid designated
79 initialization sooner and even for types that have a list
82 2023-05-11 Patrick Palka <ppalka@redhat.com>
85 * typeck2.cc (poison_mutable_constructors): Define.
86 (store_init_value): Use it instead of setting
87 CONSTRUCTOR_MUTABLE_POISON directly.
89 2023-05-11 Patrick Palka <ppalka@redhat.com>
90 Jonathan Wakely <jwakely@redhat.com>
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.
100 2023-05-10 Marek Polacek <polacek@redhat.com>
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.
108 2023-05-10 Jason Merrill <jason@redhat.com>
110 * call.cc (convert_like_internal): Share ck_ref_bind handling
111 between all bad conversions.
113 2023-05-10 Jason Merrill <jason@redhat.com>
116 * constexpr.cc (cxx_eval_outermost_constant_expr): Preserve
118 (potential_constant_expression_1): Check TARGET_EXPR_ELIDING_P.
119 * typeck2.cc (store_init_value): Diagnose constinit sooner.
121 2023-05-10 Jason Merrill <jason@redhat.com>
123 * constexpr.cc (cxx_eval_outermost_constant_expr): Always check
124 for address of immediate fn.
125 (maybe_constant_init_1): Evaluate PTRMEM_CST.
127 2023-05-10 Jakub Jelinek <jakub@redhat.com>
130 * parser.cc (cp_parser_std_attribute): For unknown attributes with
131 arguments set TREE_VALUE (attribute) to error_mark_node after skipping
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.
138 2023-05-09 Patrick Palka <ppalka@redhat.com>
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.
145 2023-05-09 Patrick Palka <ppalka@redhat.com>
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.
153 2023-05-09 Jakub Jelinek <jakub@redhat.com>
156 * cp-gimplify.cc (process_stmt_assume_attribute): Diagnose pack
157 expansion of assume attribute.
159 2023-05-08 Patrick Palka <ppalka@redhat.com>
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.
167 2023-05-07 Patrick Palka <ppalka@redhat.com>
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.
174 2023-05-07 Patrick Palka <ppalka@redhat.com>
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.
184 2023-05-07 Patrick Palka <ppalka@redhat.com>
186 * pt.cc (instantiate_alias_template): Exit early upon
187 error from coerce_template_parms. Remove dependence test
188 guarding constraints_satisfied_p.
190 2023-05-07 Patrick Palka <ppalka@redhat.com>
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.
206 2023-05-07 Patrick Palka <ppalka@redhat.com>
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.
213 2023-05-07 Patrick Palka <ppalka@redhat.com>
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.
227 2023-05-07 Patrick Palka <ppalka@redhat.com>
230 * semantics.cc (enforce_access): Check current_template_parms
231 instead of processing_template_decl when deciding whether to
232 defer the access check.
234 2023-05-07 Patrick Palka <ppalka@redhat.com>
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
242 2023-05-05 Jason Merrill <jason@redhat.com>
245 2023-04-27 Jason Merrill <jason@redhat.com>
248 * pt.cc (instantiate_decl): Assert !defer_ok for local
251 2023-05-03 Jason Merrill <jason@redhat.com>
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.
260 2023-05-03 Jakub Jelinek <jakub@redhat.com>
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.
266 2023-05-03 Jason Merrill <jason@redhat.com>
268 * pt.cc (reduce_template_parm_level): Fix comparison of
269 template template parm to cached version.
271 2023-05-02 Jason Merrill <jason@redhat.com>
273 * pt.cc (instantiate_class_template): Skip the RECORD_TYPE
275 (tsubst_template_decl): Clear CLASSTYPE_USE_TEMPLATE.
277 2023-05-02 Jason Merrill <jason@redhat.com>
279 * name-lookup.cc (pop_from_top_level): Don't
280 invalidate_class_lookup_cache.
282 2023-05-02 Jason Merrill <jason@redhat.com>
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.
291 2023-05-02 Jason Merrill <jason@redhat.com>
294 * constexpr.cc (cxx_fold_indirect_ref_1): Handle empty base first.
296 2023-05-01 Jason Merrill <jason@redhat.com>
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..
305 2023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
307 * Make-lang.in: Merge perf data collected when compiling cc1plus and runtime libraries
309 2023-04-27 Jason Merrill <jason@redhat.com>
311 * call.cc (print_conversion_rejection): Use iloc_sentinel.
313 2023-04-27 Jason Merrill <jason@redhat.com>
316 * pt.cc (instantiate_decl): Assert !defer_ok for local
319 2023-04-26 Jason Merrill <jason@redhat.com>
321 * init.cc (nsdmi_inst): Remove.
322 (maybe_instantiate_nsdmi_init): Use DECL_INITIAL instead.
324 2023-04-26 Jason Merrill <jason@redhat.com>
327 * pt.cc (instantiate_class_template): Do partially instantiate.
328 (tsubst_expr): Do call complete_type for partial instantiations.
330 2023-04-26 Jason Merrill <jason@redhat.com>
333 * pt.cc (regenerate_decl_from_template): Skip unique friends.
335 2023-04-26 Patrick Palka <ppalka@redhat.com>
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.
342 2023-04-25 Patrick Palka <ppalka@redhat.com>
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.
349 2023-04-25 Tobias Burnus <tobias@codesourcery.com>
351 * parser.cc (cp_parser_omp_scan_loop_body): Handle
352 zero exec statements before/after 'omp scan'.
354 2023-04-24 Patrick Palka <ppalka@redhat.com>
356 * cp-tree.h (cp_expr_location): Define here.
357 * tree.cc (cp_expr_location): Don't define here.
359 2023-04-21 Jason Merrill <jason@redhat.com>
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'.
366 2023-04-21 Patrick Palka <ppalka@redhat.com>
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.
372 2023-04-20 Patrick Palka <ppalka@redhat.com>
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
380 2023-04-20 Patrick Palka <ppalka@redhat.com>
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.
395 2023-04-20 Patrick Palka <ppalka@redhat.com>
397 * tree.cc (strip_typedefs): Move TREE_LIST handling to
398 strip_typedefs_expr. Dispatch to strip_typedefs_expr for
400 <case TYPENAME_TYPE>: Remove manual dispatching to
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
406 <case TREE_LIST>: Replace this with the better version from
409 2023-04-19 Patrick Palka <ppalka@redhat.com>
410 Jonathan Wakely <jwakely@redhat.com>
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
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.
431 2023-04-19 Patrick Palka <ppalka@redhat.com>
434 * pt.cc (try_class_unification): Don't ggc_free the copy of
437 2023-04-19 Jason Merrill <jason@redhat.com>
440 * decl.cc (grokdeclarator): Keep typedef_decl for __int128_t.
442 2023-04-17 Patrick Palka <ppalka@redhat.com>
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.
449 2023-04-15 Jason Merrill <jason@redhat.com>
452 * constexpr.cc (cxx_eval_constant_expression) [TARGET_EXPR]:
453 Check for complex initializer.
455 2023-04-13 Patrick Palka <ppalka@redhat.com>
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.
464 2023-04-13 Jason Merrill <jason@redhat.com>
467 * semantics.cc (check_trait_type): Handle incomplete type directly.
468 * typeck2.cc (cxx_incomplete_type_diagnostic): Remove assert.
470 2023-04-13 Jason Merrill <jason@redhat.com>
472 * typeck2.cc (cxx_incomplete_type_diagnostic): Return bool.
473 * cp-tree.h (cxx_incomplete_type_diagnostic): Adjust.
475 2023-04-12 Jakub Jelinek <jakub@redhat.com>
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.
483 2023-04-09 Iain Sandoe <iain@sandoe.co.uk>
485 * coroutines.cc (coro_rewrite_function_body): Ensure that added
486 bind expressions have scope blocks.
488 2023-04-04 Jason Merrill <jason@redhat.com>
491 * decl2.cc (find_last_decl): Return early if DECL_USE_TEMPLATE.
493 2023-04-03 Patrick Palka <ppalka@redhat.com>
496 * decl.cc (cp_finish_decl): Diagnose ordinary auto deduction
497 with no initializer, instead of asserting.
499 2023-04-01 Patrick Palka <ppalka@redhat.com>
502 * cp-tree.h (do_auto_deduction): Add defaulted tmpl parameter.
503 * pt.cc (convert_template_argument): Pass 'in_decl' as 'tmpl' to
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.
513 2023-04-01 Patrick Palka <ppalka@redhat.com>
517 * pt.cc (invalid_tparm_referent_p): Accept ADDR_EXPR of
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.
524 2023-04-01 Iain Sandoe <iain@sandoe.co.uk>
527 * coroutines.cc (flatten_await_stmt): Use the current count of
528 promoted temporaries to build a unique name for the frame entries.
530 2023-03-30 Jason Merrill <jason@redhat.com>
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.
540 2023-03-30 Jason Merrill <jason@redhat.com>
543 * pt.cc (unify) [FUNCTION_TYPE]: Handle function pointer
546 2023-03-30 Jakub Jelinek <jakub@redhat.com>
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.
553 2023-03-30 Jason Merrill <jason@redhat.com>
557 * decl2.cc (record_mangling): Use symtab_node::reset.
559 2023-03-30 Jakub Jelinek <jakub@redhat.com>
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.
566 2023-03-29 Jason Merrill <jason@redhat.com>
570 * pt.cc (alias_ctad_tweaks): Rewrite deduced args.
571 (type_targs_deducible_from): Handle null pack deduction.
573 2023-03-28 David Malcolm <dmalcolm@redhat.com>
576 * parser.cc (cp_parser_binary_expression): Update for new param of
577 check_for_xor_used_as_pow.
579 2023-03-28 Jakub Jelinek <jakub@redhat.com>
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.
586 2023-03-24 Patrick Palka <ppalka@redhat.com>
589 * parser.cc (cp_parser_class_specifier): Clear current_class_ptr
590 and current_class_ref sooner, before parsing a class definition.
592 2023-03-24 Jason Merrill <jason@redhat.com>
595 * pt.cc (type_unification_real): Adjust for partial ordering.
597 2023-03-23 Jason Merrill <jason@redhat.com>
600 * typeck.cc (build_ptrmemfunc): Drop 0-offset optimization
601 and location wrappers.
603 2023-03-23 Marek Polacek <polacek@redhat.com>
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.
611 2023-03-23 Jason Merrill <jason@redhat.com>
614 * pt.cc (find_parameter_packs_r): Handle null TREE_BINFO.
616 2023-03-22 Jason Merrill <jason@redhat.com>
619 * pt.cc (unify): Use fold of build_nop instead of fold_convert.
621 2023-03-22 Jason Merrill <jason@redhat.com>
624 * semantics.cc (finish_id_expression_1): Check scope before
625 returning id_expression.
627 2023-03-22 Alex Coplan <alex.coplan@arm.com>
630 * call.cc (build_over_call): Use make_temp_override to suppress
631 both unavailable and deprecated warnings when calling
634 2023-03-21 Jason Merrill <jason@redhat.com>
637 * init.cc (maybe_instantiate_nsdmi_init): Don't leave
638 current_function_decl set to a constructor.
640 2023-03-20 Marek Polacek <polacek@redhat.com>
643 * call.cc (add_template_candidate_real): Add explicit decls to the
644 set of candidates when the initializer is a braced-init-list.
646 2023-03-20 Jakub Jelinek <jakub@redhat.com>
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.
654 2023-03-17 Jason Merrill <jason@redhat.com>
657 * lambda.cc (prune_lambda_captures): Don't bother in a template.
659 2023-03-17 Jason Merrill <jason@redhat.com>
662 * except.cc (build_throw): Check dtor access.
664 2023-03-17 Jason Merrill <jason@redhat.com>
667 * friend.cc (do_friend): Handle namespace as scope argument.
668 * decl.cc (grokdeclarator): Pass down in_namespace.
670 2023-03-16 Jason Merrill <jason@redhat.com>
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.
678 2023-03-16 Jason Merrill <jason@redhat.com>
681 * pt.cc (tsubst_expr) [TAG_DEFN]: Handle partial instantiation.
683 2023-03-16 Jason Merrill <jason@redhat.com>
686 * semantics.cc (finish_qualified_id_expr): Don't try to build a
687 pointer-to-member if the scope is an enumeration.
689 2023-03-16 Patrick Palka <ppalka@redhat.com>
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.
696 2023-03-16 Patrick Palka <ppalka@redhat.com>
699 * constraint.cc (satisfaction_cache::get): Relax overly strict
700 checking assert in the constraint recursion case.
702 2023-03-16 Jason Merrill <jason@redhat.com>
705 * coroutines.cc (build_co_await): Handle lvalue 'o'.
707 2023-03-15 Jason Merrill <jason@redhat.com>
711 * typeck.cc (cp_build_modify_expr): Allow array initialization of
712 DECL_ARTIFICIAL variable.
714 2023-03-15 Marek Polacek <polacek@redhat.com>
717 * constexpr.cc (cxx_eval_store_expression): Strip location wrappers.
719 2023-03-15 Jason Merrill <jason@redhat.com>
722 * semantics.cc (check_template_template_default_arg): Check
723 maybe_get_template_decl_from_type_decl.
725 2023-03-15 Jason Merrill <jason@redhat.com>
730 * pt.cc (coerce_template_template_parms): Use args from
731 DECL_CONTEXT (arg_tmpl) instead of outer_args.
733 2023-03-15 Jason Merrill <jason@redhat.com>
736 * pt.cc (coerce_template_template_parms): Take the arg and parm
738 (coerce_template_template_parm): Adjust.
739 (template_template_parm_bindings_ok_p): Adjust.
740 (convert_template_argument): Adjust.
742 2023-03-14 Patrick Palka <ppalka@redhat.com>
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.
751 2023-03-14 Patrick Palka <ppalka@redhat.com>
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.
761 2023-03-14 Jason Merrill <jason@redhat.com>
764 * pt.cc (unify_pack_expansion): Check that TPARMS_PRIMARY_TEMPLATE
767 2023-03-14 Jason Merrill <jason@redhat.com>
770 * cp-gimplify.cc (genericize_if_stmt): Restore folding
771 of constant conditions.
773 2023-03-14 Jakub Jelinek <jakub@redhat.com>
776 * tree.cc (record_has_unique_obj_representations): Ignore unnamed
779 2023-03-13 Jason Merrill <jason@redhat.com>
782 * parser.cc (cp_parser_set_decl_spec_type): Use
783 redefined_builtin_type for extended_float_type_p.
785 2023-03-13 Marek Polacek <polacek@redhat.com>
788 * call.cc (reference_like_class_p): Check for std::span.
790 2023-03-10 Jakub Jelinek <jakub@redhat.com>
793 * decl.cc (cp_finish_decl): Don't clear TREE_READONLY on
794 automatic non-aggregate variables just because of
795 -fmerge-all-constants.
797 2023-03-10 Jakub Jelinek <jakub@redhat.com>
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.
805 2023-03-10 Jason Merrill <jason@redhat.com>
808 * lambda.cc (compare_lambda_template_head): Check more
811 2023-03-10 Jason Merrill <jason@redhat.com>
814 * mangle.cc (anon_aggr_naming_decl): New.
815 (write_unqualified_name): Use it.
817 2023-03-10 Jakub Jelinek <jakub@redhat.com>
820 * decl.cc (poplevel): Suppress OPT_Wunused_variable warning
823 2023-03-10 Jason Merrill <jason@redhat.com>
826 * decl.cc (grokdeclarator): Handle non-typedef typedef_decl.
828 2023-03-10 Jason Merrill <jason@redhat.com>
831 * class.cc (instantiate_type): Strip location wrapper.
833 2023-03-09 Jason Merrill <jason@redhat.com>
836 * init.cc (find_allocator_temps_r): New.
837 (combine_allocator_temps): Replace find_allocator_temp.
838 (build_vec_init): Adjust.
840 2023-03-09 Jason Merrill <jason@redhat.com>
844 * pt.cc (alias_ctad_tweaks): Continue after deduction failure.
846 2023-03-09 Jason Merrill <jason@redhat.com>
847 Michael Spertus <mike@spertus.com>
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.
858 2023-03-09 Jason Merrill <jason@redhat.com>
860 * cp-trait.def (IS_DEDUCIBLE): Add space to name.
862 2023-03-09 Jason Merrill <jason@redhat.com>
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.
877 2023-03-07 Jason Merrill <jason@redhat.com>
881 * pt.cc (tsubst_function_decl): Don't replace the closure
882 parameter if DECL_STATIC_FUNCTION_P.
884 2023-03-07 Marek Polacek <polacek@redhat.com>
887 * call.cc (reference_like_class_p): New.
888 (do_warn_dangling_reference): Add new bool parameter. See through
889 reference_like_class_p.
891 2023-03-07 Jakub Jelinek <jakub@redhat.com>
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
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.
900 2023-03-07 Marek Polacek <polacek@redhat.com>
903 * constexpr.cc (cxx_eval_call_expression): Relax assert.
905 2023-03-07 Marek Polacek <polacek@redhat.com>
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.
911 2023-03-04 Jakub Jelinek <jakub@redhat.com>
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.
920 2023-03-03 Patrick Palka <ppalka@redhat.com>
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.
929 2023-03-03 Alexandre Oliva <oliva@adacore.com>
931 * typeck.cc (cp_build_binary_op): Suppress redundant warning
932 for pfn null test in pmfn test with vbit-in-delta.
934 2023-03-02 Jakub Jelinek <jakub@redhat.com>
937 * cp-tree.h (enum cp_tree_index): Remove CPTI_FALLBACK_DFLOAT*_TYPE
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.
952 2023-03-02 Patrick Palka <ppalka@redhat.com>
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.
961 2023-03-02 Patrick Palka <ppalka@redhat.com>
964 * constexpr.cc (maybe_constant_init_1): Override
965 manifestly_const_eval to true if is_static.
967 2023-03-02 Jakub Jelinek <jakub@redhat.com>
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.
974 2023-03-02 Marek Polacek <polacek@redhat.com>
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.
981 2023-03-02 Jakub Jelinek <jakub@redhat.com>
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.
990 2023-03-01 Marek Polacek <polacek@redhat.com>
993 * constexpr.cc (cxx_eval_constant_expression): Emit an error when
994 a PTRMEM_CST cannot be evaluated.
996 2023-03-01 Patrick Palka <ppalka@redhat.com>
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.
1008 2023-03-01 Patrick Palka <ppalka@redhat.com>
1009 Jason Merrill <jason@redhat.com>
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
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.
1022 2023-03-01 Jakub Jelinek <jakub@redhat.com>
1025 * constexpr.cc (potential_constant_expression_1) <case DECL_EXPR>:
1026 Only recurse on DECL_INITIAL (tmp) if tmp is a VAR_DECL, otherwise
1029 2023-02-28 Patrick Palka <ppalka@redhat.com>
1032 * pt.cc (finish_template_variable): Move dependence check
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.
1039 2023-02-28 Marek Polacek <polacek@redhat.com>
1042 * pt.cc (lookup_and_finish_template_variable): Clear tf_partial.
1044 2023-02-20 Marek Polacek <polacek@redhat.com>
1047 * constexpr.cc (cxx_eval_call_expression): Replace shortcutting trivial
1048 constructor/op= with a checking assert.
1050 2023-02-20 Marek Polacek <polacek@redhat.com>
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.
1057 2023-02-18 Jason Merrill <jason@redhat.com>
1067 * semantics.cc (finish_static_assert): Don't diagnose in
1070 2023-02-17 Patrick Palka <ppalka@redhat.com>
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.
1096 2023-02-17 Patrick Palka <ppalka@redhat.com>
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
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.
1126 2023-02-16 Patrick Palka <ppalka@redhat.com>
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
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
1143 (tsubst_qualified_id): Set tf_qualifying_scope when substituting
1145 (tsubst_copy): Clear tf_qualifying_scope and remember if it was
1147 <case SCOPE_REF>: Set tf_qualifying_scope when substituting the
1149 <case *_TYPE>: Pass tf_qualifying_scope to tsubst if it was set.
1150 * search.cc (lookup_member): Document default argument.
1152 2023-02-16 Patrick Palka <ppalka@redhat.com>
1154 * cp-tree.h: Mechanically drop static from static inline
1155 functions via s/^static inline/inline/g.
1157 2023-02-15 Marek Polacek <polacek@redhat.com>
1160 * call.cc (joust_maybe_elide_copy): Return false for ck_ambig.
1162 2023-02-10 Marek Polacek <polacek@redhat.com>
1165 * call.cc (set_up_extended_ref_temp): Pass var to maybe_constant_init.
1167 2023-02-09 Tobias Burnus <tobias@codesourcery.com>
1169 * parser.cc (cp_parser_omp_allocate): Parse align
1170 clause and check for restrictions.
1172 2023-02-09 Jakub Jelinek <jakub@redhat.com>
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.
1180 2023-02-06 Patrick Palka <ppalka@redhat.com>
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
1190 (cp_tree_equal) <case CALL_EXPR>: Adjust call to called_fns_equal.
1192 2023-02-03 Marek Polacek <polacek@redhat.com>
1195 * constexpr.cc (cxx_eval_array_reference): Don't replace
1198 2023-02-03 Patrick Palka <ppalka@redhat.com>
1201 * semantics.cc (finish_call_expr): Strip ADDR_EXPR from
1202 the selected callee during overload set pruning.
1204 2023-02-03 Patrick Palka <ppalka@redhat.com>
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.
1214 2023-02-03 Patrick Palka <ppalka@redhat.com>
1217 * class.cc (check_methods): Swap order of constraints_satisfied_p
1218 and copy/move_fn_p tests.
1220 2023-02-01 Marek Polacek <polacek@redhat.com>
1223 * call.cc (build_new_op): Don't call warn_logical_operator when
1224 processing a template.
1226 2023-02-01 Jakub Jelinek <jakub@redhat.com>
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.
1233 2023-02-01 Jason Merrill <jason@redhat.com>
1235 * class.cc (note_name_declared_in_class): Change from permerror to
1236 -Wchanges-meaning pedwarn, forcing -pedantic-errors for most cases.
1238 2023-01-31 Jason Merrill <jason@redhat.com>
1241 * cp-gimplify.cc (any_non_eliding_target_exprs): New.
1242 (cp_genericize_init): Check it.
1244 2023-01-31 Marek Polacek <polacek@redhat.com>
1248 * cp-tree.h (instantiation_dependent_expression_p): Don't
1251 2023-01-26 Marek Polacek <polacek@redhat.com>
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
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
1271 (cp_parser_asm_specification_opt): Move variable declarations closer to
1273 (cp_parser_asm_operand_list): Likewise.
1274 (cp_parser_asm_clobber_list): Likewise.
1276 2023-01-26 Jakub Jelinek <jakub@redhat.com>
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.
1284 2023-01-25 Jakub Jelinek <jakub@redhat.com>
1287 * mangle.cc (write_closure_type_name): Don't assume all
1288 lambda operator() fns are methods.
1290 2023-01-24 Jason Merrill <jason@redhat.com>
1293 * parser.cc (cp_lexer_new_main): Pass C_LEX_STRING_NO_JOIN for first
1296 2023-01-24 Jason Merrill <jason@redhat.com>
1299 * pt.cc (tsubst_function_decl): Handle static lambda.
1301 2023-01-24 Jakub Jelinek <jakub@redhat.com>
1304 * cp-gimplify.cc (cp_fold_r): Revert 2023-01-19 changes.
1306 2023-01-24 Jason Merrill <jason@redhat.com>
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.
1314 2023-01-23 Jason Merrill <jason@redhat.com>
1317 * cp-gimplify.cc (cp_gimplify_init_expr): Allow unexpected elision
1320 2023-01-23 Marek Polacek <polacek@redhat.com>
1323 * cvt.cc (ocp_convert): copy_warning when creating a new
1325 * init.cc (build_new_1): Suppress -Wunused-value on
1326 compiler-generated COMPOUND_EXPRs.
1328 2023-01-23 Jason Merrill <jason@redhat.com>
1331 * call.cc (build_user_type_conversion_1): Check whether the
1332 iterators also find a list ctor.
1334 2023-01-23 Jason Merrill <jason@redhat.com>
1337 * decl.cc (grokdeclarator): Check whether DECL_RESULT is already
1340 2023-01-23 Jason Merrill <jason@redhat.com>
1344 * call.cc (extend_ref_init_temps_1): Handle ptrmem expression.
1346 2023-01-19 Jakub Jelinek <jakub@redhat.com>
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.
1354 2023-01-19 Jakub Jelinek <jakub@redhat.com>
1357 * cp-gimplify.cc (cp_fold_r): During cp_fully_fold_init replace
1358 DECL_ANON_UNION_VAR_P VAR_DECLs with their corresponding
1361 2023-01-16 Jakub Jelinek <jakub@redhat.com>
1364 * decl.cc (cp_finish_decl): Check warning_enabled_at
1365 at the DECL_SOURCE_LOCATION (decl) for OPT_Winit_self instead
1368 2023-01-14 Jakub Jelinek <jakub@redhat.com>
1371 * typeck.cc (cp_build_binary_op): Use may_shorten_divmod for integral
1374 2023-01-13 Jakub Jelinek <jakub@redhat.com>
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.
1384 2023-01-09 Jakub Jelinek <jakub@redhat.com>
1389 * call.cc (maybe_init_list_as_range): Always return NULL_TREE if
1390 processing_template_decl.
1392 2023-01-05 Patrick Palka <ppalka@redhat.com>
1395 * parser.cc (cp_parser_class_head): Use dk_deferred instead of
1396 dk_no_check when parsing the class name.
1398 2023-01-05 Jakub Jelinek <jakub@redhat.com>
1401 * semantics.cc (finish_omp_target_clauses): Ignore clauses other than
1404 2023-01-04 Patrick Palka <ppalka@redhat.com>
1407 * decl2.cc (mark_single_function): Ignore mark_used failure
1408 only in a non-SFINAE context rather than in a SFINAE one.
1410 2023-01-04 Jakub Jelinek <jakub@redhat.com>
1413 * decl.cc (merge_default_template_args): Return false if either
1414 new_parm or old_parm are erroneous.
1417 Copyright (C) 2023 Free Software Foundation, Inc.
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.