1 2023-09-30 Eugene Rozenfeld <erozen@microsoft.com>
3 * Make-lang.in: Make create_fdas_for_cc1plus target not .PHONY
5 2023-09-28 Richard Sandiford <richard.sandiford@arm.com>
7 * constexpr.cc (cxx_fold_indirect_ref): Remove unused variables.
9 2023-09-22 Jason Merrill <jason@redhat.com>
12 * pt.cc (expand_integer_pack): Use IMPLICIT_CONV_EXPR.
14 2023-09-22 Jason Merrill <jason@redhat.com>
16 * constexpr.cc (free_constructor): Handle null ce->value.
18 2023-09-22 Jason Merrill <jason@redhat.com>
21 * parser.cc (cp_parser_lambda_declarator_opt): Don't suggest
22 -std=c++14 for lambda templates.
23 * pt.cc (tsubst_expr): Move ANNOTATE_EXPR handling...
24 (tsubst_copy_and_build): ...here.
26 2023-09-22 Patrick Palka <ppalka@redhat.com>
29 * decl2.cc (grok_array_decl): Guard diagnostic and backward
30 compatibility fallback code paths with tf_error.
32 2023-09-22 Patrick Palka <ppalka@redhat.com>
35 * pt.cc (is_compatible_template_arg): New parameter 'args'.
36 Add the outer template arguments 'args' to 'new_args'.
37 (convert_template_argument): Pass 'args' to
38 is_compatible_template_arg.
40 2023-09-20 Jakub Jelinek <jakub@redhat.com>
42 * parser.cc (cp_parser_postfix_expression): Parse
43 __builtin_classify_type call with typename as argument.
44 * pt.cc (tsubst_copy_and_build): Handle __builtin_classify_type
45 with dependent typename as argument.
47 2023-09-20 Patrick Palka <ppalka@redhat.com>
50 * cxx-pretty-print.cc (cxx_pretty_printer::expression)
51 <case VAR_DECL>: Handle class NTTP objects by printing
53 <case VIEW_CONVERT_EXPR>: Strip const VIEW_CONVERT_EXPR
54 wrappers for class NTTPs.
55 (pp_cxx_template_argument_list): Don't handle class NTTP
58 2023-09-20 Patrick Palka <ppalka@redhat.com>
60 * pt.cc (tsubst_function_decl): Don't bother computing 'argvec'
61 when 'lambda_fntype' is set.
62 (tsubst_template_decl): Make sure we return a TEMPLATE_DECL
63 during specialization lookup. In the non-class non-function
64 template case, use tsubst_decl directly with use_spec_table=false,
65 update DECL_TI_ARGS and call register_specialization like
66 tsubst_decl would have done if use_spec_table=true.
68 2023-09-20 Jakub Jelinek <jakub@redhat.com>
71 * parser.h (struct cp_lexer): Add in_omp_decl_attribute member.
72 * cp-tree.h (cp_maybe_parse_omp_decl): Declare.
73 * parser.cc (cp_parser_handle_statement_omp_attributes): Diagnose
74 omp::decl attribute on statements. Adjust diagnostic wording for
76 (cp_parser_omp_directive_args): Add DECL_P argument, set TREE_PUBLIC
77 to it on the DEFERRED_PARSE tree.
78 (cp_parser_omp_sequence_args): Adjust caller.
79 (cp_parser_std_attribute): Handle omp::decl attribute.
80 (cp_parser_omp_var_list): If parser->lexer->in_omp_decl_attribute
81 don't expect any arguments, instead create clause or TREE_LIST for
83 (cp_parser_late_parsing_omp_declare_simd): Adjust diagnostic wording
85 (cp_maybe_parse_omp_decl): New function.
86 (cp_parser_omp_declare_target): If
87 parser->lexer->in_omp_decl_attribute and first token isn't name or
88 comma invoke cp_parser_omp_var_list.
89 * decl2.cc (cplus_decl_attributes): Adjust diagnostic wording for
90 omp::decl. Handle omp::decl on declarations.
91 * name-lookup.cc (finish_using_directive): Adjust diagnostic wording
94 2023-09-19 Ben Boeckel <ben.boeckel@kitware.com>
96 * mapper-client.cc, mapper-client.h (open_module_client): Accept
97 dependency tracking and track module mapper files as
99 * module.cc (make_mapper, get_mapper): Pass the dependency
102 2023-09-19 Ben Boeckel <ben.boeckel@kitware.com>
104 * module.cc (do_import): Report imported CMI files as
107 2023-09-19 Ben Boeckel <ben.boeckel@kitware.com>
109 * module.cc (preprocessed_module): Pass whether the module is
110 exported to dependency tracking.
112 2023-09-19 Javier Martinez <javier.martinez.bugzilla@gmail.com>
114 * class.cc (propagate_class_warmth_attribute): New function.
115 (check_bases_and_members): propagate hot and cold attributes
116 to all FUNCTION_DECL when the record is marked hot or cold.
117 * cp-tree.h (maybe_propagate_warmth_attributes): New function.
118 * decl2.cc (maybe_propagate_warmth_attributes): New function.
119 * method.cc (lazily_declare_fn): propagate hot and cold
120 attributes to lazily declared functions when the record is
123 2023-09-19 Patrick Palka <ppalka@redhat.com>
125 * ptree.cc (cxx_print_type): Remove TYPE_LANG_SPECIFIC
126 test guarding TYPE_TEMPLATE_INFO.
128 2023-09-19 Jason Merrill <jason@redhat.com>
131 * class.cc (add_implicit_default_ctor): Split out...
132 (add_implicitly_declared_members): ...from here.
133 Also call it when inheriting a default ctor.
135 2023-09-19 Marek Polacek <polacek@redhat.com>
137 * call.cc (build_over_call): Set ADDR_EXPR_DENOTES_CALL_P. Don't handle
138 immediate_invocation_p here.
139 * constexpr.cc (cxx_eval_call_expression): Use mce_true for
140 DECL_IMMEDIATE_FUNCTION_P.
141 (cxx_eval_conditional_expression): Call cp_fold_immediate.
142 * cp-gimplify.cc (enum fold_flags): Add ff_fold_immediate.
143 (maybe_replace_decl): Make static.
144 (cp_fold_r): Expand immediate invocations.
145 (cp_fold_immediate_r): New.
146 (cp_fold_immediate): New.
147 * cp-tree.h (ADDR_EXPR_DENOTES_CALL_P): Define.
148 (cp_fold_immediate): Declare.
149 * tree.cc (bot_replace): Don't handle immediate invocations here.
151 2023-09-19 Patrick Palka <ppalka@redhat.com>
154 * cvt.cc (convert_to_void) <case INDIRECT_REF>: Only call
155 complete_type if the type is volatile.
156 <case VAR_DECL>: Likewise.
158 2023-09-19 Patrick Palka <ppalka@redhat.com>
161 * semantics.cc (finish_decltype_type): For an NTTP object,
162 return its type modulo cv-quals.
164 2023-09-18 Patrick Palka <ppalka@redhat.com>
167 * pt.cc (try_class_unification): Strengthen TI_TEMPLATE equality
168 test by not calling most_general_template. Only unify the
169 innermost levels of template arguments.
170 (unify) <case CLASS_TYPE>: Only unify the innermost levels of
171 template arguments, and only if the template is primary.
173 2023-09-18 Patrick Palka <ppalka@redhat.com>
177 * semantics.cc (maybe_convert_cond): Look through implicit
178 INDIRECT_REF when deciding whether to issue a -Wparentheses
179 warning, and consider templated assignment expressions as well.
180 (finish_parenthesized_expr): Look through implicit INDIRECT_REF
181 when suppressing -Wparentheses warning.
182 * typeck.cc (build_x_modify_expr): Check simple assignments
183 ahead time too, not just compound assignments. Give the second
184 operand of MODOP_EXPR a non-null type so that it's not considered
185 always instantiation-dependent. Don't call suppress_warning.
187 2023-09-18 Patrick Palka <ppalka@redhat.com>
190 * pt.cc (unify): Return unify_success for identical dependent
191 DECL_P 'arg' and 'parm'.
192 <case CONST_DECL>: Remove handling.
194 2023-09-18 Patrick Palka <ppalka@redhat.com>
196 * call.cc (add_template_candidate_real): Check arity even
197 when there are no explicit template arguments. Combine the
198 two adjacent '!obj' tests into one.
200 2023-09-18 Patrick Palka <ppalka@redhat.com>
202 * pt.cc (register_specialization): Remove now-unnecessary
203 early exit for FUNCTION_DECL partial instantiation.
204 (tsubst_template_decl): Pass use_spec_table=false to
205 tsubst_function_decl. Set DECL_TI_ARGS of a non-lambda
206 FUNCTION_DECL specialization to the full set of arguments.
207 Simplify register_specialization call accordingly.
209 2023-09-18 Jason Merrill <jason@redhat.com>
211 * class.cc (check_subobject_offset): Use similar_type_p.
213 2023-09-12 Jason Merrill <jason@redhat.com>
216 * pt.cc (expand_integer_pack): Convert argument to int.
218 2023-09-12 Jason Merrill <jason@redhat.com>
221 * typeck2.cc (process_init_constructor_array): Use VEC_INIT_EXPR
222 regardless of seen_error.
224 2023-09-08 Patrick Palka <ppalka@redhat.com>
227 * pt.cc (check_non_deducible_conversions): Add bool parameter
228 passed down to check_non_deducible_conversion.
229 (fn_type_unification): Call check_non_deducible_conversions
230 an extra time before satisfaction with noninst_only_p=true.
231 (conversion_may_instantiate_p): Define.
232 (check_non_deducible_conversion): Add bool parameter controlling
233 whether to compute only conversions that are guaranteed to
234 not induce template instantiation.
236 2023-09-07 Sandra Loosemore <sandra@codesourcery.com>
239 * parser.cc (fixup_blocks_walker): Check for null BIND_EXPR_BLOCK.
241 2023-09-06 Jason Merrill <jason@redhat.com>
243 * class.cc (check_subobject_offset): Check
244 same_type_ignoring_top_level_qualifiers_p.
246 2023-09-05 Marek Polacek <polacek@redhat.com>
249 * constexpr.cc (verify_constant_explain_r): New.
250 (verify_constant): Call it.
252 2023-09-05 Jakub Jelinek <jakub@redhat.com>
255 * name-lookup.cc (check_local_shadow): Don't punt early for
256 DECL_EXTERNAL decls, instead just disable the shadowing of namespace
257 decls check for those and emit a pedwarn rather than error_at or
258 permerror for those. Formatting fix.
260 2023-09-05 Jakub Jelinek <jakub@redhat.com>
263 * name-lookup.h (struct cp_binding_level): Add artificial bit-field.
265 * name-lookup.cc (check_local_shadow): Skip artificial bindings when
266 checking if parameter scope is parent scope. Don't special case
267 FUNCTION_NEEDS_BODY_BLOCK. Diagnose the in_function_try_handler
268 cases in the b->kind == sk_function_parms test and verify no
269 non-artificial intervening scopes. Add missing auto_diagnostic_group.
270 * decl.cc (begin_function_body): Set
271 current_binding_level->artificial.
272 * semantics.cc (begin_function_try_block): Likewise.
274 2023-09-05 Patrick Palka <ppalka@redhat.com>
276 * parser.cc (cp_parser_parenthesized_expression_list_elt): Pass
277 nullptr as non_constant_p to cp_parser_braced_list if our
278 non_constant_p is null.
279 (cp_parser_initializer_list): Likewise to
280 cp_parser_initializer_clause. Avoid inspecting
281 clause_non_constant_p if it's uninitialized.
283 2023-09-05 Patrick Palka <ppalka@redhat.com>
285 * call.cc (build_user_type_conversion): Free allocated
287 (build_converted_constant_expr_internal): Use
288 conversion_obstack_sentinel instead.
289 (perform_dguide_overload_resolution): Likewise.
290 (build_new_function_call): Likewise.
291 (build_operator_new_call): Free allocated conversions.
292 (build_op_call): Use conversion_obstack_sentinel instead.
293 (build_conditional_expr): Use conversion_obstack_sentinel
294 instead, and hoist it out to the outermost scope.
295 (build_new_op): Use conversion_obstack_sentinel instead
296 and set it up before the first goto. Remove second unneeded goto.
297 (build_op_subscript): Use conversion_obstack_sentinel instead.
298 (ref_conv_binds_to_temporary): Likewise.
299 (build_new_method_call): Likewise.
300 (can_convert_arg): Likewise.
301 (can_convert_arg_bad): Likewise.
302 (perform_implicit_conversion_flags): Likewise.
303 (perform_direct_initialization_if_possible): Likewise.
304 (initialize_reference): Likewise.
306 2023-09-01 Jakub Jelinek <jakub@redhat.com>
309 * cp-tree.h (determine_local_discriminator): Add NAME argument with
311 (struct cp_decomp): New type.
312 (cp_finish_decl): Add DECOMP argument defaulted to nullptr.
313 (cp_maybe_mangle_decomp): Remove declaration.
314 (cp_finish_decomp): Add cp_decomp * argument, remove tree and unsigned
316 (cp_convert_range_for): Likewise.
317 * decl.cc (determine_local_discriminator): Add NAME argument, use it
318 if non-NULL, otherwise compute it the old way.
319 (maybe_commonize_var): Don't return early for structured bindings.
320 (cp_finish_decl): Add DECOMP argument, if non-NULL, call
321 cp_maybe_mangle_decomp.
322 (cp_maybe_mangle_decomp): Make it static with a forward declaration.
323 Call determine_local_discriminator. Replace FIRST and COUNT arguments
324 with DECOMP argument.
325 (cp_finish_decomp): Replace FIRST and COUNT arguments with DECOMP
327 * mangle.cc (find_decomp_unqualified_name): Remove.
328 (write_unqualified_name): Don't call find_decomp_unqualified_name.
329 (mangle_decomp): Handle mangling of static function/block scope
330 structured bindings. Don't call decl_mangling_context twice. Call
331 check_abi_tags, call write_abi_tags for abi version >= 19 and emit
332 -Wabi warnings if needed.
333 (write_guarded_var_name): Handle structured bindings.
334 (mangle_ref_init_variable): Use write_guarded_var_name.
335 * parser.cc (cp_parser_range_for): Adjust do_range_for_auto_deduction
336 and cp_convert_range_for callers.
337 (do_range_for_auto_deduction): Replace DECOMP_FIRST_NAME and
338 DECOMP_CNT arguments with DECOMP. Adjust cp_finish_decomp caller.
339 (cp_convert_range_for): Replace DECOMP_FIRST_NAME and
340 DECOMP_CNT arguments with DECOMP. Don't call cp_maybe_mangle_decomp,
341 adjust cp_finish_decl and cp_finish_decomp callers.
342 (cp_parser_decomposition_declaration): Don't call
343 cp_maybe_mangle_decomp, adjust cp_finish_decl and cp_finish_decomp
345 (cp_convert_omp_range_for): Adjust do_range_for_auto_deduction
346 and cp_finish_decomp callers.
347 (cp_finish_omp_range_for): Don't call cp_maybe_mangle_decomp,
348 adjust cp_finish_decl and cp_finish_decomp callers.
349 * pt.cc (tsubst_omp_for_iterator): Adjust tsubst_decomp_names
351 (tsubst_decomp_names): Replace FIRST and CNT arguments with DECOMP.
352 (tsubst_expr): Don't call cp_maybe_mangle_decomp, adjust
353 tsubst_decomp_names, cp_finish_decl, cp_finish_decomp and
354 cp_convert_range_for callers.
356 2023-08-30 Marek Polacek <polacek@redhat.com>
359 * parser.cc (cp_parser_initializer_list): Set CONSTRUCTOR_IS_DIRECT_INIT
360 when the designated initializer is of the .x{} form.
362 2023-08-30 Marek Polacek <polacek@redhat.com>
365 * decl.cc (grokdeclarator): Disallow constinit on functions.
367 2023-08-29 Marek Polacek <polacek@redhat.com>
369 * call.cc (convert_like_internal): Show where the conversion function
371 (maybe_show_nonconverting_candidate): New.
372 * cp-tree.h (maybe_show_nonconverting_candidate): Declare.
373 * typeck.cc (convert_for_assignment): Call it.
375 2023-08-25 Sandra Loosemore <sandra@codesourcery.com>
377 * cp-tree.h (cp_convert_omp_range_for): Adjust declaration.
378 * parser.cc (struct omp_for_parse_data): New.
379 (cp_parser_postfix_expression): Diagnose calls to OpenMP runtime
381 (check_omp_intervening_code): New.
382 (cp_parser_statement_seq_opt): Special-case nested loops, blocks,
383 and other constructs for OpenMP loops.
384 (cp_parser_iteration_statement): Reject loops in intervening code.
385 (cp_parser_omp_for_loop_init): Expand comments and tweak the
386 interface slightly to better distinguish input/output parameters.
387 (cp_convert_omp_range_for): Likewise.
388 (cp_parser_omp_loop_nest): New, split from cp_parser_omp_for_loop
389 and largely rewritten. Add more comments.
390 (insert_structured_blocks): New.
391 (find_structured_blocks): New.
392 (struct sit_data, substitute_in_tree_walker, substitute_in_tree):
394 (fixup_blocks_walker): New.
395 (cp_parser_omp_for_loop): Rewrite to use recursive descent instead
396 of a loop. Add logic to reshuffle the bits of code collected
397 during parsing so intervening code gets moved to the loop body.
398 (cp_parser_omp_loop): Remove call to finish_omp_for_block, which
400 (cp_parser_omp_simd): Likewise.
401 (cp_parser_omp_for): Likewise.
402 (cp_parser_omp_distribute): Likewise.
403 (cp_parser_oacc_loop): Likewise.
404 (cp_parser_omp_taskloop): Likewise.
405 (cp_parser_pragma): Reject OpenMP pragmas in intervening code.
406 * parser.h (struct cp_parser): Add omp_for_parse_state field.
407 * pt.cc (tsubst_omp_for_iterator): Adjust call to
408 cp_convert_omp_range_for.
409 * semantics.cc (finish_omp_for): Try harder to preserve location
410 of loop variable init expression for use in diagnostics.
411 (struct fofb_data, finish_omp_for_block_walker): New.
412 (finish_omp_for_block): Allow variables to be bound in a BIND_EXPR
413 nested inside BIND instead of directly in BIND itself.
415 2023-08-25 Sandra Loosemore <sandra@codesourcery.com>
417 * constexpr.cc (cxx_eval_constant_expression): Handle
418 OMP_STRUCTURED_BLOCK.
419 * pt.cc (tsubst_expr): Likewise.
421 2023-08-25 Uros Bizjak <ubizjak@gmail.com>
423 * call.cc (build_conditional_expr):
424 Rename TRUE/FALSE to true/false.
425 (build_new_op): Ditto.
427 2023-08-22 Jason Merrill <jason@redhat.com>
429 * pt.cc (outer_template_args): Handle non-template argument.
430 * constraint.cc (maybe_substitute_reqs_for): Pass decl to it.
431 * cp-tree.h (outer_template_args): Adjust.
433 2023-08-22 Jason Merrill <jason@redhat.com>
436 * cp-tree.h (member_like_constrained_friend_p): Declare.
437 * decl.cc (member_like_constrained_friend_p): New.
438 (function_requirements_equivalent_p): Check it.
439 (duplicate_decls): Check it.
440 (grokfndecl): Check friend template constraints.
441 * mangle.cc (decl_mangling_context): Check it.
442 (write_unqualified_name): Check it.
443 * pt.cc (uses_outer_template_parms_in_constraints): Fix for friends.
444 (tsubst_friend_function): Don't check satisfaction.
446 2023-08-22 Tobias Burnus <tobias@codesourcery.com>
448 * parser.cc (cp_parser_omp_clause_defaultmap): Parse
451 2023-08-15 Chung-Lin Tang <cltang@codesourcery.com>
452 Thomas Schwinge <thomas@codesourcery.com>
454 * parser.cc (OACC_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
456 2023-08-14 gnaggnoyil <gnaggnoyil@gmail.com>
460 * decl.cc (get_tuple_size): Update implementation for DR 2386.
462 2023-08-14 Jason Merrill <jason@redhat.com>
464 * parser.cc (cp_parser_simple_type_specifier): Handle -std=c++14
467 2023-08-12 Patrick Palka <ppalka@redhat.com>
468 Jason Merrill <jason@redhat.com>
471 * decl.cc (redeclaration_error_message): Remove special handling
472 for deduction guides.
473 (grokfndecl): Give deduction guides a dummy DECL_INITIAL.
475 2023-08-11 Patrick Palka <ppalka@redhat.com>
478 * parser.cc (cp_parser_type_requirement): Pass
479 check_dependency_p=true instead of =false.
481 2023-08-11 Patrick Palka <ppalka@redhat.com>
484 * decl.cc (grokdeclarator): Pass 'dname' instead of
485 'unqualified_id' as the name when building the VAR_DECL for a
486 static data member. Call check_explicit_specialization for a
487 TEMPLATE_ID_EXPR such member.
488 * pt.cc (finish_member_template_decl): Return NULL_TREE
489 instead of 'decl' when DECL_TEMPLATE_SPECIALIZATION is not
492 2023-08-11 Patrick Palka <ppalka@redhat.com>
494 * ptree.cc (cxx_print_decl): Check for DECL_LANG_SPECIFIC and
495 TS_DECL_COMMON only when necessary. Print DECL_TEMPLATE_INFO
496 for all decls that have it, not just VAR_DECL or FUNCTION_DECL.
497 Also print DECL_USE_TEMPLATE.
498 (cxx_print_type): Print TYPE_TEMPLATE_INFO.
499 <case BOUND_TEMPLATE_TEMPLATE_PARM>: Don't print TYPE_TI_ARGS
501 <case TEMPLATE_TYPE/TEMPLATE_PARM>: Print TEMPLATE_TYPE_PARM_INDEX
502 instead of printing the index, level and original level
505 2023-08-08 Marek Polacek <polacek@redhat.com>
507 * parser.cc (cp_parser_postfix_expression): Adjust the call to
508 cp_parser_braced_list.
509 (cp_parser_postfix_open_square_expression): Likewise.
510 (cp_parser_new_initializer): Likewise.
511 (cp_parser_assignment_expression): Adjust the call to
512 cp_parser_initializer_clause.
513 (cp_parser_lambda_introducer): Adjust the call to cp_parser_initializer.
514 (cp_parser_range_for): Adjust the call to cp_parser_braced_list.
515 (cp_parser_jump_statement): Likewise.
516 (cp_parser_mem_initializer): Likewise.
517 (cp_parser_template_argument): Likewise.
518 (cp_parser_default_argument): Adjust the call to cp_parser_initializer.
519 (cp_parser_initializer): Handle null is_direct_init and non_constant_p
521 (cp_parser_initializer_clause): Handle null non_constant_p argument.
522 (cp_parser_braced_list): Likewise.
523 (cp_parser_initializer_list): Likewise.
524 (cp_parser_member_declaration): Adjust the call to
525 cp_parser_initializer_clause and cp_parser_initializer.
526 (cp_parser_yield_expression): Adjust the call to cp_parser_braced_list.
527 (cp_parser_functional_cast): Likewise.
528 (cp_parser_late_parse_one_default_arg): Adjust the call to
529 cp_parser_initializer.
530 (cp_parser_omp_for_loop_init): Likewise.
531 (cp_parser_omp_declare_reduction_exprs): Likewise.
533 2023-08-08 Nathaniel Shead <nathanieloshead@gmail.com>
536 * parser.cc (cp_parser_decltype_expr): Report errors raised by
537 finish_id_expression.
539 2023-08-04 Tamar Christina <tamar.christina@arm.com>
541 * cp-tree.h (RANGE_FOR_NOVECTOR): New.
542 (cp_convert_range_for, finish_while_stmt_cond, finish_do_stmt,
543 finish_for_cond): Add novector param.
544 * init.cc (build_vec_init): Default novector to false.
545 * method.cc (build_comparison_op): Likewise.
546 * parser.cc (cp_parser_statement): Likewise.
547 (cp_parser_for, cp_parser_c_for, cp_parser_range_for,
548 cp_convert_range_for, cp_parser_iteration_statement,
549 cp_parser_omp_for_loop, cp_parser_pragma): Support novector.
550 (cp_parser_pragma_novector): New.
551 * pt.cc (tsubst_expr): Likewise.
552 * semantics.cc (finish_while_stmt_cond, finish_do_stmt,
553 finish_for_cond): Likewise.
555 2023-08-01 Lewis Hyatt <lhyatt@gmail.com>
557 * parser.cc (c_init_preprocess): New function.
558 (maybe_read_tokens_for_pragma_lex): New function.
559 (pragma_lex): Support preprocess-only mode.
560 (pragma_lex_discard_to_eol): New function.
562 2023-07-31 Chung-Lin Tang <cltang@codesourcery.com>
564 * parser.cc (cp_parser_oacc_host_data): Add checking requiring OpenACC
565 host_data construct to have an use_device clause.
567 2023-07-28 Ng YongXiang <yongxiangng@gmail.com>
571 * init.cc (build_vec_delete_1): Devirtualize array destruction.
573 2023-07-27 Patrick Palka <ppalka@redhat.com>
576 * constexpr.cc (cxx_eval_array_reference): Allow synthesizing an
577 empty subobject even if CONSTRUCTOR_NO_CLEARING is set.
578 (cxx_eval_bare_aggregate): Set 'no_slot' to true more generally
579 whenever new_ctx.ctor is set to NULL_TREE by init_subob_ctx,
580 i.e. whenever initializing an subobject of empty type.
581 (cxx_eval_vec_init_1): Define 'no_slot' as above and use it
584 2023-07-27 Nathaniel Shead <nathanieloshead@gmail.com>
587 * pt.cc (type_uses_auto): Check inside parameter packs.
589 2023-07-26 Patrick Palka <ppalka@redhat.com>
593 * pt.cc (reduce_template_parm_level): Set DECL_TEMPLATE_INFO
594 on the DECL_TEMPLATE_RESULT of the new ttp.
595 (add_defaults_to_ttp): Make a copy of the original ttp's
596 DECL_TEMPLATE_RESULT, and update this copy's DECL_TEMPLATE_INFO
598 (coerce_template_template_parms): Make sure 'scope_args' has
599 the right amount of levels for the ttp argument.
600 (most_general_template): Handle template template parameters.
601 (rewrite_template_parm): Set DECL_TEMPLATE_RESULT on the
602 DECL_TEMPLATE_RESULT of the new ttp.
604 2023-07-26 Patrick Palka <ppalka@redhat.com>
608 * pt.cc (coerce_template_template_parms): Simplify by using
609 DECL_INNERMOST_TEMPLATE_PARMS and removing redundant asserts.
610 Always pass the parameters of the most general template to
611 coerce_template_parms.
613 2023-07-26 Patrick Palka <ppalka@redhat.com>
616 * pt.cc (unify) <case INTEGER_CST>: Generalize to handle
619 2023-07-26 Marek Polacek <polacek@redhat.com>
621 * parser.cc (cp_parser_constant_expression): Allow non_constant_p to be
622 nullptr even when allow_non_constant_p is true. Don't call
623 _rvalue_constant_expression when not necessary. Move local variable
624 declarations closer to their first use.
625 (cp_parser_static_assert): Don't pass a dummy down to
626 cp_parser_constant_expression.
628 2023-07-26 Jason Merrill <jason@redhat.com>
631 * parser.cc (cp_parser_template_name): Skip non-member
632 lookup after the template keyword.
633 (cp_parser_lookup_name): Pass down template_keyword_p.
635 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
640 * constexpr.cc (constexpr_global_ctx::is_outside_lifetime): New
642 (constexpr_global_ctx::get_value): Don't return expired values.
643 (constexpr_global_ctx::get_value_ptr): Likewise.
644 (constexpr_global_ctx::remove_value): Mark value outside
646 (outside_lifetime_error): New function.
647 (cxx_eval_call_expression): No longer track save_exprs.
648 (cxx_eval_loop_expr): Likewise.
649 (cxx_eval_constant_expression): Add checks for outside lifetime
650 values. Remove local variables at end of bind exprs, and
651 temporaries after cleanup points.
653 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
656 * cp-gimplify.cc (cp_genericize_r): Transform RETURN_EXPRs to
657 not return dangling pointers.
658 * cp-tree.h (RETURN_EXPR_LOCAL_ADDR_P): New flag.
659 (check_return_expr): Add a new parameter.
660 * semantics.cc (finish_return_stmt): Set flag on RETURN_EXPR
661 when referring to dangling pointer.
662 * typeck.cc (check_return_expr): Disable transformation of
663 dangling pointers, instead pass this information to caller.
665 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
667 * constexpr.cc (modifying_const_object_error): Find the source
668 location of the const object's declaration.
669 (cxx_eval_constant_expression): Update input_location to the
670 location of the currently evaluated expression, if possible.
672 2023-07-25 Marek Polacek <polacek@redhat.com>
675 * pt.cc (lookup_and_finish_template_variable): Don't clear tf_partial
677 (instantiate_template): Reset all complain flags except
680 2023-07-25 Marek Polacek <polacek@redhat.com>
683 * constexpr.cc (cxx_eval_array_reference): Create a new constructor
684 only when we don't already have a matching one. Clear the object
685 when the type is non-scalar.
687 2023-07-21 Marek Polacek <polacek@redhat.com>
690 * constexpr.cc (potential_constant_expression_1): Try to complete the
691 type when !processing_template_decl.
693 2023-07-20 Marek Polacek <polacek@redhat.com>
696 * call.cc (implicit_conversion_1): Return early if the type isn't
699 2023-07-19 Marek Polacek <polacek@redhat.com>
702 * error.cc (dump_simple_decl): Print base class name.
704 2023-07-19 Marek Polacek <polacek@redhat.com>
707 * typeck2.cc (process_init_constructor_record): Don't emit
708 -Wmissing-field-initializers for empty classes.
710 2023-07-19 Patrick Palka <ppalka@redhat.com>
712 * pt.cc (type_unification_real): Test for PARM_DECL instead
713 of TEMPLATE_PARM_INDEX to distinguish a type vs non-type
714 template parameter pack.
715 (type_targs_deducible_from): Likewise.
717 2023-07-19 Patrick Palka <ppalka@redhat.com>
719 * pt.cc (tsubst_function_decl): Add defaulted 'use_spec_table'
720 flag parameter. Don't look up or insert into the specializations
721 table if 'use_spec_table' is false.
722 (tsubst_decl): Add defaulted 'use_spec_table' flag parameter.
723 Check for error_mark_node.
724 <case FUNCTION_DECL>: Pass 'use_spec_table' to
725 tsubst_function_decl.
726 <case TYPE/VAR_DECL>: Don't call coerce_template_parms.
727 Don't look up or insert into the specializations table if
728 'use_spec_table' is false. Exit earlier if the substituted
729 type is erroneous and we're not complaining, and do so for
730 alias specializations as well.
731 (instantiate_template): Pass false as 'use_spec_table'
732 to tsubst_decl. Call register_specialization afterwards.
734 2023-07-18 Jason Merrill <jason@redhat.com>
736 * constexpr.cc (cxx_eval_bit_cast): Check that the result of
737 native_interpret_aggregate doesn't need more evaluation.
739 2023-07-18 Patrick Palka <ppalka@redhat.com>
741 * call.cc (add_template_conv_candidate): Don't check for
742 non-empty 'candidates' here.
743 (build_op_call): Check it here, before we've considered any
744 conversion functions.
746 2023-07-18 Patrick Palka <ppalka@redhat.com>
749 * call.cc (add_conv_candidate): Check constraints.
751 2023-07-17 Jason Merrill <jason@redhat.com>
753 * constexpr.cc (cxx_eval_call_expression): Only cache
754 reduced_constant_expression_p results.
755 (reduced_constant_expression_p): Handle CONSTRUCTOR of scalar type.
756 (cxx_eval_constant_expression): Fold vectors here.
757 (cxx_eval_bare_aggregate): Not here.
759 2023-07-15 Patrick Palka <ppalka@redhat.com>
762 * call.cc (keep_unused_object_arg): Use cp_build_compound_expr
763 instead of building a COMPOUND_EXPR directly.
765 2023-07-15 Patrick Palka <ppalka@redhat.com>
768 * mangle.cc (write_expression): Handle TEMPLATE_ID_EXPR
769 whose template is already an IDENTIFIER_NODE.
771 2023-07-14 Nathaniel Shead <nathanieloshead@gmail.com>
773 * constexpr.cc (cxx_eval_constant_expression): Pass t to get_value.
775 2023-07-14 Jason Merrill <jason@redhat.com>
778 * constexpr.cc (cxx_eval_constant_expression): Move P2738 handling
780 * name-lookup.cc (get_cxx_dialect_name): Add C++26.
782 2023-07-14 Marek Polacek <polacek@redhat.com>
783 Jason Merrill <jason@redhat.com>
786 * decl.cc (cp_finish_decl): Set TREE_CONSTANT when initializing
787 an object of empty class type.
788 * pt.cc (value_dependent_expression_p) <case VAR_DECL>: Treat a
789 constexpr-declared non-constant variable as value-dependent.
791 2023-07-11 Patrick Palka <ppalka@redhat.com>
794 * pt.cc (lookup_template_variable): Pass all levels of arguments
795 to coerce_template_parms, and use the parameters from the most
798 2023-07-10 Patrick Palka <ppalka@redhat.com>
801 * pt.cc (redeclare_class_template): Relax the ttp DECL_CONTEXT
802 assert, and downgrade it to a checking assert.
804 2023-06-30 Patrick Palka <ppalka@redhat.com>
806 * cp-tree.h (TEMPLATE_PARM_DESCENDANTS): Harden.
807 (TEMPLATE_TYPE_DESCENDANTS): Define.
808 (TEMPLATE_TEMPLATE_PARM_SIMPLE_P): Define.
809 * pt.cc (reduce_template_parm_level): Revert
810 r14-418-g0bc2a1dc327af9 change.
811 (process_template_parm): Set TEMPLATE_TEMPLATE_PARM_SIMPLE_P
813 (uses_outer_template_parms): Determine the outer depth of
814 a template template parm without relying on DECL_CONTEXT.
815 (tsubst) <case TEMPLATE_TEMPLATE_PARM>: Cache lowering a
816 simple template template parm. Consistently use 'code'.
818 2023-06-29 Patrick Palka <ppalka@redhat.com>
821 * init.cc (maybe_instantiate_nsdmi_init): Mask out all
822 tsubst flags except for tf_warning_or_error.
824 2023-06-29 Patrick Palka <ppalka@redhat.com>
827 * cp-gimplify.cc (cp_fold) <case CONSTRUCTOR>: Propagate
828 CONSTRUCTOR_MUTABLE_POISON.
830 2023-06-29 Patrick Palka <ppalka@redhat.com>
832 * cp-tree.h (tree_template_info::partial): New data member.
833 (TI_PARTIAL_INFO): New tree accessor.
834 (most_specialized_partial_spec): Add defaulted bool parameter.
835 * module.cc (trees_out::core_vals) <case TEMPLATE_INFO>: Stream
837 (trees_in::core_vals) <case TEMPLATE_INFO>: Likewise.
838 * parser.cc (specialization_of): Adjust after making
839 most_specialized_partial_spec return TEMPLATE_INFO instead
841 * pt.cc (process_partial_specialization): Set TI_PARTIAL_INFO
842 of 'decl' to point back to the partial TEMPLATE_DECL. Likewise
843 (and pass rechecking=true to most_specialization_partial_spec).
844 (instantiate_class_template): Likewise.
845 (instantiate_template): Set TI_PARTIAL_INFO to the result of
846 most_specialization_partial_spec after forming a variable
847 template specialization.
848 (most_specialized_partial_spec): Add 'rechecking' parameter.
849 Exit early if the template is not primary. Use the TI_PARTIAL_INFO
850 of the corresponding TEMPLATE_INFO as a cache unless 'rechecking'
851 is true. Don't bother setting TREE_TYPE of each TREE_LIST.
852 (instantiate_decl): Adjust after making
853 most_specialized_partial_spec return TEMPLATE_INFO instead of
855 * ptree.cc (cxx_print_xnode) <case TEMPLATE_INFO>: Dump
858 2023-06-29 Eugene Rozenfeld <erozen@microsoft.com>
860 * Make-lang.in: Pass correct stage cc1plus when processing
861 profile data collected while building target libraries
863 2023-06-28 Patrick Palka <ppalka@redhat.com>
867 * cp-tree.h (lookup_template_variable): Add complain parameter.
868 * parser.cc (cp_parser_template_id): Pass tf_warning_or_error
869 to lookup_template_variable.
870 * pt.cc (lookup_template_variable): Add complain parameter.
871 Coerce template arguments here ...
872 (finish_template_variable): ... instead of here.
873 (lookup_and_finish_template_variable): Check for error_mark_node
874 result from lookup_template_variable.
875 (tsubst_copy) <case TEMPLATE_ID_EXPR>: Pass complain to
876 lookup_template_variable.
877 (instantiate_template): Use build2 instead of
878 lookup_template_variable to build a TEMPLATE_ID_EXPR
879 for most_specialized_partial_spec.
881 2023-06-28 Marek Polacek <polacek@redhat.com>
884 * typeck.cc (cp_build_unary_op): Check tf_warning before warning.
886 2023-06-28 Jason Merrill <jason@redhat.com>
889 * cp-tree.h (clone_attrs): Declare.
890 * method.cc (implicitly_declare_fn): Use it for inherited
892 * optimize.cc (clone_attrs): New.
893 (maybe_clone_body): Use it.
895 2023-06-28 Jason Merrill <jason@redhat.com>
898 * constexpr.cc (cxx_eval_constant_expression): In C++26, allow cast
899 from void* to the type of a pointed-to object.
901 2023-06-23 David Malcolm <dmalcolm@redhat.com>
904 * cp-name-hint.h (maybe_suggest_missing_header): New decl.
905 * decl.cc: Define INCLUDE_MEMORY. Add include of
907 (start_decl_1): Call maybe_suggest_missing_header.
908 * name-lookup.cc (maybe_suggest_missing_header): Remove "static".
910 2023-06-16 Alex Coplan <alex.coplan@arm.com>
912 * parser.cc (cp_parser_enum_specifier): Don't reject
913 elaborated-type-specifier with enum-base, instead emit new
914 Welaborated-enum-base warning.
916 2023-06-14 Jason Merrill <jason@redhat.com>
920 * call.cc (joust_maybe_elide_copy): Don't change cand.
921 (joust): Move the elided tiebreaker later.
923 2023-06-13 David Malcolm <dmalcolm@redhat.com>
926 * name-lookup.cc (missing_std_header::~missing_std_header): Reword
927 note to avoid negative tone of "forgetting".
929 2023-06-13 Jason Merrill <jason@redhat.com>
931 * tree.cc (build_target_expr): Check TYPE_HAS_MUTABLE_P.
933 2023-06-12 Tobias Burnus <tobias@codesourcery.com>
935 * parser.cc (cp_parser_omp_clause_map): Reword error message for
936 clearness especially with 'omp target (enter/exit) data.'
937 * semantics.cc (handle_omp_array_sections): Handle
938 GOMP_MAP_{ALWAYS_,}PRESENT_{TO,TOFROM,FROM,ALLOC} enum values.
940 2023-06-12 Jason Merrill <jason@redhat.com>
943 * call.cc (convert_like_internal) [ck_list]: Use
944 maybe_init_list_as_array.
945 * constexpr.cc (cxx_eval_vec_init_1): Init might have
947 * tree.cc (build_vec_init_elt): Likewise.
948 * init.cc (build_vec_init): Handle from_array from a
949 TARGET_EXPR. Retain TARGET_EXPR of a different type.
951 2023-06-11 Patrick Palka <ppalka@redhat.com>
954 * constexpr.cc (cxx_eval_call_expression): Synthesize defaulted
955 functions needed for constant evaluation.
956 (instantiate_cx_fn_r): Likewise.
958 2023-06-11 Patrick Palka <ppalka@redhat.com>
961 * pt.cc (lookup_template_class): Extend shortcut for looking up the
962 current class scope to consider outer class scopes too, and use
963 current_nonlambda_class_type instead of current_class_type. Only
964 call coerce_template_parms when specializing a primary template.
966 2023-06-10 Nathan Sidwell <nathan@acm.org>
969 * pt.cc (maybe_adjust_types_for_deduction): Implement DR976.
971 2023-06-09 Jason Merrill <jason@redhat.com>
975 * method.cc (build_comparison_op): Give retval a name.
976 * typeck.cc (check_return_expr): Fix for nameless variables.
978 2023-06-09 Jason Merrill <jason@redhat.com>
980 * parser.cc (cp_parser_simple_type_specifier): Check for auto
981 in template argument.
982 (cp_parser_template_type_arg): Remove auto checking.
984 2023-06-09 Jason Merrill <jason@redhat.com>
987 * call.cc (maybe_init_list_as_array): Check that the element type is
990 2023-06-07 Jason Merrill <jason@redhat.com>
994 * cp-tree.h (INIT_EXPR_NRV_P): New.
995 * semantics.cc (finalize_nrv_r): Check it.
996 * name-lookup.h (decl_in_scope_p): Declare.
997 * name-lookup.cc (decl_in_scope_p): New.
998 * typeck.cc (check_return_expr): Allow non-NRV
999 returns if the NRV is no longer in scope.
1001 2023-06-07 Jason Merrill <jason@redhat.com>
1004 * typeck.cc (want_nrvo_p): New.
1005 (check_return_expr): Handle -Wnrvo.
1007 2023-06-07 Jason Merrill <jason@redhat.com>
1011 * decl.cc (finish_function): Simplify NRV handling.
1012 * except.cc (maybe_set_retval_sentinel): Also set if NRV.
1013 (maybe_splice_retval_cleanup): Don't add the cleanup region
1014 if we don't need it.
1015 * semantics.cc (nrv_data): Add simple field.
1016 (finalize_nrv): Set it.
1017 (finalize_nrv_r): Check it and retval sentinel.
1018 * cp-tree.h (finalize_nrv): Adjust declaration.
1019 * typeck.cc (check_return_expr): Remove named_labels check.
1021 2023-06-07 Jason Merrill <jason@redhat.com>
1024 * typeck.cc (check_return_expr): Prevent NRV in the presence of
1027 2023-06-07 Jason Merrill <jason@redhat.com>
1030 * except.cc (maybe_splice_retval_cleanup): Change
1031 recognition of function body and try scopes.
1032 * semantics.cc (do_poplevel): Call it after poplevel.
1033 (at_try_scope): New.
1034 * cp-tree.h (maybe_splice_retval_cleanup): Adjust.
1036 2023-06-07 Jason Merrill <jason@redhat.com>
1038 * semantics.cc (finalize_nrv_r): [RETURN_EXPR]: Only replace the
1041 2023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com>
1042 Tobias Burnus <tobias@codesourcery.com>
1044 * parser.cc (cp_parser_omp_clause_defaultmap,
1045 cp_parser_omp_clause_map): Parse 'present'.
1046 (cp_parser_omp_clause_from_to): New; parse to/from
1047 clauses with optional 'present' modifier.
1048 (cp_parser_omp_all_clauses): Update call.
1049 (cp_parser_omp_target_data, cp_parser_omp_target_enter_data,
1050 cp_parser_omp_target_exit_data): Handle new enum value for
1052 * semantics.cc (finish_omp_target): Likewise.
1054 2023-06-04 Jason Merrill <jason@redhat.com>
1057 * cp-tree.h (enum cp_tree_index): Add CPTI_CALL_TERMINATE_FN.
1058 (call_terminate_fn): New macro.
1059 * cp-gimplify.cc (gimplify_must_not_throw_expr): Use it.
1060 * except.cc (init_exception_processing): Set it.
1061 (cp_protect_cleanup_actions): Return it.
1063 2023-06-03 Patrick Palka <ppalka@redhat.com>
1066 * pt.cc (is_specialization_of_friend): Fix overbroad check for
1067 a non-template member function of a class template.
1069 2023-06-03 Patrick Palka <ppalka@redhat.com>
1071 * pt.cc (iterative_hash_template_arg): Don't hash
1072 TEMPLATE_TEMPLATE_PARM specially.
1074 2023-06-03 Patrick Palka <ppalka@redhat.com>
1076 * class.cc (build_base_path): Check in_template_context instead
1077 of in_template_function.
1078 (resolves_to_fixed_type_p): Likewise.
1079 * cp-tree.h (in_template_context): Define.
1080 (in_template_function): Remove.
1081 * decl.cc (cp_make_fname_decl): Check current_function_decl
1082 and in_template_context instead of in_template_function.
1083 * decl2.cc (mark_used): Check in_template_context instead of
1084 in_template_function.
1085 * pt.cc (in_template_function): Remove.
1086 * semantics.cc (enforce_access): Check in_template_context
1087 instead of current_template_parms directly.
1089 2023-06-03 Patrick Palka <ppalka@redhat.com>
1092 * mangle.cc (write_expression): Handle NOEXCEPT_EXPR.
1094 2023-06-02 Jason Merrill <jason@redhat.com>
1098 * call.cc (sfk_copy_or_move): New.
1099 (joust): Add tiebreaker for explicit conv and copy ctor.
1101 2023-06-02 Jason Merrill <jason@redhat.com>
1105 * call.cc (maybe_init_list_as_array): Set DECL_MERGEABLE.
1106 (convert_like_internal) [ck_list]: Set it.
1107 (set_up_extended_ref_temp): Copy it.
1108 * tree.cc (handle_no_unique_addr_attribute): Set it.
1110 2023-06-01 Jason Merrill <jason@redhat.com>
1112 * typeck2.cc (check_narrowing): Check flag_permissive.
1114 2023-05-30 Tobias Burnus <tobias@codesourcery.com>
1117 * parser.cc (cp_parser_oacc_all_clauses,
1118 cp_parser_omp_all_clauses): Improve error wording.
1120 2023-05-19 Andrew Pinski <apinski@marvell.com>
1123 * lang-specs.h ("@c++-header"): Add %w after
1125 ("@c++-system-header"): Likewise.
1126 ("@c++-user-header"): Likewise.
1128 2023-05-19 Patrick Palka <ppalka@redhat.com>
1130 * constraint.cc (normalize_concept_check): Avoid having to do
1131 two norm_cache lookups. Remove unnecessary early exit for an
1132 ill-formed concept definition.
1134 2023-05-19 Patrick Palka <ppalka@redhat.com>
1137 * pt.cc (lookup_and_finish_template_variable): Don't call
1138 convert_from_reference.
1139 (tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Call
1140 convert_from_reference on the result of
1141 lookup_and_finish_template_variable.
1143 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1145 * call.cc (promoted_arithmetic_type_p): Use _P defines from tree.h.
1146 (build_conditional_expr): Ditto.
1147 (convert_like_internal): Ditto.
1148 (convert_arg_to_ellipsis): Ditto.
1149 (build_over_call): Ditto.
1150 (compare_ics): Ditto.
1151 * class.cc (is_empty_base_ref): Ditto.
1152 * coroutines.cc (rewrite_param_uses): Ditto.
1153 * cp-tree.h (DECL_DISCRIMINATOR_P): Ditto.
1154 (ARITHMETIC_TYPE_P): Ditto.
1155 * cvt.cc (ocp_convert): Ditto.
1156 * cxx-pretty-print.cc (pp_cxx_template_argument_list): Ditto.
1157 * decl.cc (layout_var_decl): Ditto.
1158 (get_tuple_size): Ditto.
1159 * error.cc (dump_simple_decl): Ditto.
1160 * lambda.cc (start_lambda_scope): Ditto.
1161 * mangle.cc (write_template_arg): Ditto.
1162 * method.cc (spaceship_comp_cat): Ditto.
1163 * module.cc (node_template_info): Ditto.
1164 (trees_out::start): Ditto.
1165 (trees_out::decl_node): Ditto.
1166 (trees_in::read_var_def): Ditto.
1167 (set_instantiating_module): Ditto.
1168 * name-lookup.cc (maybe_record_mergeable_decl): Ditto.
1169 (consider_decl): Ditto.
1170 (maybe_add_fuzzy_decl): Ditto.
1171 * pt.cc (convert_nontype_argument): Ditto.
1172 * semantics.cc (handle_omp_array_sections_1): Ditto.
1173 (finish_omp_clauses): Ditto.
1174 (finish_omp_target_clauses_r): Ditto.
1175 (is_this_parameter): Ditto.
1176 * tree.cc (build_cplus_array_type): Ditto.
1177 (is_this_expression): Ditto.
1178 * typeck.cc (do_warn_enum_conversions): Ditto.
1179 * typeck2.cc (store_init_value): Ditto.
1180 (check_narrowing): Ditto.
1182 2023-05-17 Jakub Jelinek <jakub@redhat.com>
1185 * init.cc (build_zero_init_1): Don't initialize zero-width bitfields.
1186 For unions only initialize the first FIELD_DECL.
1188 2023-05-16 Marek Polacek <polacek@redhat.com>
1191 * typeck.cc (check_return_expr): In a template, return only after
1192 suppressing -Wdangling-reference.
1194 2023-05-16 Patrick Palka <ppalka@redhat.com>
1197 * call.cc (add_list_candidates): Check for invalid designated
1198 initialization sooner and even for types that have a list
1201 2023-05-11 Patrick Palka <ppalka@redhat.com>
1204 * typeck2.cc (poison_mutable_constructors): Define.
1205 (store_init_value): Use it instead of setting
1206 CONSTRUCTOR_MUTABLE_POISON directly.
1208 2023-05-11 Patrick Palka <ppalka@redhat.com>
1209 Jonathan Wakely <jwakely@redhat.com>
1214 * pt.cc (convert_nontype_argument_function): Remove linkage
1215 requirement for C++17 and later.
1216 (invalid_tparm_referent_p) <case ADDR_EXPR>: Restrict
1217 DECL_ARTIFICIAL rejection test to VAR_DECL.
1219 2023-05-10 Marek Polacek <polacek@redhat.com>
1222 * method.cc (build_trait_object): New.
1223 (assignable_expr): Use it.
1224 (ref_xes_from_temporary): Likewise.
1225 (is_convertible_helper): Likewise. Check FUNC_OR_METHOD_TYPE_P.
1227 2023-05-10 Jason Merrill <jason@redhat.com>
1229 * call.cc (convert_like_internal): Share ck_ref_bind handling
1230 between all bad conversions.
1232 2023-05-10 Jason Merrill <jason@redhat.com>
1235 * constexpr.cc (cxx_eval_outermost_constant_expr): Preserve
1237 (potential_constant_expression_1): Check TARGET_EXPR_ELIDING_P.
1238 * typeck2.cc (store_init_value): Diagnose constinit sooner.
1240 2023-05-10 Jason Merrill <jason@redhat.com>
1242 * constexpr.cc (cxx_eval_outermost_constant_expr): Always check
1243 for address of immediate fn.
1244 (maybe_constant_init_1): Evaluate PTRMEM_CST.
1246 2023-05-10 Jakub Jelinek <jakub@redhat.com>
1249 * parser.cc (cp_parser_std_attribute): For unknown attributes with
1250 arguments set TREE_VALUE (attribute) to error_mark_node after skipping
1251 the balanced tokens.
1252 (cp_parser_std_attribute_list): If ... is used after attribute without
1253 arguments, diagnose it and return error_mark_node. If
1254 TREE_VALUE (attribute) is error_mark_node, don't call
1255 make_pack_expansion nor return early error_mark_node.
1257 2023-05-09 Patrick Palka <ppalka@redhat.com>
1260 * constraint.cc (satisfaction_cache::satisfaction_cache): In the
1261 unexpected case of evaluating an atom for the first time noisily,
1262 remove the cache slot that we inserted.
1264 2023-05-09 Patrick Palka <ppalka@redhat.com>
1267 * parser.cc (cp_parser_class_specifier): Don't pass a class
1268 context to noexcept_override_late_checks.
1269 (noexcept_override_late_checks): Remove 'type' parameter
1270 and use DECL_CONTEXT of 'fndecl' instead.
1272 2023-05-09 Jakub Jelinek <jakub@redhat.com>
1275 * cp-gimplify.cc (process_stmt_assume_attribute): Diagnose pack
1276 expansion of assume attribute.
1278 2023-05-08 Patrick Palka <ppalka@redhat.com>
1282 * pt.cc (do_auto_deduction): Move up resolve_nondeduced_context
1283 calls to happen before do_class_deduction. Add some
1284 error_mark_node tests.
1286 2023-05-07 Patrick Palka <ppalka@redhat.com>
1289 * cxx-pretty-print.cc (cxx_pretty_printer::unary_expression)
1290 <case ALIGNOF_EXPR>: Consider ALIGNOF_EXPR_STD_P.
1291 * error.cc (dump_expr) <case ALIGNOF_EXPR>: Likewise.
1293 2023-05-07 Patrick Palka <ppalka@redhat.com>
1297 * decl.cc (decl_jump_unsafe): Return bool instead of int.
1298 Don't consider TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1299 (check_previous_goto_1): Simplify now that decl_jump_unsafe
1300 returns bool instead of int.
1301 (check_goto): Likewise.
1303 2023-05-07 Patrick Palka <ppalka@redhat.com>
1305 * pt.cc (instantiate_alias_template): Exit early upon
1306 error from coerce_template_parms. Remove dependence test
1307 guarding constraints_satisfied_p.
1309 2023-05-07 Patrick Palka <ppalka@redhat.com>
1311 * cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Harden via
1312 TEMPLATE_TYPE_PARM_CHECK.
1313 (TPARMS_PRIMARY_TEMPLATE): Harden via TREE_VEC_CHECK.
1314 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Harden via
1315 TEMPLATE_TEMPLATE_PARM_CHECK.
1316 * cxx-pretty-print.cc (cxx_pretty_printer::simple_type_specifier):
1317 Guard PLACEHOLDER_TYPE_CONSTRAINTS access.
1318 * error.cc (dump_type) <case TEMPLATE_TYPE_PARM>: Use separate
1319 variable to store CLASS_PLACEHOLDER_TEMPLATE result.
1320 * pt.cc (outer_template_args): Use strip_innermost_template_args.
1321 (any_type_dependent_arguments_p): Exit early if
1322 !processing_template_decl. Use range-based for.
1323 (any_dependent_template_arguments_p): Likewise.
1325 2023-05-07 Patrick Palka <ppalka@redhat.com>
1328 * pt.cc (tsubst_copy_and_build) <case COMPONENT_REF>: Propagate
1329 REF_PARENTHESIZED_P more generally via force_paren_expr.
1330 * semantics.cc (force_paren_expr): Document default argument.
1332 2023-05-07 Patrick Palka <ppalka@redhat.com>
1335 * pt.cc (coerce_template_args_for_ttp): Mention we can hit the
1336 current_template_parms fallback when level-lowering a bound ttp.
1337 (tsubst_template_decl): Add lambda_tparms parameter. Prefer to
1338 use lambda_tparms instead of substituting DECL_TEMPLATE_PARMS.
1339 (tsubst_decl) <case TEMPLATE_DECL>: Pass NULL_TREE as lambda_tparms
1340 to tsubst_template_decl.
1341 (tsubst_lambda_expr): For a generic lambda, substitute
1342 DECL_TEMPLATE_PARMS and set current_template_parms to it
1343 before substituting the function type. Pass the substituted
1344 DECL_TEMPLATE_PARMS as lambda_tparms to tsubst_template_decl.
1346 2023-05-07 Patrick Palka <ppalka@redhat.com>
1349 * semantics.cc (enforce_access): Check current_template_parms
1350 instead of processing_template_decl when deciding whether to
1351 defer the access check.
1353 2023-05-07 Patrick Palka <ppalka@redhat.com>
1356 * constexpr.cc (potential_constant_expression_1) <case CALL_EXPR>:
1357 Reorganize to call get_fns sooner. Remove special handling of
1358 the object argument of a non-static member function call. Remove
1359 dead store to 'fun'.
1361 2023-05-05 Jason Merrill <jason@redhat.com>
1364 2023-04-27 Jason Merrill <jason@redhat.com>
1367 * pt.cc (instantiate_decl): Assert !defer_ok for local
1370 2023-05-03 Jason Merrill <jason@redhat.com>
1374 * friend.cc (do_friend): Don't call check_explicit_specialization if
1375 DECL_TEMPLATE_INFO is already set.
1376 * decl2.cc (check_classfn): Set DECL_TEMPLATE_INFO.
1377 * name-lookup.cc (set_decl_namespace): Likewise.
1379 2023-05-03 Jakub Jelinek <jakub@redhat.com>
1381 * cp-gimplify.cc (cp_fold_data): Move definition earlier.
1382 (cp_gimplify_expr): Pass address of ff_genericize | ff_mce_false
1383 constructed data rather than &pset to cp_walk_tree with cp_fold_r.
1385 2023-05-03 Jason Merrill <jason@redhat.com>
1387 * pt.cc (reduce_template_parm_level): Fix comparison of
1388 template template parm to cached version.
1390 2023-05-02 Jason Merrill <jason@redhat.com>
1392 * pt.cc (instantiate_class_template): Skip the RECORD_TYPE
1393 of a class template.
1394 (tsubst_template_decl): Clear CLASSTYPE_USE_TEMPLATE.
1396 2023-05-02 Jason Merrill <jason@redhat.com>
1398 * name-lookup.cc (pop_from_top_level): Don't
1399 invalidate_class_lookup_cache.
1401 2023-05-02 Jason Merrill <jason@redhat.com>
1404 * cp-tree.h (lookup_base): Add offset parm.
1405 * constexpr.cc (cxx_fold_indirect_ref_1): Pass it.
1406 * search.cc (struct lookup_base_data_s): Add offset.
1407 (dfs_lookup_base): Handle it.
1408 (lookup_base): Pass it.
1410 2023-05-02 Jason Merrill <jason@redhat.com>
1413 * constexpr.cc (cxx_fold_indirect_ref_1): Handle empty base first.
1415 2023-05-01 Jason Merrill <jason@redhat.com>
1418 * name-lookup.cc (maybe_push_to_top_level)
1419 (maybe_pop_from_top_level): Split out...
1420 * pt.cc (instantiate_body): ...from here.
1421 * init.cc (maybe_instantiate_nsdmi_init): Use them.
1422 * name-lookup.h: Declare them..
1424 2023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
1426 * Make-lang.in: Merge perf data collected when compiling cc1plus and runtime libraries
1428 2023-04-27 Jason Merrill <jason@redhat.com>
1430 * call.cc (print_conversion_rejection): Use iloc_sentinel.
1432 2023-04-27 Jason Merrill <jason@redhat.com>
1435 * pt.cc (instantiate_decl): Assert !defer_ok for local
1438 2023-04-26 Jason Merrill <jason@redhat.com>
1440 * init.cc (nsdmi_inst): Remove.
1441 (maybe_instantiate_nsdmi_init): Use DECL_INITIAL instead.
1443 2023-04-26 Jason Merrill <jason@redhat.com>
1446 * pt.cc (instantiate_class_template): Do partially instantiate.
1447 (tsubst_expr): Do call complete_type for partial instantiations.
1449 2023-04-26 Jason Merrill <jason@redhat.com>
1452 * pt.cc (regenerate_decl_from_template): Skip unique friends.
1454 2023-04-26 Patrick Palka <ppalka@redhat.com>
1456 * pt.cc (most_specialized_partial_spec): Exit early when
1457 DECL_TEMPLATE_SPECIALIZATIONS is empty. Move local variable
1458 declarations closer to their first use. Remove redundant
1459 flag_concepts test. Remove redundant forward declaration.
1461 2023-04-25 Patrick Palka <ppalka@redhat.com>
1464 * pt.cc (value_dependent_expression_p) <case VAR_DECL>:
1465 Suppress conservative early exit for reference variables
1466 when DECL_HAS_VALUE_EXPR_P.
1468 2023-04-25 Tobias Burnus <tobias@codesourcery.com>
1470 * parser.cc (cp_parser_omp_scan_loop_body): Handle
1471 zero exec statements before/after 'omp scan'.
1473 2023-04-24 Patrick Palka <ppalka@redhat.com>
1475 * cp-tree.h (cp_expr_location): Define here.
1476 * tree.cc (cp_expr_location): Don't define here.
1478 2023-04-21 Jason Merrill <jason@redhat.com>
1481 * decl.cc (grokdeclarator): Don't clear typedef_decl after 'unsigned
1482 typedef' pedwarn. Use c_common_signed_or_unsigned_type. Also
1483 handle 'signed typedef'.
1485 2023-04-21 Patrick Palka <ppalka@redhat.com>
1487 * tree.cc (cp_walk_subtrees): Avoid repeatedly dereferencing tp.
1488 <case DECLTYPE_TYPE>: Use cp_unevaluated and WALK_SUBTREE.
1489 <case ALIGNOF_EXPR etc>: Likewise.
1491 2023-04-20 Patrick Palka <ppalka@redhat.com>
1493 * pt.cc (tsubst) <case TEMPLATE_TYPE_PARM>: Don't recurse when
1494 level lowering a cv-qualified type template parameter. Remove
1495 recursive loop breaker in the level lowering case for constrained
1496 autos. Use the TEMPLATE_PARM_DESCENDANTS cache in this case as
1499 2023-04-20 Patrick Palka <ppalka@redhat.com>
1501 * constraint.cc (diagnose_trait_expr): Convert a TREE_VEC
1502 of arguments into a TREE_LIST for sake of pretty printing.
1503 * cxx-pretty-print.cc (pp_cxx_trait): Handle TREE_VEC
1504 instead of TREE_LIST of trailing variadic trait arguments.
1505 * method.cc (constructible_expr): Likewise.
1506 (is_xible_helper): Likewise.
1507 * parser.cc (cp_parser_trait): Represent trailing variadic trait
1508 arguments as a TREE_VEC instead of TREE_LIST.
1509 * pt.cc (value_dependent_expression_p): Handle TREE_VEC
1510 instead of TREE_LIST of trailing variadic trait arguments.
1511 * semantics.cc (finish_type_pack_element): Likewise.
1512 (check_trait_type): Likewise.
1514 2023-04-20 Patrick Palka <ppalka@redhat.com>
1516 * tree.cc (strip_typedefs): Move TREE_LIST handling to
1517 strip_typedefs_expr. Dispatch to strip_typedefs_expr for
1519 <case TYPENAME_TYPE>: Remove manual dispatching to
1520 strip_typedefs_expr.
1521 <case TRAIT_TYPE>: Likewise.
1522 (strip_typedefs_expr): Replaces calls to strip_typedefs_expr
1523 with strip_typedefs throughout. Don't dispatch to strip_typedefs
1525 <case TREE_LIST>: Replace this with the better version from
1528 2023-04-19 Patrick Palka <ppalka@redhat.com>
1529 Jonathan Wakely <jwakely@redhat.com>
1532 * cp-trait.def (TYPE_PACK_ELEMENT): Define.
1533 * cp-tree.h (finish_trait_type): Add complain parameter.
1534 * cxx-pretty-print.cc (pp_cxx_trait): Handle
1535 CPTK_TYPE_PACK_ELEMENT.
1536 * parser.cc (cp_parser_constant_expression): Document default
1538 (cp_parser_trait): Handle CPTK_TYPE_PACK_ELEMENT. Pass
1539 tf_warning_or_error to finish_trait_type.
1540 * pt.cc (tsubst) <case TRAIT_TYPE>: Handle non-type first
1541 argument. Pass complain to finish_trait_type.
1542 * semantics.cc (finish_type_pack_element): Define.
1543 (finish_trait_type): Add complain parameter. Handle
1544 CPTK_TYPE_PACK_ELEMENT.
1545 * tree.cc (strip_typedefs): Handle non-type first argument.
1546 Pass tf_warning_or_error to finish_trait_type.
1547 * typeck.cc (structural_comptypes) <case TRAIT_TYPE>: Use
1548 cp_tree_equal instead of same_type_p for the first argument.
1550 2023-04-19 Patrick Palka <ppalka@redhat.com>
1553 * pt.cc (try_class_unification): Don't ggc_free the copy of
1556 2023-04-19 Jason Merrill <jason@redhat.com>
1559 * decl.cc (grokdeclarator): Keep typedef_decl for __int128_t.
1561 2023-04-17 Patrick Palka <ppalka@redhat.com>
1564 * pt.cc (tsubst) <case BOUND_TEMPLATE_TEMPLATE_PARM>:
1565 In the level-lowering case just use lookup_template_class
1566 to rebuild the bound ttp.
1568 2023-04-15 Jason Merrill <jason@redhat.com>
1571 * constexpr.cc (cxx_eval_constant_expression) [TARGET_EXPR]:
1572 Check for complex initializer.
1574 2023-04-13 Patrick Palka <ppalka@redhat.com>
1577 * decl.cc (make_typename_type): Also ignore non-types during the
1578 lookup if tag_type corresponds to an elaborated-type-specifier.
1579 * pt.cc (tsubst) <case TYPENAME_TYPE>: Pass class_type or
1580 enum_type as tag_type to make_typename_type accordingly instead
1581 of always passing typename_type.
1583 2023-04-13 Jason Merrill <jason@redhat.com>
1586 * semantics.cc (check_trait_type): Handle incomplete type directly.
1587 * typeck2.cc (cxx_incomplete_type_diagnostic): Remove assert.
1589 2023-04-13 Jason Merrill <jason@redhat.com>
1591 * typeck2.cc (cxx_incomplete_type_diagnostic): Return bool.
1592 * cp-tree.h (cxx_incomplete_type_diagnostic): Adjust.
1594 2023-04-12 Jakub Jelinek <jakub@redhat.com>
1596 * Make-lang.in (s-cp-module-version): New target.
1597 (cp/module.o): Depend on it.
1598 (MODULE_VERSION): Remove variable.
1599 (CFLAGS-cp/module.o): For -DMODULE_VERSION= argument just
1600 cat s-cp-module-version.
1602 2023-04-09 Iain Sandoe <iain@sandoe.co.uk>
1604 * coroutines.cc (coro_rewrite_function_body): Ensure that added
1605 bind expressions have scope blocks.
1607 2023-04-04 Jason Merrill <jason@redhat.com>
1610 * decl2.cc (find_last_decl): Return early if DECL_USE_TEMPLATE.
1612 2023-04-03 Patrick Palka <ppalka@redhat.com>
1615 * decl.cc (cp_finish_decl): Diagnose ordinary auto deduction
1616 with no initializer, instead of asserting.
1618 2023-04-01 Patrick Palka <ppalka@redhat.com>
1621 * cp-tree.h (do_auto_deduction): Add defaulted tmpl parameter.
1622 * pt.cc (convert_template_argument): Pass 'in_decl' as 'tmpl' to
1624 (tsubst_decl) <case VAR_/TYPE_DECL>: Pass 'tmpl' instead of 't' as
1625 'in_decl' to coerce_template_parms.
1626 (unify) <case TEMPLATE_PARM_INDEX>: Pass TPARMS_PRIMARY_TEMPLATE
1627 as 'tmpl' to do_auto_deduction.
1628 (do_auto_deduction): Document default arguments. Rename local
1629 variable 'tmpl' to 'ctmpl'. Use 'tmpl' to obtain a full set of
1630 template arguments for satisfaction in the adc_unify case.
1632 2023-04-01 Patrick Palka <ppalka@redhat.com>
1636 * pt.cc (invalid_tparm_referent_p): Accept ADDR_EXPR of
1638 (instantiate_class_template): Call mark_template_arguments_used.
1639 (tsubst_copy_and_build) <case CALL_EXPR>: Revert r13-995 change.
1640 (mark_template_arguments_used): Define.
1641 (instantiate_body): Call mark_template_arguments_used.
1643 2023-04-01 Iain Sandoe <iain@sandoe.co.uk>
1646 * coroutines.cc (flatten_await_stmt): Use the current count of
1647 promoted temporaries to build a unique name for the frame entries.
1649 2023-03-30 Jason Merrill <jason@redhat.com>
1652 * search.cc (type_context_for_name_lookup): New.
1653 (accessible_p): Handle anonymous union.
1654 * init.cc (maybe_instantiate_nsdmi_init): Use
1655 type_context_for_name_lookup.
1656 * parser.cc (cp_parser_class_specifier): Likewise.
1657 * cp-tree.h (type_context_for_name_lookup): Declare.
1659 2023-03-30 Jason Merrill <jason@redhat.com>
1662 * pt.cc (unify) [FUNCTION_TYPE]: Handle function pointer
1665 2023-03-30 Jakub Jelinek <jakub@redhat.com>
1668 * decl2.cc (grok_array_decl): After emitting a pedwarn for
1669 -Wcomma-subscript, if processing_template_decl set orig_index_exp
1670 to compound expr from orig_index_exp_list.
1672 2023-03-30 Jason Merrill <jason@redhat.com>
1676 * decl2.cc (record_mangling): Use symtab_node::reset.
1678 2023-03-30 Jakub Jelinek <jakub@redhat.com>
1681 * call.cc (convert_like_internal): If pedwarn for extended float
1682 type conversions doesn't report anything, avoid calling
1683 maybe_inform_about_fndecl_for_bogus_argument_init.
1685 2023-03-29 Jason Merrill <jason@redhat.com>
1689 * pt.cc (alias_ctad_tweaks): Rewrite deduced args.
1690 (type_targs_deducible_from): Handle null pack deduction.
1692 2023-03-28 David Malcolm <dmalcolm@redhat.com>
1695 * parser.cc (cp_parser_binary_expression): Update for new param of
1696 check_for_xor_used_as_pow.
1698 2023-03-28 Jakub Jelinek <jakub@redhat.com>
1701 * contracts.cc: Include intl.h.
1702 (check_postcondition_result): Don't form diagnostics from two halves
1703 of an English message to allow translations.
1705 2023-03-24 Patrick Palka <ppalka@redhat.com>
1708 * parser.cc (cp_parser_class_specifier): Clear current_class_ptr
1709 and current_class_ref sooner, before parsing a class definition.
1711 2023-03-24 Jason Merrill <jason@redhat.com>
1714 * pt.cc (type_unification_real): Adjust for partial ordering.
1716 2023-03-23 Jason Merrill <jason@redhat.com>
1719 * typeck.cc (build_ptrmemfunc): Drop 0-offset optimization
1720 and location wrappers.
1722 2023-03-23 Marek Polacek <polacek@redhat.com>
1725 * call.cc (class_has_reference_member_p): New.
1726 (class_has_reference_member_p_r): New.
1727 (reference_like_class_p): Don't look for a specific constructor.
1728 Use a DFS walk with class_has_reference_member_p_r.
1730 2023-03-23 Jason Merrill <jason@redhat.com>
1733 * pt.cc (find_parameter_packs_r): Handle null TREE_BINFO.
1735 2023-03-22 Jason Merrill <jason@redhat.com>
1738 * pt.cc (unify): Use fold of build_nop instead of fold_convert.
1740 2023-03-22 Jason Merrill <jason@redhat.com>
1743 * semantics.cc (finish_id_expression_1): Check scope before
1744 returning id_expression.
1746 2023-03-22 Alex Coplan <alex.coplan@arm.com>
1749 * call.cc (build_over_call): Use make_temp_override to suppress
1750 both unavailable and deprecated warnings when calling
1753 2023-03-21 Jason Merrill <jason@redhat.com>
1756 * init.cc (maybe_instantiate_nsdmi_init): Don't leave
1757 current_function_decl set to a constructor.
1759 2023-03-20 Marek Polacek <polacek@redhat.com>
1762 * call.cc (add_template_candidate_real): Add explicit decls to the
1763 set of candidates when the initializer is a braced-init-list.
1765 2023-03-20 Jakub Jelinek <jakub@redhat.com>
1768 * cp-tree.h (var_needs_tls_wrapper): Declare.
1769 * decl2.cc (var_needs_tls_wrapper): No longer static.
1770 * decl.cc (cp_finish_decl): Clear TREE_READONLY on TLS variables
1771 for which a TLS wrapper will be needed.
1773 2023-03-17 Jason Merrill <jason@redhat.com>
1776 * lambda.cc (prune_lambda_captures): Don't bother in a template.
1778 2023-03-17 Jason Merrill <jason@redhat.com>
1781 * except.cc (build_throw): Check dtor access.
1783 2023-03-17 Jason Merrill <jason@redhat.com>
1786 * friend.cc (do_friend): Handle namespace as scope argument.
1787 * decl.cc (grokdeclarator): Pass down in_namespace.
1789 2023-03-16 Jason Merrill <jason@redhat.com>
1792 * init.cc (get_nsdmi): Split out...
1793 (maybe_instantiate_nsdmi_init): ...this function.
1794 * cp-tree.h: Declare it.
1795 * pt.cc (tsubst_expr): Use it.
1797 2023-03-16 Jason Merrill <jason@redhat.com>
1800 * pt.cc (tsubst_expr) [TAG_DEFN]: Handle partial instantiation.
1802 2023-03-16 Jason Merrill <jason@redhat.com>
1805 * semantics.cc (finish_qualified_id_expr): Don't try to build a
1806 pointer-to-member if the scope is an enumeration.
1808 2023-03-16 Patrick Palka <ppalka@redhat.com>
1811 * constexpr.cc (maybe_constant_init_1): For an unevaluated
1812 non-manifestly-constant operand, don't constant evaluate
1813 and instead call fold_to_constant as in maybe_constant_value.
1815 2023-03-16 Patrick Palka <ppalka@redhat.com>
1818 * constraint.cc (satisfaction_cache::get): Relax overly strict
1819 checking assert in the constraint recursion case.
1821 2023-03-16 Jason Merrill <jason@redhat.com>
1824 * coroutines.cc (build_co_await): Handle lvalue 'o'.
1826 2023-03-15 Jason Merrill <jason@redhat.com>
1830 * typeck.cc (cp_build_modify_expr): Allow array initialization of
1831 DECL_ARTIFICIAL variable.
1833 2023-03-15 Marek Polacek <polacek@redhat.com>
1836 * constexpr.cc (cxx_eval_store_expression): Strip location wrappers.
1838 2023-03-15 Jason Merrill <jason@redhat.com>
1841 * semantics.cc (check_template_template_default_arg): Check
1842 maybe_get_template_decl_from_type_decl.
1844 2023-03-15 Jason Merrill <jason@redhat.com>
1849 * pt.cc (coerce_template_template_parms): Use args from
1850 DECL_CONTEXT (arg_tmpl) instead of outer_args.
1852 2023-03-15 Jason Merrill <jason@redhat.com>
1855 * pt.cc (coerce_template_template_parms): Take the arg and parm
1857 (coerce_template_template_parm): Adjust.
1858 (template_template_parm_bindings_ok_p): Adjust.
1859 (convert_template_argument): Adjust.
1861 2023-03-14 Patrick Palka <ppalka@redhat.com>
1864 * pt.cc (push_inline_template_parms_recursive): Set
1865 TEMPLATE_PARMS_CONSTRAINTS.
1866 (push_template_decl): For an out-of-line declaration, verify
1867 constraints for each enclosing template scope match those of the
1868 original template declaratation.
1870 2023-03-14 Patrick Palka <ppalka@redhat.com>
1873 * pt.cc (redeclare_class_template): Add missing "of" in
1874 constraint mismatch diagnostic.
1875 (tsubst_friend_class): For an already declared class template,
1876 substitute and pass the friend declaration's constraints to
1877 redeclare_class_template instead of passing the existing
1878 template's constraints.
1880 2023-03-14 Jason Merrill <jason@redhat.com>
1883 * pt.cc (unify_pack_expansion): Check that TPARMS_PRIMARY_TEMPLATE
1886 2023-03-14 Jason Merrill <jason@redhat.com>
1889 * cp-gimplify.cc (genericize_if_stmt): Restore folding
1890 of constant conditions.
1892 2023-03-14 Jakub Jelinek <jakub@redhat.com>
1895 * tree.cc (record_has_unique_obj_representations): Ignore unnamed
1898 2023-03-13 Jason Merrill <jason@redhat.com>
1901 * parser.cc (cp_parser_set_decl_spec_type): Use
1902 redefined_builtin_type for extended_float_type_p.
1904 2023-03-13 Marek Polacek <polacek@redhat.com>
1907 * call.cc (reference_like_class_p): Check for std::span.
1909 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1912 * decl.cc (cp_finish_decl): Don't clear TREE_READONLY on
1913 automatic non-aggregate variables just because of
1914 -fmerge-all-constants.
1916 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1919 * class.cc (end_of_class): For bit-fields, instead of computing
1920 offset as sum of byte_position (field) and DECL_SIZE_UNIT (field),
1921 compute it as sum of bit_position (field) and DECL_SIZE (field)
1922 divided by BITS_PER_UNIT rounded up.
1924 2023-03-10 Jason Merrill <jason@redhat.com>
1927 * lambda.cc (compare_lambda_template_head): Check more
1928 for error_mark_node.
1930 2023-03-10 Jason Merrill <jason@redhat.com>
1933 * mangle.cc (anon_aggr_naming_decl): New.
1934 (write_unqualified_name): Use it.
1936 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1939 * decl.cc (poplevel): Suppress OPT_Wunused_variable warning
1940 after diagnosing it.
1942 2023-03-10 Jason Merrill <jason@redhat.com>
1945 * decl.cc (grokdeclarator): Handle non-typedef typedef_decl.
1947 2023-03-10 Jason Merrill <jason@redhat.com>
1950 * class.cc (instantiate_type): Strip location wrapper.
1952 2023-03-09 Jason Merrill <jason@redhat.com>
1955 * init.cc (find_allocator_temps_r): New.
1956 (combine_allocator_temps): Replace find_allocator_temp.
1957 (build_vec_init): Adjust.
1959 2023-03-09 Jason Merrill <jason@redhat.com>
1963 * pt.cc (alias_ctad_tweaks): Continue after deduction failure.
1965 2023-03-09 Jason Merrill <jason@redhat.com>
1966 Michael Spertus <mike@spertus.com>
1969 * pt.cc (corresponding_template_parameter_list): Split out...
1970 (corresponding_template_parameter): ...from here.
1971 (find_template_parameters): Factor out...
1972 (find_template_parameter_info::find_in): ...this function.
1973 (find_template_parameter_info::find_in_recursive): New.
1974 (find_template_parameter_info::found): New.
1975 (alias_ctad_tweaks): Only add parms used in the deduced args.
1977 2023-03-09 Jason Merrill <jason@redhat.com>
1979 * cp-trait.def (IS_DEDUCIBLE): Add space to name.
1981 2023-03-09 Jason Merrill <jason@redhat.com>
1984 * cp-trait.def (IS_DEDUCIBLE): New.
1985 * cxx-pretty-print.cc (pp_cxx_trait): Handle non-type.
1986 * parser.cc (cp_parser_trait): Likewise.
1987 * tree.cc (cp_tree_equal): Likewise.
1988 * pt.cc (tsubst_copy_and_build): Likewise.
1989 (type_targs_deducible_from): New.
1990 (alias_ctad_tweaks): Use it.
1991 * semantics.cc (trait_expr_value): Handle CPTK_IS_DEDUCIBLE.
1992 (finish_trait_expr): Likewise.
1993 * constraint.cc (diagnose_trait_expr): Likewise.
1994 * cp-tree.h (type_targs_deducible_from): Declare.
1996 2023-03-07 Jason Merrill <jason@redhat.com>
2000 * pt.cc (tsubst_function_decl): Don't replace the closure
2001 parameter if DECL_STATIC_FUNCTION_P.
2003 2023-03-07 Marek Polacek <polacek@redhat.com>
2006 * call.cc (reference_like_class_p): New.
2007 (do_warn_dangling_reference): Add new bool parameter. See through
2008 reference_like_class_p.
2010 2023-03-07 Jakub Jelinek <jakub@redhat.com>
2013 * rtti.cc (emit_support_tinfo_1): Don't assert that last
2014 unemitted_tinfo_decls element is tinfo, instead pop from it only in
2016 * decl2.cc (c_parse_final_cleanups): Don't call emit_tinfo_decl
2017 for unemitted_tinfO_decls which have already non-NULL DECL_INITIAL.
2019 2023-03-07 Marek Polacek <polacek@redhat.com>
2022 * constexpr.cc (cxx_eval_call_expression): Relax assert.
2024 2023-03-07 Marek Polacek <polacek@redhat.com>
2027 * constexpr.cc (potential_constant_expression_1) <case CALL_EXPR>: Pass
2028 'any' when recursing on a VAR_DECL and not a pointer to function.
2030 2023-03-04 Jakub Jelinek <jakub@redhat.com>
2033 * constexpr.cc: Include toplev.h.
2034 (cxx_eval_constant_expression) <case DECL_EXPR>: When seeing a local
2035 static initialized by constant expression outside of a constexpr
2036 function which has been deferred by make_rtl_for_nonlocal_decl,
2037 call rest_of_decl_compilation on it.
2039 2023-03-03 Patrick Palka <ppalka@redhat.com>
2042 * pt.cc (el_data::skipped_trees): New data member.
2043 (extract_locals_r): Push to skipped_trees any unevaluated
2044 contexts that we skipped over.
2045 (extract_local_specs): For the second walk, start from each
2046 tree in skipped_trees.
2048 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2050 * typeck.cc (cp_build_binary_op): Suppress redundant warning
2051 for pfn null test in pmfn test with vbit-in-delta.
2053 2023-03-02 Jakub Jelinek <jakub@redhat.com>
2056 * cp-tree.h (enum cp_tree_index): Remove CPTI_FALLBACK_DFLOAT*_TYPE
2058 (fallback_dfloat32_type, fallback_dfloat64_type,
2059 fallback_dfloat128_type): Remove.
2060 * rtti.cc (emit_support_tinfo_1): If not emitted already, call
2061 emit_tinfo_decl and remove from unemitted_tinfo_decls right away.
2062 (emit_support_tinfos): Move &dfloat*_type_node from fundamentals array
2063 into new fundamentals_with_fallback array. Call emit_support_tinfo_1
2064 on elements of that array too, with the difference that if
2065 the type is NULL, use a fallback REAL_TYPE for it temporarily.
2066 Drop the !targetm.decimal_float_supported_p () handling. Call
2067 targetm.emit_support_tinfos at the end.
2068 * mangle.cc (write_builtin_type): Remove references to
2069 fallback_dfloat*_type. Handle bfloat16_type_node mangling.
2071 2023-03-02 Patrick Palka <ppalka@redhat.com>
2075 * cp-gimplify.cc (cp_fully_fold): Add an internal overload that
2076 additionally takes and propagate an mce_value parameter, and
2077 define the existing public overload in terms of it.
2078 (cp_fully_fold_init): Pass mce_false to cp_fully_fold.
2080 2023-03-02 Patrick Palka <ppalka@redhat.com>
2083 * constexpr.cc (maybe_constant_init_1): Override
2084 manifestly_const_eval to true if is_static.
2086 2023-03-02 Jakub Jelinek <jakub@redhat.com>
2089 * cp-gimplify.cc (cp_genericize_r) <case USING_STMT>: Set
2090 DECL_SOURCE_LOCATION on IMPORTED_DECL to expression location
2091 of USING_STMT or input_location.
2093 2023-03-02 Marek Polacek <polacek@redhat.com>
2096 * parser.cc (class_decl_loc_t::diag_mismatched_tags): If the first
2097 lookup of SPEC didn't find anything, try to look for
2098 most_general_template.
2100 2023-03-02 Jakub Jelinek <jakub@redhat.com>
2103 * parser.cc (cp_convert_omp_range_for): Allow in assert
2104 decomp_first_name without DECL_HAS_VALUE_EXPR_P if it has
2105 error_mark_node type.
2106 (cp_finish_omp_range_for): Don't set DECL_HAS_VALUE_EXPR_P back
2107 on decls which have error_mark_node type.
2109 2023-03-01 Marek Polacek <polacek@redhat.com>
2112 * constexpr.cc (cxx_eval_constant_expression): Emit an error when
2113 a PTRMEM_CST cannot be evaluated.
2115 2023-03-01 Patrick Palka <ppalka@redhat.com>
2117 * pt.cc (tsubst_scope): Define.
2118 (tsubst_decl) <case USING_DECL>: Call tsubst_scope instead of
2119 calling tsubst_scope with tf_qualifying_scope set.
2120 (tsubst_qualified_id): Call tsubst_scope instead of
2121 calling tsubst with tf_qualifying_scope set.
2122 (tsubst_copy): Immediately delegate to tsubst for all TYPE_P
2123 trees. Remove tf_qualifying_scope manipulation.
2124 <case SCOPE_REF>: Call tsubst_scope instead of calling
2125 tsubst with tf_qualifying_scope set.
2127 2023-03-01 Patrick Palka <ppalka@redhat.com>
2128 Jason Merrill <jason@redhat.com>
2132 * constexpr.cc (fold_to_constant): Define.
2133 (maybe_constant_value): Move up early exit test for unevaluated
2134 operands. Try reducing an unevaluated operand to a constant via
2136 (fold_non_dependent_expr_template): Add early exit test for
2137 CONSTANT_CLASS_P nodes. Try reducing an unevaluated operand
2138 to a constant via fold_to_constant.
2139 * cp-tree.h (fold_to_constant): Declare.
2141 2023-03-01 Jakub Jelinek <jakub@redhat.com>
2144 * constexpr.cc (potential_constant_expression_1) <case DECL_EXPR>:
2145 Only recurse on DECL_INITIAL (tmp) if tmp is a VAR_DECL, otherwise
2148 2023-02-28 Patrick Palka <ppalka@redhat.com>
2151 * pt.cc (finish_template_variable): Move dependence check
2153 (lookup_and_finish_template_variable): ... here.
2154 * semantics.cc (finish_id_expression_1): Call
2155 finish_template_variable sooner, before (and regardless of) the
2156 type_dependent_expression_p test.
2158 2023-02-28 Marek Polacek <polacek@redhat.com>
2161 * pt.cc (lookup_and_finish_template_variable): Clear tf_partial.
2163 2023-02-20 Marek Polacek <polacek@redhat.com>
2166 * constexpr.cc (cxx_eval_call_expression): Replace shortcutting trivial
2167 constructor/op= with a checking assert.
2169 2023-02-20 Marek Polacek <polacek@redhat.com>
2172 * pt.cc (prepend_one_capture): Set LAMBDA_CAPTURE_EXPLICIT_P.
2173 (tsubst_lambda_expr): Pass LAMBDA_CAPTURE_EXPLICIT_P to
2174 prepend_one_capture.
2176 2023-02-18 Jason Merrill <jason@redhat.com>
2186 * semantics.cc (finish_static_assert): Don't diagnose in
2189 2023-02-17 Patrick Palka <ppalka@redhat.com>
2193 * cp-gimplify.cc (enum fold_flags): Define.
2194 (fold_flags_t): Declare.
2195 (cp_fold_data::genericize): Replace this data member with ...
2196 (cp_fold_data::fold_flags): ... this.
2197 (cp_fold_r): Adjust use of cp_fold_data and calls to cp_fold.
2198 (cp_fold_function): Likewise.
2199 (cp_fold_maybe_rvalue): Add an internal overload that
2200 additionally takes and propagates a fold_flags_t parameter, and
2201 define the existing public overload in terms of it.
2202 (cp_fold_rvalue): Likewise.
2203 (cp_fully_fold_init): Adjust use of cp_fold_data.
2204 (fold_cache): Replace with ...
2205 (fold_caches): ... this 2-element array of caches.
2206 (get_fold_cache): Define.
2207 (clear_fold_cache): Adjust.
2208 (cp_fold): Add fold_flags_t parameter. Use get_fold_cache.
2209 Pass flags to calls to cp_fold, cp_fold_rvalue and
2210 cp_fold_maybe_rvalue.
2211 <case CALL_EXPR>: If ff_mce_false is set, fold
2212 __builtin_is_constant_evaluated to false and pass mce_false to
2213 maybe_constant_value.
2215 2023-02-17 Patrick Palka <ppalka@redhat.com>
2217 * constexpr.cc (constexpr_call::manifestly_const_eval): Give
2218 it type int instead of bool.
2219 (constexpr_ctx::manifestly_const_eval): Give it type mce_value
2221 (cxx_eval_builtin_function_call): Adjust after making
2222 manifestly_const_eval tri-state.
2223 (cxx_eval_call_expression): Likewise.
2224 (cxx_eval_binary_expression): Likewise.
2225 (cxx_eval_conditional_expression): Likewise.
2226 (cxx_eval_constant_expression): Likewise.
2227 (cxx_eval_outermost_constant_expr): Likewise.
2228 (cxx_constant_value): Likewise.
2229 (cxx_constant_dtor): Likewise.
2230 (maybe_constant_value): Give manifestly_const_eval parameter
2231 type mce_value instead of bool and adjust accordingly.
2232 (fold_non_dependent_expr_template): Adjust call
2233 to cxx_eval_outermost_constant_expr.
2234 (fold_non_dependent_expr): Likewise.
2235 (maybe_constant_init_1): Likewise.
2236 * constraint.cc (satisfy_atom): Adjust call to
2237 maybe_constant_value.
2238 * cp-tree.h (enum class mce_value): Define.
2239 (maybe_constant_value): Adjust manifestly_const_eval parameter
2240 type and default argument.
2241 * decl.cc (compute_array_index_type_loc): Adjust call to
2242 maybe_constant_value.
2243 * pt.cc (convert_nontype_argument): Likewise.
2245 2023-02-16 Patrick Palka <ppalka@redhat.com>
2248 * cp-tree.h (enum tsubst_flags): New flag tf_qualifying_scope.
2249 * decl.cc (make_typename_type): Use lookup_member instead of
2250 lookup_field. If tf_qualifying_scope is set, pass want_type=true
2251 instead of =false to lookup_member. Generalize format specifier
2252 in diagnostic to handle both type and non-type bindings.
2253 * pt.cc (tsubst_aggr_type_1): Clear tf_qualifying_scope. Tidy
2255 (tsubst_decl) <case USING_DECL>: Set tf_qualifying_scope when
2256 substituting USING_DECL_SCOPE.
2257 (tsubst): Clear tf_qualifying_scope right away and remember if
2258 it was set. Do the same for tf_tst_ok sooner.
2259 <case TYPENAME_TYPE>: Set tf_qualifying_scope when substituting
2260 TYPE_CONTEXT. Pass tf_qualifying_scope to make_typename_type
2262 (tsubst_qualified_id): Set tf_qualifying_scope when substituting
2264 (tsubst_copy): Clear tf_qualifying_scope and remember if it was
2266 <case SCOPE_REF>: Set tf_qualifying_scope when substituting the
2268 <case *_TYPE>: Pass tf_qualifying_scope to tsubst if it was set.
2269 * search.cc (lookup_member): Document default argument.
2271 2023-02-16 Patrick Palka <ppalka@redhat.com>
2273 * cp-tree.h: Mechanically drop static from static inline
2274 functions via s/^static inline/inline/g.
2276 2023-02-15 Marek Polacek <polacek@redhat.com>
2279 * call.cc (joust_maybe_elide_copy): Return false for ck_ambig.
2281 2023-02-10 Marek Polacek <polacek@redhat.com>
2284 * call.cc (set_up_extended_ref_temp): Pass var to maybe_constant_init.
2286 2023-02-09 Tobias Burnus <tobias@codesourcery.com>
2288 * parser.cc (cp_parser_omp_allocate): Parse align
2289 clause and check for restrictions.
2291 2023-02-09 Jakub Jelinek <jakub@redhat.com>
2294 * mangle.cc (write_expression, write_template_arg): Handle
2295 EXCESS_PRECISION_EXPR with REAL_CST operand as
2296 write_template_arg_literal on fold_convert of the REAL_CST
2297 to EXCESS_PRECISION_EXPR type.
2299 2023-02-06 Patrick Palka <ppalka@redhat.com>
2302 * cp-tree.h (call_expr_dependent_name): Declare.
2303 * pt.cc (iterative_hash_template_arg) <case CALL_EXPR>: Use
2304 call_expr_dependent_name instead of dependent_name.
2305 * tree.cc (call_expr_dependent_name): Define.
2306 (called_fns_equal): Adjust to take two CALL_EXPRs instead of
2307 CALL_EXPR_FNs thereof. Use call_expr_dependent_name instead
2309 (cp_tree_equal) <case CALL_EXPR>: Adjust call to called_fns_equal.
2311 2023-02-03 Marek Polacek <polacek@redhat.com>
2314 * constexpr.cc (cxx_eval_array_reference): Don't replace
2317 2023-02-03 Patrick Palka <ppalka@redhat.com>
2320 * semantics.cc (finish_call_expr): Strip ADDR_EXPR from
2321 the selected callee during overload set pruning.
2323 2023-02-03 Patrick Palka <ppalka@redhat.com>
2326 * class.cc (check_methods): Diagnose an unviable OVERLOAD
2327 set for CLASSTYPE_DESTRUCTOR differently from an ambiguous one.
2328 Then prune the OVERLOAD to a single function.
2329 (check_bases_and_members): Handle CLASSTYPE_DESTRUCTOR being
2330 an OVERLOAD when calling deduce_noexcept_on_destructor.
2331 Document why it has to be called before check_methods.
2333 2023-02-03 Patrick Palka <ppalka@redhat.com>
2336 * class.cc (check_methods): Swap order of constraints_satisfied_p
2337 and copy/move_fn_p tests.
2339 2023-02-01 Marek Polacek <polacek@redhat.com>
2342 * call.cc (build_new_op): Don't call warn_logical_operator when
2343 processing a template.
2345 2023-02-01 Jakub Jelinek <jakub@redhat.com>
2348 * constexpr.cc (cxx_eval_constant_expression): Handle OMP_*
2349 and OACC_* constructs as non-constant.
2350 (potential_constant_expression_1): Handle OMP_SCAN and OMP_SCOPE.
2352 2023-02-01 Jason Merrill <jason@redhat.com>
2354 * class.cc (note_name_declared_in_class): Change from permerror to
2355 -Wchanges-meaning pedwarn, forcing -pedantic-errors for most cases.
2357 2023-01-31 Jason Merrill <jason@redhat.com>
2360 * cp-gimplify.cc (any_non_eliding_target_exprs): New.
2361 (cp_genericize_init): Check it.
2363 2023-01-31 Marek Polacek <polacek@redhat.com>
2367 * cp-tree.h (instantiation_dependent_expression_p): Don't
2370 2023-01-26 Marek Polacek <polacek@redhat.com>
2373 * parser.cc: Remove unnecessary forward declarations.
2374 (cp_parser_string_literal): New wrapper.
2375 (cp_parser_string_literal_common): Renamed from
2376 cp_parser_string_literal. Add a bool parameter. Give an error when
2377 UDLs are not permitted.
2378 (cp_parser_userdef_string_literal): New wrapper.
2379 (finish_userdef_string_literal): Renamed from
2380 cp_parser_userdef_string_literal.
2381 (cp_parser_primary_expression): Call cp_parser_userdef_string_literal
2382 instead of cp_parser_string_literal.
2383 (cp_parser_linkage_specification): Move a variable declaration closer
2385 (cp_parser_static_assert): Likewise.
2386 (cp_parser_operator): Call cp_parser_userdef_string_literal instead of
2387 cp_parser_string_literal.
2388 (cp_parser_asm_definition): Move a variable declaration closer to its
2390 (cp_parser_asm_specification_opt): Move variable declarations closer to
2392 (cp_parser_asm_operand_list): Likewise.
2393 (cp_parser_asm_clobber_list): Likewise.
2395 2023-01-26 Jakub Jelinek <jakub@redhat.com>
2398 * parser.cc (cp_convert_omp_range_for): If cp_finish_decomp has been
2399 called in !processing_template_decl with processing_template_decl
2400 temporarily set, clear DECL_HAS_VALUE_EXPR_P on the vars temporarily.
2401 (cp_finish_omp_range_for): And set it back again here.
2403 2023-01-25 Jakub Jelinek <jakub@redhat.com>
2406 * mangle.cc (write_closure_type_name): Don't assume all
2407 lambda operator() fns are methods.
2409 2023-01-24 Jason Merrill <jason@redhat.com>
2412 * parser.cc (cp_lexer_new_main): Pass C_LEX_STRING_NO_JOIN for first
2415 2023-01-24 Jason Merrill <jason@redhat.com>
2418 * pt.cc (tsubst_function_decl): Handle static lambda.
2420 2023-01-24 Jakub Jelinek <jakub@redhat.com>
2423 * cp-gimplify.cc (cp_fold_r): Revert 2023-01-19 changes.
2425 2023-01-24 Jason Merrill <jason@redhat.com>
2429 * cp-gimplify.cc (cp_fold_r) [TARGET_EXPR]: In case of double
2430 TARGET_EXPR, keep the outer one instead of the inner one.
2431 (maybe_replace_decl): New.
2433 2023-01-23 Jason Merrill <jason@redhat.com>
2436 * cp-gimplify.cc (cp_gimplify_init_expr): Allow unexpected elision
2439 2023-01-23 Marek Polacek <polacek@redhat.com>
2442 * cvt.cc (ocp_convert): copy_warning when creating a new
2444 * init.cc (build_new_1): Suppress -Wunused-value on
2445 compiler-generated COMPOUND_EXPRs.
2447 2023-01-23 Jason Merrill <jason@redhat.com>
2450 * call.cc (build_user_type_conversion_1): Check whether the
2451 iterators also find a list ctor.
2453 2023-01-23 Jason Merrill <jason@redhat.com>
2456 * decl.cc (grokdeclarator): Check whether DECL_RESULT is already
2459 2023-01-23 Jason Merrill <jason@redhat.com>
2463 * call.cc (extend_ref_init_temps_1): Handle ptrmem expression.
2465 2023-01-19 Jakub Jelinek <jakub@redhat.com>
2468 * cp-tree.h (keep_unused_object_arg): Declare.
2469 * call.cc (keep_unused_object_arg): No longer static.
2470 * tree.cc (build_min_non_dep_op_overload): Handle ARRAY_REF
2471 with overload being static member function.
2473 2023-01-19 Jakub Jelinek <jakub@redhat.com>
2476 * cp-gimplify.cc (cp_fold_r): During cp_fully_fold_init replace
2477 DECL_ANON_UNION_VAR_P VAR_DECLs with their corresponding
2480 2023-01-16 Jakub Jelinek <jakub@redhat.com>
2483 * decl.cc (cp_finish_decl): Check warning_enabled_at
2484 at the DECL_SOURCE_LOCATION (decl) for OPT_Winit_self instead
2487 2023-01-14 Jakub Jelinek <jakub@redhat.com>
2490 * typeck.cc (cp_build_binary_op): Use may_shorten_divmod for integral
2493 2023-01-13 Jakub Jelinek <jakub@redhat.com>
2496 * cvt.cc (cp_convert_and_check): For EXCESS_PRECISION_EXPR
2497 use its operand except that for warning purposes use the original
2498 EXCESS_PRECISION_EXPR.
2499 * call.cc (convert_like_internal): Only look through
2500 EXCESS_PRECISION_EXPR when calling cp_convert, not when calling
2501 cp_convert_and_check.
2503 2023-01-09 Jakub Jelinek <jakub@redhat.com>
2508 * call.cc (maybe_init_list_as_range): Always return NULL_TREE if
2509 processing_template_decl.
2511 2023-01-05 Patrick Palka <ppalka@redhat.com>
2514 * parser.cc (cp_parser_class_head): Use dk_deferred instead of
2515 dk_no_check when parsing the class name.
2517 2023-01-05 Jakub Jelinek <jakub@redhat.com>
2520 * semantics.cc (finish_omp_target_clauses): Ignore clauses other than
2523 2023-01-04 Patrick Palka <ppalka@redhat.com>
2526 * decl2.cc (mark_single_function): Ignore mark_used failure
2527 only in a non-SFINAE context rather than in a SFINAE one.
2529 2023-01-04 Jakub Jelinek <jakub@redhat.com>
2532 * decl.cc (merge_default_template_args): Return false if either
2533 new_parm or old_parm are erroneous.
2536 Copyright (C) 2023 Free Software Foundation, Inc.
2538 Copying and distribution of this file, with or without modification,
2539 are permitted in any medium without royalty provided the copyright
2540 notice and this notice are preserved.