]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
libstdc++: Improve diagnostics for std::get with invalid tuple index
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
d97d71a1
GA
12021-07-15 Jakub Jelinek <jakub@redhat.com>
2
3 PR c++/101443
4 * cp-gimplify.c (cp_fold): For comparisons with NULLPTR_TYPE
5 operands, fold them right away to true or false.
6
72021-07-15 Jason Merrill <jason@redhat.com>
8
9 PR c++/101095
10 * cp-objcp-common.c (cp_common_init_ts): Mark types as types.
11 (cp_tree_size): Remove redundant entries.
12
c4fee1c6
GA
132021-07-14 Patrick Palka <ppalka@redhat.com>
14
15 PR c++/88252
16 * cp-tree.h (TEMPLATE_TYPE_PARM_FOR_CLASS): Remove.
17 * pt.c (push_template_decl): Remove TEMPLATE_TYPE_PARM_FOR_CLASS
18 handling.
19 (redeclare_class_template): Likewise.
20 (forwarding_reference_p): Define.
21 (maybe_adjust_types_for_deduction): Use it instead. Add 'tparms'
22 parameter.
23 (unify_one_argument): Pass tparms to
24 maybe_adjust_types_for_deduction.
25 (try_one_overload): Likewise.
26 (unify): Likewise.
27 (rewrite_template_parm): Remove TEMPLATE_TYPE_PARM_FOR_CLASS
28 handling.
29
302021-07-14 Jason Merrill <jason@redhat.com>
31
32 * class.c (struct find_final_overrider_data): Use auto_vec.
33 (find_final_overrider): Remove explicit release.
34 * coroutines.cc (process_conditional): Use auto_vec.
35 * cp-gimplify.c (struct cp_genericize_data): Use auto_vec.
36 (cp_genericize_tree): Remove explicit release.
37 * parser.c (cp_parser_objc_at_property_declaration): Use
38 auto_delete_vec.
39 * semantics.c (omp_reduction_lookup): Use auto_vec.
40
412021-07-14 Marek Polacek <polacek@redhat.com>
42
43 PR c++/101371
44 * constexpr.c (cxx_eval_array_reference): Create a new .object
45 and .ctor for the non-aggregate non-scalar case too when
46 value-initializing.
47
07bcbf9c
GA
482021-07-12 Patrick Palka <ppalka@redhat.com>
49
50 PR c++/79501
51 PR c++/100983
52 * decl.c (grokfndecl): Don't require that deduction guides are
53 declared at namespace scope. Check that class-scope deduction
54 guides have the same access as the member class template.
55 (grokdeclarator): Pretend class-scope deduction guides are static.
56 * search.c (lookup_member): Don't use a BASELINK for (class-scope)
57 deduction guides.
58
269256f3
GA
592021-07-10 Patrick Palka <ppalka@redhat.com>
60
61 PR c++/82110
62 * init.c (build_aggr_init): Return error_mark_node if
63 expand_aggr_init_1 returns false.
64 (expand_default_init): Change return type to bool. Return false
65 on error, true on success.
66 (expand_aggr_init_1): Likewise.
67
ef2ace64
GA
682021-07-09 Jason Merrill <jason@redhat.com>
69
70 PR c++/101098
71 * decl.c (function_requirements_equivalent_p): Only compare
72 trailing requirements on a specialization.
73
742021-07-09 Iain Sandoe <iain@sandoe.co.uk>
75
76 * coroutines.cc (build_actor_fn): Move common code to
77 act_des_fn.
78 (build_destroy_fn): Likewise.
79 (act_des_fn): Build the void return here. Ensure that the
80 source location matches the original function.
81
822021-07-09 Iain Sandoe <iain@sandoe.co.uk>
83
84 * coroutines.cc
85 (coro_rewrite_function_body): Connect the replacement
86 function block to the block nest correctly.
87
882021-07-09 Patrick Palka <ppalka@redhat.com>
89
90 PR c++/101181
91 * constraint.cc (tsubst_requires_expr): Pass complain/in_decl to
92 add_extra_args.
93 * cp-tree.h (add_extra_args): Add complain/in_decl parameters.
94 * pt.c (build_extra_args): Make a copy of args.
95 (add_extra_args): Add complain/in_decl parameters. Enable the
96 code for handling the case where the extra arguments are
97 dependent.
98 (tsubst_pack_expansion): Pass complain/in_decl to
99 add_extra_args.
100 (tsubst_template_args): Handle missing template arguments.
101 (tsubst_expr) <case IF_STMT>: Pass complain/in_decl to
102 add_extra_args.
103
1042021-07-09 Patrick Palka <ppalka@redhat.com>
105
106 PR c++/101247
107 * pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Just walk the
108 DECL_CONTEXT.
109
fdc4d2a5
GA
1102021-07-08 Martin Sebor <msebor@redhat.com>
111
112 PR bootstrap/101372
113 * module.cc (identifier): Suppress warning.
114 (module_state::read_macro_maps): Remove warning suppression.
115 (module_state::install_macros): Ditto.
116
1172021-07-08 Marek Polacek <polacek@redhat.com>
118
119 PR c++/101087
120 * cp-tree.h (unevaluated_p): New.
121 * except.c (check_noexcept_r): Use it. Don't walk into
122 unevaluated operands.
123
1242021-07-08 Martin Sebor <msebor@redhat.com>
125
126 PR bootstrap/101374
127 * module.cc (module_state::read_macro_maps): Temporarily disable
128 -Warray-bounds.
129 (module_state::install_macros): Same.
130
6fba0eea
GA
1312021-07-06 Martin Sebor <msebor@redhat.com>
132
133 * error.c (cp_printer): Remove support for %G and %K.
134
7a60a6e8
GA
1352021-07-02 Jakub Jelinek <jakub@redhat.com>
136
137 * parser.h (struct cp_lexer): Add in_omp_attribute_pragma member.
138 (struct cp_omp_declare_simd_data): Likewise.
139 * cp-tree.h (enum cp_tree_index): Add CPTI_OMP_IDENTIFIER.
140 (omp_identifier): Define.
141 * parser.c (cp_parser_skip_to_pragma_eol): Handle
142 in_omp_attribute_pragma CPP_PRAGMA_EOL followed by CPP_EOF.
143 (cp_parser_require_pragma_eol): Likewise.
144 (struct cp_omp_attribute_data): New type.
145 (cp_parser_handle_statement_omp_attributes): New function.
146 (cp_parser_statement): Handle OpenMP directives in statement's
147 attribute-specifier-seq.
148 (cp_parser_omp_directive_args, cp_parser_omp_sequence_args): New
149 functions.
150 (cp_parser_std_attribute): Handle omp::directive and omp::sequence
151 attributes.
152 (cp_parser_omp_all_clauses): If in_omp_attribute_pragma, allow
153 a comma also before the first clause.
154 (cp_parser_omp_allocate): Likewise.
155 (cp_parser_omp_atomic): Likewise.
156 (cp_parser_omp_depobj): Likewise.
157 (cp_parser_omp_flush): Likewise.
158 (cp_parser_omp_ordered): Likewise.
159 (cp_parser_omp_declare_simd): Save in_omp_attribute_pragma
160 into struct cp_omp_declare_simd_data.
161 (cp_finish_omp_declare_variant): Add in_omp_attribute_pragma
162 argument. If set, allow a comma also before match clause.
163 (cp_parser_late_parsing_omp_declare_simd): If in_omp_attribute_pragma,
164 allow a comma also before the first clause. Adjust
165 cp_finish_omp_declare_variant caller.
166 (cp_parser_omp_declare_target): If in_omp_attribute_pragma, allow
167 a comma also before the first clause.
168 (cp_parser_omp_declare_reduction_exprs): Likewise.
169 (cp_parser_omp_requires): Likewise.
170 * decl.c (initialize_predefined_identifiers): Initialize
171 omp_identifier.
172 * decl2.c (cplus_decl_attributes): Reject omp::directive and
173 omp::sequence attributes.
174
1752021-07-02 Jakub Jelinek <jakub@redhat.com>
176
177 PR c/101297
178 * parser.c (cp_parser_omp_atomic): Consume comma only if it
179 appears before a CPP_NAME.
180
1812021-07-02 Patrick Palka <ppalka@redhat.com>
182
183 PR c++/101247
184 * pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Rewrite to
185 use common_enclosing_class and to not depend on the TREE_TYPE
186 of outer levels pointing to the corresponding primary template.
187
bea7c16a
GA
1882021-07-01 Patrick Palka <ppalka@redhat.com>
189
190 PR c++/101194
191 * constexpr.c (cxx_eval_array_reference): When the element type
192 is an empty type and the corresponding element is omitted, just
193 return an empty CONSTRUCTOR instead of attempting value
194 initialization.
195
1962021-07-01 Patrick Palka <ppalka@redhat.com>
197
198 PR c++/96204
199 * pt.c (finish_template_variable): Pass the partially
200 instantiated template and its args to instantiate_template.
201 (instantiate_class_template_1): No need to call
202 push_nested_class and pop_nested_class around the call to
203 most_specialized_partial_spec.
204 (instantiate_template_1): Pass the partially instantiated
205 template to lookup_template_variable.
206 (most_specialized_partial_spec): Use push_access_scope_guard
207 to set the access scope appropriately. Use
208 deferring_access_check_sentinel to force access to get checked
209 immediately.
210 (instantiate_decl): Just pass the VAR_DECL to
211 most_specialized_partial_spec.
212
25b6bfea
GA
2132021-06-30 Patrick Palka <ppalka@redhat.com>
214
215 * constraint.cc (get_normalized_constraints_from_decl): Use
216 push_access_scope_guard instead of push_nested_class_guard.
217 * cp-tree.h (struct push_nested_class_guard): Replace with ...
218 (struct push_access_scope_guard): ... this.
219 * pt.c (push_access_scope): When the argument corresponds to
220 a class type, push the class instead of its context.
221 (pop_access_scope): Adjust accordingly.
222
2232021-06-30 Marek Polacek <polacek@redhat.com>
224
225 PR c++/100975
226 DR 2397
227 * decl.c (create_array_type_for_decl): Allow array of auto.
228
6bc18203
GA
2292021-06-29 Jason Merrill <jason@redhat.com>
230
231 * pt.c (instantiate_decl): Only consider partial specializations of
232 actual variable templates.
233
461f937b
GA
2342021-06-26 Patrick Palka <ppalka@redhat.com>
235
236 PR c++/96204
237 * pt.c (instantiate_class_template_1): Enter the scope of the
238 type when calling most_specialized_partial_spec.
239
2402021-06-26 Jason Merrill <jason@redhat.com>
241
242 PR c++/101040
243 PR c++/97566
244 * class.c (is_empty_field): Handle null argument.
245 * constexpr.c (cxx_eval_bare_aggregate): Discard initializer
246 for empty field.
247
90708f87
GA
2482021-06-26 Marek Polacek <polacek@redhat.com>
249
250 PR c++/100752
251 * parser.c (cp_parser_declarator): Pass flags down to
252 cp_parser_declarator. Also pass static_p/member_p.
253
2542021-06-25 Martin Sebor <msebor@redhat.com>
255
256 * call.c (build_over_call): Replace direct uses of TREE_NO_WARNING
257 with warning_suppressed_p, suppress_warning, and copy_no_warning, or
258 nothing if not necessary.
259 (set_up_extended_ref_temp): Same.
260 * class.c (layout_class_type): Same.
261 * constraint.cc (constraint_satisfaction_value): Same.
262 * coroutines.cc (finish_co_await_expr): Same.
263 (finish_co_yield_expr): Same.
264 (finish_co_return_stmt): Same.
265 (build_actor_fn): Same.
266 (coro_rewrite_function_body): Same.
267 (morph_fn_to_coro): Same.
268 * cp-gimplify.c (genericize_eh_spec_block): Same.
269 (gimplify_expr_stmt): Same.
270 (cp_genericize_r): Same.
271 (cp_fold): Same.
272 * cp-ubsan.c (cp_ubsan_instrument_vptr): Same.
273 * cvt.c (cp_fold_convert): Same.
274 (convert_to_void): Same.
275 * decl.c (wrapup_namespace_globals): Same.
276 (grokdeclarator): Same.
277 (finish_function): Same.
278 (require_deduced_type): Same.
279 * decl2.c (no_linkage_error): Same.
280 (c_parse_final_cleanups): Same.
281 * except.c (expand_end_catch_block): Same.
282 * init.c (build_new_1): Same.
283 (build_new): Same.
284 (build_vec_delete_1): Same.
285 (build_vec_init): Same.
286 (build_delete): Same.
287 * method.c (defaultable_fn_check): Same.
288 * parser.c (cp_parser_fold_expression): Same.
289 (cp_parser_primary_expression): Same.
290 * pt.c (push_tinst_level_loc): Same.
291 (tsubst_copy): Same.
292 (tsubst_omp_udr): Same.
293 (tsubst_copy_and_build): Same.
294 * rtti.c (build_if_nonnull): Same.
295 * semantics.c (maybe_convert_cond): Same.
296 (finish_return_stmt): Same.
297 (finish_parenthesized_expr): Same.
298 (cp_check_omp_declare_reduction): Same.
299 * tree.c (build_cplus_array_type): Same.
300 * typeck.c (build_ptrmemfunc_access_expr): Same.
301 (cp_build_indirect_ref_1): Same.
302 (cp_build_function_call_vec): Same.
303 (warn_for_null_address): Same.
304 (cp_build_binary_op): Same.
305 (unary_complex_lvalue): Same.
306 (cp_build_modify_expr): Same.
307 (build_x_modify_expr): Same.
308 (convert_for_assignment): Same.
309
9aa8327e
GA
3102021-06-24 Patrick Palka <ppalka@redhat.com>
311
312 PR c++/98832
313 * pt.c (maybe_aggr_guide): Handle alias templates appropriately.
314
3152021-06-24 Patrick Palka <ppalka@redhat.com>
316
317 PR c++/101182
318 * constraint.cc (evaluate_requires_expr): Adjust function comment.
319 * cp-gimplify.c (cp_genericize_r) <case REQUIRES_EXPR>: Move to ...
320 (cp_fold) <case REQUIRES_EXPR>: ... here.
321
3222021-06-24 Jakub Jelinek <jakub@redhat.com>
323
324 * parser.c (cp_omp_split_clauses): Pass C_ORT_OMP_TARGET instead of
325 C_ORT_OMP for clauses on target construct.
326 (OMP_TARGET_CLAUSE_MASK): Add in_reduction clause.
327 (cp_parser_omp_target): For non-combined target add
328 map (always, tofrom:) clauses for OMP_CLAUSE_IN_REDUCTION. Pass
329 C_ORT_OMP_TARGET to finish_omp_clauses.
330 * semantics.c (handle_omp_array_sections_1): Adjust ort handling
331 for addition of C_ORT_OMP_TARGET and simplify, mapping clauses are
332 never present on C_ORT_*DECLARE_SIMD.
333 (handle_omp_array_sections): Likewise.
334 (finish_omp_clauses): Likewise. Handle OMP_CLAUSE_IN_REDUCTION
335 on C_ORT_OMP_TARGET, set OMP_CLAUSE_MAP_IN_REDUCTION on
336 corresponding map clauses.
337 * pt.c (tsubst_expr): Pass C_ORT_OMP_TARGET instead of C_ORT_OMP for
338 clauses on target construct.
339
fcf617f0
GA
3402021-06-23 Patrick Palka <ppalka@redhat.com>
341
342 PR c++/101174
343 * pt.c (push_access_scope): For artificial deduction guides,
344 set the access scope to that of the constructor.
345 (pop_access_scope): Likewise.
346 (build_deduction_guide): Don't set DECL_CONTEXT on the guide.
347
3482021-06-23 Patrick Palka <ppalka@redhat.com>
349
350 PR c++/86439
351 * call.c (print_error_for_call_failure): Constify 'args' parameter.
352 (perform_dguide_overload_resolution): Define.
353 * cp-tree.h: (perform_dguide_overload_resolution): Declare.
354 * pt.c (do_class_deduction): Use perform_dguide_overload_resolution
355 instead of build_new_function_call. Don't use tf_decltype or
356 set cp_unevaluated_operand. Remove unnecessary NULL_TREE tests.
357
2f080224
GA
3582021-06-21 Patrick Palka <ppalka@redhat.com>
359
360 PR c++/67302
361 * typeck.c (check_return_expr): Call maybe_undo_parenthesized_ref
362 sooner, before the NRVO handling.
363
3642021-06-21 Patrick Palka <ppalka@redhat.com>
365
366 PR c++/80431
367 * tree.c (bot_replace): Use convert_to_base to build the
368 conversion to the (morally) virtual base.
369
3702021-06-21 Jakub Jelinek <jakub@redhat.com>
371
372 PR inline-asm/100785
373 * typeck.c (cxx_mark_addressable): Diagnose trying to make
374 bit-fields addressable.
375
688359a2
GA
3762021-06-17 Jason Merrill <jason@redhat.com>
377
378 PR c++/101106
379 * decl.c (duplicate_decls): Make 'deleted after first declaration'
380 pedwarn on by default.
381
3822021-06-17 Jason Merrill <jason@redhat.com>
383
384 PR c++/101029
385 * init.c (build_vec_init): Preserve the type of base.
386
9a61dfdb
GA
3872021-06-16 Jason Merrill <jason@redhat.com>
388
389 PR c++/101078
390 PR c++/91706
391 * pt.c (tsubst_baselink): Update binfos in non-dependent case.
392
ede6c356
GA
3932021-06-15 Robin Dapp <rdapp@linux.ibm.com>
394
395 * decl.c (duplicate_decls): Likewise.
396
8dc48181
GA
3972021-06-14 Tobias Burnus <tobias@codesourcery.com>
398
399 PR c/100913
400 * parser.c (cp_parser_omp_clause_affinity): No need to set iterator
401 var in the error case.
402
4e70c34e
GA
4032021-06-13 Trevor Saunders <tbsaunde@tbsaunde.org>
404
405 * constexpr.c (cxx_eval_call_expression): Iterate over vec<>
406 with range based for.
407 (cxx_eval_store_expression): Likewise.
408 (cxx_eval_loop_expr): Likewise.
409 * decl.c (wrapup_namespace_globals): Likewise.
410 (cp_finish_decl): Likewise.
411 (cxx_simulate_enum_decl): Likewise.
412 * parser.c (cp_parser_postfix_expression): Likewise.
413
8b8c3912
GA
4142021-06-12 Jason Merrill <jason@redhat.com>
415
416 PR c++/101029
417 * init.c (build_vec_init): Shortcut [0] case.
418
4192021-06-12 Jason Merrill <jason@redhat.com>
420
421 * pt.c (lookup_template_class_1): Shortcut current_class_type.
422
f16f65f8
GA
4232021-06-11 Patrick Palka <ppalka@redhat.com>
424
425 DR 1227
426 PR c++/96560
427 * pt.c (tsubst_arg_types): Rearrange so that we substitute into
428 TYPE_ARG_TYPES in forward order while short circuiting
429 appropriately. Adjust formatting.
430
4312021-06-11 Jakub Jelinek <jakub@redhat.com>
432
433 PR c++/100974
434 * cp-tree.h (struct saved_scope): Add consteval_if_p
435 member. Formatting fix for the discarded_stmt comment.
436 (in_consteval_if_p, IF_STMT_CONSTEVAL_P): Define.
437 * parser.c (cp_parser_lambda_expression): Temporarily disable
438 in_consteval_if_p when parsing lambda body.
439 (cp_parser_selection_statement): Parse consteval if.
440 * decl.c (struct named_label_entry): Add in_consteval_if member.
441 (level_for_consteval_if): New function.
442 (poplevel_named_label_1, check_previous_goto_1, check_goto): Handle
443 consteval if.
444 * constexpr.c (cxx_eval_builtin_function_call): Clarify in comment
445 why CP_BUILT_IN_IS_CONSTANT_EVALUATED needs to *non_constant_p
446 for !ctx->manifestly_const_eval.
447 (cxx_eval_conditional_expression): For IF_STMT_CONSTEVAL_P evaluate
448 condition as if it was __builtin_is_constant_evaluated call.
449 (potential_constant_expression_1): For IF_STMT_CONSTEVAL_P always
450 recurse on both branches.
451 * cp-gimplify.c (genericize_if_stmt): Genericize IF_STMT_CONSTEVAL_P
452 as the else branch.
453 * pt.c (tsubst_expr) <case IF_STMT>: Copy IF_STMT_CONSTEVAL_P.
454 Temporarily set in_consteval_if_p when recursing on
455 IF_STMT_CONSTEVAL_P then branch.
456 (tsubst_lambda_expr): Temporarily disable
457 in_consteval_if_p when instantiating lambda body.
458 * call.c (immediate_invocation_p): Return false when
459 in_consteval_if_p.
460
43c35d0d
GA
4612021-06-11 Marek Polacek <polacek@redhat.com>
462
463 PR c++/100995
464 * constexpr.c (maybe_constexpr_fn): New.
465 * cp-tree.h (maybe_constexpr_fn): Declare.
466 * semantics.c (find_std_constant_evaluated_r): New.
467 (maybe_warn_for_constant_evaluated): New.
468 (finish_if_stmt_cond): Call it.
469
4702021-06-10 Patrick Palka <ppalka@redhat.com>
471
472 PR c++/67829
473 * pt.c (unify) <case BOUND_TEMPLATE_TEMPLATE_PARM>: When
474 the TEMPLATE_DECL of a BOUND_TEMPLATE_TEMPLATE_PARM argument is
475 a template template parameter, adjust to the
476 TEMPLATE_TEMPLATE_PARAMETER before falling through.
477
4782021-06-10 Patrick Palka <ppalka@redhat.com>
479
480 PR c++/100946
481 * constraint.cc (normalize_placeholder_type_constraints): When
482 normalizing a non-templated return-type-requirement, add a dummy
483 level to initial_parms.
484
c6038721
GA
4852021-06-08 Marek Polacek <polacek@redhat.com>
486
487 PR c++/100065
488 * decl.c (grokdeclarator): Store a value-dependent
489 explicit-specifier even for deduction guides.
490
4912021-06-08 Jason Merrill <jason@redhat.com>
492
493 * parser.c (cp_parser_string_literal): Adjust diagnostic.
494
4952021-06-08 Jason Merrill <jason@redhat.com>
496
497 PR c++/100963
498 * call.c (perfect_conversion_p): Check check_narrowing.
499
5002021-06-08 Jason Merrill <jason@redhat.com>
501
502 PR c++/91706
503 * name-lookup.c (get_class_binding): Keep a BASELINK.
504 (set_inherited_value_binding_p): Adjust.
505 * lambda.c (is_lambda_ignored_entity): Adjust.
506 * pt.c (lookup_template_function): Copy a BASELINK before
507 modifying it.
508
5092021-06-08 Jason Merrill <jason@redhat.com>
510
511 PR c++/91706
512 * semantics.c (baselink_for_fns): Fix BASELINK_BINFO.
513
5142021-06-08 Jason Merrill <jason@redhat.com>
515
516 * module.cc (duplicate_hash::hash): Comment out.
517 (trees_in::tree_value): Adjust loop counter.
518
5192021-06-08 Jason Merrill <jason@redhat.com>
520
521 PR c++/100102
522 * init.c (build_offset_ref): Return the BASELINK for a static
523 member function.
524
438aac59
GA
5252021-06-07 Patrick Palka <ppalka@redhat.com>
526
527 PR c++/100918
528 * parser.c (cp_parser_lookup_name): Check access of the lookup
529 result before we potentially adjust an injected-class-name to
530 its TEMPLATE_DECL.
531
7d6987e9
GA
5322021-06-06 Jakub Jelinek <jakub@redhat.com>
533
534 PR c/100902
535 * parser.c (cp_parser_omp_target): Call c_omp_adjust_map_clauses
536 even when target is combined with other constructs.
537
600f90cb
GA
5382021-06-04 Patrick Palka <ppalka@redhat.com>
539
540 PR c++/100893
541 * pt.c (convert_template_argument): Strip top-level cv-quals
542 on the substituted type of a non-type template parameter.
543
5442021-06-04 Patrick Palka <ppalka@redhat.com>
545
546 PR c++/100102
547 * pt.c (tsubst_function_decl): Remove old code for reducing
548 args when it has excess levels.
549
5502021-06-04 Jakub Jelinek <jakub@redhat.com>
551
552 PR c++/100872
553 * name-lookup.c (maybe_save_operator_binding): Add op_attr after all
554 ATTR_IS_DEPENDENT attributes in the DECL_ATTRIBUTES list rather than
555 to the start.
556
440c8a0a
GA
5572021-06-03 Patrick Palka <ppalka@redhat.com>
558
559 PR c++/100592
560 * decl.c (make_typename_type): After calling
561 lookup_template_class, adjust the result to its TYPE_NAME and
562 then consider the tf_keep_type_decl flag.
563
5642021-06-03 Patrick Palka <ppalka@redhat.com>
565
566 PR c++/100862
567 * pt.c (set_current_access_from_decl): Move to ...
568 * class.c (set_current_access_from_decl): ... here.
569 (handle_using_decl): Use it to propagate the access of the
570 using-enum decl to the copy of the imported enumerator.
571 * cp-tree.h (set_current_access_from_decl): Declare.
572 * decl.c (build_enumerator): Simplify using make_temp_override
573 and set_current_access_from_decl.
574
5752021-06-03 Jakub Jelinek <jakub@redhat.com>
576
577 PR c++/100859
578 * semantics.c (handle_omp_array_sections_1): For
579 OMP_CLAUSE_{AFFINITY,DEPEND} handle FIELD_DECL base using
580 finish_non_static_data_member and allow this as base.
581 (finish_omp_clauses): Move OMP_CLAUSE_AFFINITY
582 after depend only cases. Let this be diagnosed by !lvalue_p
583 case for OMP_CLAUSE_{AFFINITY,DEPEND} and remove useless
584 assert.
585 * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_AFFINITY.
586
9663c744
GA
5872021-06-02 Jason Merrill <jason@redhat.com>
588
589 PR c++/100838
590 * call.c (convert_like_internal): Clear tf_no_cleanup when
591 recursing.
592 (build_user_type_conversion_1): Only add ck_rvalue if
593 LOOKUP_ONLYCONVERTING.
594
b75978d1
GA
5952021-06-01 Patrick Palka <ppalka@redhat.com>
596
597 PR c++/65816
598 * init.c (expand_aggr_init_1): Check
599 type_has_non_user_provided_default_constructor instead of
600 type_has_user_provided_constructor.
601
6022021-06-01 Jason Merrill <jason@redhat.com>
603
604 PR c++/91859
605 * call.c (build_op_delete_call): Don't set CALL_FROM_NEW_OR_DELETE_P
606 for destroying delete.
607 * init.c (build_delete): Don't clobber before destroying delete.
608
6092021-06-01 Jason Merrill <jason@redhat.com>
610
611 PR c++/94492
612 * decl2.c (cp_warn_deprecated_use): Check warning_enabled_at.
613
ee682192
GA
6142021-05-31 Richard Biener <rguenther@suse.de>
615
616 PR c++/88601
617 * cp-objcp-common.c (names_builtin_p): Handle
618 RID_BUILTIN_SHUFFLEVECTOR.
619 * cp-tree.h (build_x_shufflevector): Declare.
620 * parser.c (cp_parser_postfix_expression): Handle
621 RID_BUILTIN_SHUFFLEVECTOR.
622 * pt.c (tsubst_copy_and_build): Handle IFN_SHUFFLEVECTOR.
623 * typeck.c (build_x_shufflevector): Build either a lowered
624 VEC_PERM_EXPR or an unlowered shufflevector via a temporary
625 internal function IFN_SHUFFLEVECTOR.
626
48166757
GA
6272021-05-28 Jason Merrill <jason@redhat.com>
628
629 * constexpr.c (build_data_member_initialization): Use tsi_range.
630 (build_constexpr_constructor_member_initializers): Likewise.
631 (constexpr_fn_retval, cxx_eval_statement_list): Likewise.
632 (potential_constant_expression_1): Likewise.
633 * coroutines.cc (await_statement_expander): Likewise.
634 (await_statement_walker): Likewise.
635 * module.cc (trees_out::core_vals): Likewise.
636 * pt.c (tsubst_expr): Likewise.
637 * semantics.c (set_cleanup_locs): Likewise.
638
6392021-05-28 Jason Merrill <jason@redhat.com>
640
641 PR c++/100797
642 PR c++/95719
643 * call.c (build_over_call): Adjust base_binfo in
644 resolves_to_fixed_type_p case.
645
6462021-05-28 Jakub Jelinek <jakub@redhat.com>
647
648 PR middle-end/99928
649 * semantics.c (handle_omp_array_sections): Copy
650 OMP_CLAUSE_MAP_IMPLICIT.
651 (finish_omp_clauses): Move not just OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT
652 marked clauses last, but also OMP_CLAUSE_MAP_IMPLICIT. Add
653 map_firstprivate_head bitmap, set it for GOMP_MAP_FIRSTPRIVATE_POINTER
654 maps and silently remove OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT if it is
655 present too. For OMP_CLAUSE_MAP_IMPLICIT silently remove the clause
656 if present in map_head, map_field_head or map_firstprivate_head
657 bitmaps.
658
6592021-05-28 Tobias Burnus <tobias@codesourcery.com>
660
661 * parser.c (cp_parser_omp_clause_affinity): New.
662 (cp_parser_omp_clause_name, cp_parser_omp_var_list_no_open,
663 cp_parser_omp_all_clauses, OMP_TASK_CLAUSE_MASK): Handle affinity
664 clause.
665 * semantics.c (handle_omp_array_sections_1, handle_omp_array_sections,
666 finish_omp_clauses): Likewise.
667
cd62d089
GA
6682021-05-27 Matthias Kretz <kretz@kde.org>
669
670 PR c++/100716
671 * error.c (dump_template_bindings): Include code to print
672 "[with" and ']', conditional on whether anything is printed at
673 all. This is tied to whether a semicolon is needed to separate
674 multiple template parameters. If the template argument repeats
675 the template parameter (T = T), then skip the parameter.
676 (dump_substitution): Moved code to print "[with" and ']' to
677 dump_template_bindings.
678 (dump_function_decl): Partial revert of PR50828, which masked
679 TFF_TEMPLATE_NAME for all of dump_function_decl. Now
680 TFF_TEMPLATE_NAME is masked for the scope of the function and
681 only carries through to dump_function_name.
682 (dump_function_name): Avoid calling dump_template_parms if
683 TFF_TEMPLATE_NAME is set.
684
6852021-05-27 Matthias Kretz <kretz@kde.org>
686
687 PR c++/100763
688 * error.c: Call dump_scope when printing a typedef.
689
6902021-05-27 Patrick Palka <ppalka@redhat.com>
691
692 PR c++/99893
693 * tree.c (cp_walk_subtrees) <case STATIC_ASSERT>: New case.
694
6952021-05-27 Jason Merrill <jason@redhat.com>
696
697 PR c++/86355
698 * pt.c (use_pack_expansion_extra_args_p): Don't compare
699 args from the same argument pack.
700
7012021-05-27 Patrick Palka <ppalka@redhat.com>
702
703 DR 1315
704 PR c++/67593
705 PR c++/96555
706 * pt.c (process_partial_specialization): Don't error on a
707 non-simple non-type template argument that involves template
708 parameters.
709 (for_each_template_parm_r): Don't walk TRAIT_EXPR, PLUS_EXPR,
710 MULT_EXPR, or SCOPE_REF when include_nondeduced_p is false.
711
01c59ef2
GA
7122021-05-26 Patrick Palka <ppalka@redhat.com>
713
714 PR c++/100502
715 * typeck.c (finish_class_member_access_expr): Disable ahead
716 of time access checking during the member lookup.
717
7182021-05-26 Patrick Palka <ppalka@redhat.com>
719
720 PR c++/100368
721 * tree.c (build_target_expr_with_type): Don't call force_rvalue
722 on CALL_EXPR initializer. Simplify now that bot_manip is no
723 longer a caller.
724 (bot_manip): Use force_target_expr instead of
725 build_target_expr_with_type.
726
7272021-05-26 Patrick Palka <ppalka@redhat.com>
728
729 PR c++/97420
730 * cvt.c (noexcept_conv_p): Remove redundant checks and simplify.
731 (fnptr_conv_p): Don't call non_reference. Use INDIRECT_TYPE_P
732 instead of TYPE_PTR_P.
733 * pt.c (convert_nontype_argument_function): Look through
734 implicit INDIRECT_REFs before calling strip_fnptr_conv.
735
2bc6dace
GA
7362021-05-25 Jakub Jelinek <jakub@redhat.com>
737
738 PR c++/100666
739 * call.c (convert_arg_to_ellipsis): For expressions with NULLPTR_TYPE
740 and side-effects, temporarily disable -Wunused-result warning when
741 building COMPOUND_EXPR.
742
2832d51b
GA
7432021-05-21 Jakub Jelinek <jakub@redhat.com>
744
745 PR middle-end/99928
746 * semantics.c (finish_omp_clauses): Move firstprivate clauses with
747 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT to the end of the chain. Don't error
748 if a decl is mentioned both in map clause and in such firstprivate
749 clause unless OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET is also set.
750
ea34e2ed
GA
7512021-05-20 Jason Merrill <jason@redhat.com>
752
753 * call.c (reference_binding): Check for designator.
754 (implicit_conversion_1, build_special_member_call): Likewise.
755 * decl.c (reshape_init_r): Likewise.
756 * pt.c (do_class_deduction): Likewise.
757 * typeck2.c (digest_init_r): Likewise.
758
7592021-05-20 Jason Merrill <jason@redhat.com>
760
761 PR c++/100489
762 * decl.c (reshape_init_class): Handle designator for
763 member of anonymous aggregate here.
764 * typeck2.c (process_init_constructor_record): Not here.
765
7662021-05-20 Jonathan Wakely <jwakely@redhat.com>
767
768 * call.c (maybe_warn_array_conv): Use new warning option.
769 * decl.c (mark_inline_variable, grokdeclarator): Likewise.
770 * error.c (maybe_warn_cpp0x): Likewise.
771 * parser.c (cp_parser_primary_expression)
772 (cp_parser_unqualified_id)
773 (cp_parser_pseudo_destructor_name)
774 (cp_parser_lambda_introducer)
775 (cp_parser_lambda_declarator_opt)
776 (cp_parser_selection_statement)
777 (cp_parser_init_statement)
778 (cp_parser_decomposition_declaration)
779 (cp_parser_function_specifier_opt)
780 (cp_parser_static_assert)
781 (cp_parser_namespace_definition)
782 (cp_parser_using_declaration)
783 (cp_parser_asm_definition)
784 (cp_parser_ctor_initializer_opt_and_function_body)
785 (cp_parser_initializer_list)
786 (cp_parser_type_parameter_key)
787 (cp_parser_member_declaration)
788 (cp_parser_try_block)
789 (cp_parser_std_attribute_spec): Likewise.
790 * pt.c (check_template_variable): Likewise.
791
7922021-05-20 Jason Merrill <jason@redhat.com>
793
794 PR c++/100634
795 * pt.c (invalid_nontype_parm_type_p): Return true for COMPLEX_TYPE.
796
7972021-05-20 Jason Merrill <jason@redhat.com>
798
799 PR c++/100659
800 * cp-tree.h (CONST_DECL_USING_P): Check for null TREE_TYPE.
801
65f32e5d
GA
8022021-05-19 Jason Merrill <jason@redhat.com>
803
804 PR c++/100367
805 PR c++/96299
806 * method.c (genericize_spaceship): Use fold_build2 for scalar
807 operands.
808
8092021-05-19 Jason Merrill <jason@redhat.com>
810
811 * pt.c (build_deduction_guide): Treat the implicit deduction guide
812 as a member of the class.
813
8142021-05-19 Marek Polacek <polacek@redhat.com>
815
816 PR c++/100596
817 * cp-tree.h (any_non_type_attribute_p): Remove.
818 * decl.c (grokdeclarator): Turn an error into a warning and only
819 warn for standard attributes.
820 * decl2.c (any_non_type_attribute_p): Remove.
821 * parser.c (cp_parser_elaborated_type_specifier): Turn an error
822 into a warning and only warn for standard attributes.
823 (cp_parser_member_declaration): Likewise.
824
8252021-05-19 Martin Liska <mliska@suse.cz>
826
827 PR testsuite/100658
828 * mangle.c (write_encoding): Fix typos.
829
8302021-05-19 Jakub Jelinek <jakub@redhat.com>
831
832 PR middle-end/99928
833 * parser.c (cp_parser_omp_master): Set OMP_MASTER_COMBINED on
834 master when combined with taskloop.
835 (cp_parser_omp_parallel): Don't set OMP_PARALLEL_COMBINED on
836 parallel master when not combined with taskloop.
837
8382021-05-19 Jason Merrill <jason@redhat.com>
839
840 PR c++/100261
841 * rtti.c (get_tinfo_decl_direct): Check TYPE_TRANSPARENT_AGGR.
842
8432021-05-19 Jason Merrill <jason@redhat.com>
844
845 PR c++/100372
846 * tree.c (strip_typedefs): Only look at the pattern of a
847 TYPE_PACK_EXPANSION if it's a type.
848
a8daf9a1
GA
8492021-05-18 Marek Polacek <polacek@redhat.com>
850
851 * class.c (classtype_has_non_deleted_copy_ctor): Remove.
852 * constraint.cc (contains_wildcard_p): Likewise.
853 (get_template_head_requirements): Likewise.
854 (check_constrained_friend): Likewise.
855 (subsumes_constraints): Likewise.
856 * cp-tree.h (classtype_has_non_deleted_copy_ctor): Likewise.
857 (push_void_library_fn): Likewise.
858 (get_pattern_parm): Likewise.
859 (get_template_parms_at_level): Likewise.
860 (lambda_return_type): Likewise.
861 (get_template_head_requirements): Likewise.
862 (check_constrained_friend): Likewise.
863 (subsumes_constraints): Likewise.
864 * decl.c (push_void_library_fn): Likewise.
865 * lambda.c (lambda_return_type): Likewise.
866 * pt.c (get_template_parms_at_level): Likewise.
867 (get_pattern_parm): Likewise.
868
8692021-05-18 Jason Merrill <jason@redhat.com>
870
871 PR c++/100644
872 * call.c (perfect_candidate_p): An implicitly deleted move
873 is not perfect.
874
8752021-05-18 Andreas Krebbel <krebbel@linux.ibm.com>
876
877 PR c++/100281
878 * cvt.c (cp_convert_to_pointer): Use the size of the target
879 pointer type.
880 * tree.c (cp_build_reference_type): Call
881 cp_build_reference_type_for_mode with VOIDmode.
882 (cp_build_reference_type_for_mode): Rename from
883 cp_build_reference_type. Add MODE argument and invoke
884 build_reference_type_for_mode.
885 (strip_typedefs): Use build_pointer_type_for_mode and
886 cp_build_reference_type_for_mode for pointers and references.
887
a7ffc1ef
GA
8882021-05-17 Jonathan Wakely <jwakely@redhat.com>
889
890 PR c++/100635
891 * call.c (convert_like_internal): Print different diagnostic if
892 the lvalue reference is const.
893
87a7d10c
GA
8942021-05-14 Jason Merrill <jason@redhat.com>
895
896 PR c++/95870
897 * pt.c (enclosing_instantiation_of): Just compare
898 DECL_SOURCE_LOCATION.
899 (regenerate_decl_from_template): Copy DECL_SOURCE_LOCATION.
900
9012021-05-14 Marek Polacek <polacek@redhat.com>
902 Jason Merrill <jason@redhat.com>
903
904 PR c++/99032
905 * cp-tree.h (any_non_type_attribute_p): Declare.
906 * decl.c (grokdeclarator): Diagnose when an attribute appertains to
907 a friend declaration that is not a definition.
908 * decl2.c (any_non_type_attribute_p): New.
909 * parser.c (cp_parser_decl_specifier_seq): Diagnose standard attributes
910 in the middle of decl-specifiers.
911 (cp_parser_elaborated_type_specifier): Diagnose when an attribute
912 appertains to a friend declaration that is not a definition.
913 (cp_parser_member_declaration): Likewise.
914
0ff3a0f2
GA
9152021-05-12 Marek Polacek <polacek@redhat.com>
916
917 * pt.c (tsubst_copy_and_build): Add warn_int_in_bool_context
918 sentinel.
919
9202021-05-12 Marcel Vollweiler <marcel@codesourcery.com>
921
922 * parser.c (cp_parser_omp_clause_map): Support map-type-modifier
923 'close'.
924
037e3661
GA
9252021-05-11 Jason Merrill <jason@redhat.com>
926
927 PR c++/100517
928 * typeck.c (build_reinterpret_cast_1): Check intype on
929 cast to vector.
930
9312021-05-11 Patrick Palka <ppalka@redhat.com>
932
933 PR c++/51577
934 * name-lookup.c (maybe_save_operator_binding): Unconditionally
935 enable for all function templates, not just generic lambdas.
936 Handle compound-assignment operator expressions.
937 * typeck.c (build_x_compound_expr): Call maybe_save_operator_binding
938 in the type-dependent case.
939 (build_x_modify_expr): Likewise. Move declaration of 'op' closer
940 to its first use.
941
9422021-05-11 Patrick Palka <ppalka@redhat.com>
943
944 PR c++/100138
945 * constraint.cc (tsubst_constraint): Set up cp_unevaluated.
946 (satisfy_atom): Set up iloc_sentinel before calling
947 cxx_constant_value.
948 * pt.c (tsubst_pack_expansion): When returning a rebuilt pack
949 expansion, carry over PACK_EXPANSION_LOCAL_P and
950 PACK_EXPANSION_SIZEOF_P from the original pack expansion.
951
aa891c56
GA
9522021-05-10 Richard Biener <rguenther@suse.de>
953
954 PR middle-end/100464
955 PR c++/100468
956 * call.c (set_up_extended_ref_temp): Mark the temporary
957 addressable if the TARGET_EXPR was.
958
9592021-05-10 Martin Liska <mliska@suse.cz>
960
961 * decl.c (duplicate_decls): Use startswith
962 function instead of strncmp.
963 (cxx_builtin_function): Likewise.
964 (omp_declare_variant_finalize_one): Likewise.
965 (grokfndecl): Likewise.
966 * error.c (dump_decl_name): Likewise.
967 * mangle.c (find_decomp_unqualified_name): Likewise.
968 (write_guarded_var_name): Likewise.
969 (decl_tls_wrapper_p): Likewise.
970 * parser.c (cp_parser_simple_type_specifier): Likewise.
971 (cp_parser_tx_qualifier_opt): Likewise.
972 * pt.c (template_parm_object_p): Likewise.
973 (dguide_name_p): Likewise.
974
9752021-05-10 Martin Liska <mliska@suse.cz>
976
977 PR c++/99616
978 * decl.c (grokdeclarator): Remove redundant NULL check.
979
62d87a32
GA
9802021-05-07 Jason Merrill <jason@redhat.com>
981
982 * tree.c (rvalue): Assert expr is not a class lvalue.
983
9842021-05-07 Jason Merrill <jason@redhat.com>
985
986 * cp-tree.h (build_stub_object): Declare.
987 * method.c (build_stub_object): No longer static.
988 * call.c (can_convert): Use it.
989 * tree.c (build_dummy_object): Adjust comment.
990 * typeck.c (cp_build_binary_op): Wrap SPACESHIP_EXPR in a
991 TARGET_EXPR.
992
9932021-05-07 Jason Merrill <jason@redhat.com>
994
995 * coroutines.cc (build_co_await): Don't call 'rvalue'.
996 (flatten_await_stmt): Simplify initialization.
997 (morph_fn_to_coro): Change 'rvalue' to 'move'. Simplify.
998
99e8df7a
GA
9992021-05-04 Tobias Burnus <tobias@codesourcery.com>
1000
1001 * semantics.c (finish_omp_reduction_clause): Accept float + complex
1002 for || and && reductions.
1003
e690396d
GA
10042021-05-03 Patrick Palka <ppalka@redhat.com>
1005
1006 PR c++/100362
1007 * parser.c (cp_parser_class_head): Reinstate calls to pushclass
1008 and popclass when parsing the base-clause that were removed in
1009 r11-6815.
1010
10112021-05-03 Patrick Palka <ppalka@redhat.com>
1012
1013 PR c++/68942
1014 PR c++/100344
1015 * pt.c (tsubst_copy_and_build) <case CALL_EXPR>: Set tf_conv
1016 only when the callee is a FUNCTION_DECL.
1017
10182021-05-03 Marek Polacek <polacek@redhat.com>
1019
1020 PR c++/100055
1021 * decl.c (grokfndecl): Check current_template_parms.
1022
10232021-05-03 Marek Polacek <polacek@redhat.com>
1024
1025 DR 1312
1026 * constexpr.c (cxx_eval_constant_expression): Don't check
1027 integer_zerop.
1028
620a0635
GA
10292021-05-01 Jason Merrill <jason@redhat.com>
1030
1031 * cp-tree.h (class ovl_iterator): Allow copying. Add op==.
1032 (class ovl_range, class lkp_range): New.
1033 * call.c (build_op_call_1, add_candidates): Use them.
1034 (build_op_delete_call, has_trivial_copy_assign_p): Likewise.
1035 (has_trivial_copy_p): Likewise.
1036 * class.c (handle_using_decl, get_basefndecls): Likewise.
1037 (maybe_warn_about_overly_private_class): Likewise.
1038 (warn_hidden, add_implicitly_declared_members): Likewise.
1039 (check_methods, clone_constructors_and_destructors): Likewise.
1040 (type_has_user_nondefault_constructor): Likewise.
1041
3c8e539d
GA
10422021-04-29 Jason Merrill <jason@redhat.com>
1043
1044 * constexpr.c (cxx_fold_indirect_ref_1): Only set *empty_base if we
1045 don't find a field.
1046
10472021-04-29 Jason Merrill <jason@redhat.com>
1048
1049 PR c++/51344
1050 * decl2.c (grokfield): Call cplus_decl_attributes for friend.
1051 (save_template_attributes): Use chainon.
1052 * friend.c (do_friend): Remove attrlist parm.
1053 * cp-tree.h (do_friend): Adjust.
1054 * class.c (add_implicitly_declared_members): Adjust.
1055 * decl.c (grokdeclarator): Adjust.
1056 * pt.c (apply_late_template_attributes): Optimize.
1057
10582021-04-29 Jason Merrill <jason@redhat.com>
1059
1060 PR c++/97974
1061 * class.c (finish_struct_anon_r): Drop complain parm.
1062 Remove non-field diagnostic.
1063 (finish_struct_anon): Adjust.
1064 * decl.c (fixup_anonymous_aggr): Move non-field diagnostic here.
1065
10662021-04-29 Jason Merrill <jason@redhat.com>
1067
1068 * cp-tree.h (cp_evaluated): Add reset parm to constructor.
1069 * parser.c (cp_parser_constant_expression): Change
1070 allow_non_constant_p to int. Use cp_evaluated.
1071 (cp_parser_initializer_clause): Pass 2 to allow_non_constant_p.
1072 * semantics.c (finish_id_expression_1): Don't mess with
1073 cp_unevaluated_operand here.
1074
10752021-04-29 Jason Merrill <jason@redhat.com>
1076
1077 * cp-tree.h: Clarify comments.
1078 * pt.c (get_template_parm_object): Add assert.
1079 * semantics.c (finish_compound_literal): Clear TREE_HAS_CONSTRUCTOR.
1080 * tree.c (zero_init_expr_p): Check TREE_HAS_CONSTRUCTOR.
1081 * typeck2.c (store_init_value): Likewise.
1082
10832021-04-29 Patrick Palka <ppalka@redhat.com>
1084
1085 PR c++/68942
1086 * pt.c (tsubst_copy_and_build) <case CALL_EXPR>: When KOENIG_P,
1087 set tf_conv during the initial substitution into the function.
1088
10892021-04-29 Jakub Jelinek <jakub@redhat.com>
1090
1091 PR c++/100319
1092 * semantics.c (finish_omp_clauses): Fix up check that variable
1093 mentioned in detach clause doesn't appear in data-sharing clauses.
1094
e4ff4ffb
GA
10952021-04-28 Jakub Jelinek <jakub@redhat.com>
1096
1097 * module.cc: Remove #error that triggers if DEV-PHASE is empty.
1098
8f54dd61
GA
10992021-04-27 Jason Merrill <jason@redhat.com>
1100
1101 PR c++/92145
1102 * class.c (classtype_has_depr_implicit_copy): Check DECL_CONTEXT
1103 of operator=.
1104
11052021-04-27 Patrick Palka <ppalka@redhat.com>
1106
1107 PR c++/88580
1108 * pt.c (tsubst_initializer_list): Correctly handle the case
1109 where an argument inside a base initializer pack expansion is
1110 itself a pack expansion.
1111
c0fa3f2f
GA
11122021-04-26 Patrick Palka <ppalka@redhat.com>
1113
1114 PR c++/100209
1115 * constexpr.c (cxx_fold_indirect_ref): Try to canonicalize the
1116 object/offset pair for a POINTER_PLUS_EXPR of a COMPONENT_REF
1117 with a negative offset into one whose offset is nonnegative
1118 before calling cxx_fold_indirect_ref_1.
1119
502ef97c
GA
11202021-04-24 Patrick Palka <ppalka@redhat.com>
1121
1122 PR c++/89565
1123 PR c++/93383
1124 PR c++/95291
1125 PR c++/99200
1126 PR c++/99683
1127 * pt.c (do_class_deduction): Punt if the initializer is
1128 type-dependent.
1129
11302021-04-24 Patrick Palka <ppalka@redhat.com>
1131
1132 PR c++/87709
1133 * parser.c (cp_parser_type_id_1): If we see a template
1134 placeholder, first try simulating an error before issuing
1135 a real error.
1136
05ec629f
GA
11372021-04-23 Patrick Palka <ppalka@redhat.com>
1138
1139 PR c++/98767
1140 * cxx-pretty-print.c (pp_cxx_parameter_declaration_clause):
1141 Adjust parameter list loop to iterate over 'types' instead of
1142 'args'. Output the trailing '...' for a variadic function.
1143 Remove PARM_DECL support.
1144 (pp_cxx_requires_expr): Pretty print the parameter list directly
1145 instead of going through pp_cxx_parameter_declaration_clause.
1146
11472021-04-23 Patrick Palka <ppalka@redhat.com>
1148
1149 DR 2374
1150 * decl.c (is_direct_enum_init): Check the implicit
1151 convertibility requirement added by CWG 2374.
1152
11532021-04-23 Martin Liska <mliska@suse.cz>
1154
1155 * cp-tree.h (STATIC_ASSERT): Prefer static assert.
1156 * lex.c (init_operators): Remove run-time check.
1157
e3948473
GA
11582021-04-22 Marek Polacek <polacek@redhat.com>
1159
1160 PR c++/100161
1161 * pt.c (tsubst_copy_and_build) <case PLUS_EXPR>: Test op0 and
1162 op1 separately for value- or type-dependence.
1163
c1ef0c92
GA
11642021-04-21 Marek Polacek <polacek@redhat.com>
1165
1166 PR c++/96380
1167 * parser.c (cp_parser_enum_specifier): Don't allow defining
1168 types in enum-base.
1169
11702021-04-21 Martin Liska <mliska@suse.cz>
1171
1172 Revert:
1173 2021-04-21 Martin Liska <mliska@suse.cz>
1174
1175 * error.c (dump_decl): Use flags in dump_generic_node call.
1176
11772021-04-21 Martin Liska <mliska@suse.cz>
1178
1179 * error.c (dump_decl): Use flags in dump_generic_node call.
1180
11812021-04-21 Martin Liska <mliska@suse.cz>
1182
1183 * error.c (dump_decl): Support anonymous labels.
1184
be8aad8d
GA
11852021-04-20 Jason Merrill <jason@redhat.com>
1186
1187 PR c++/100109
1188 * pt.c (find_parameter_packs_r): Look into enum initializers.
1189
6e81e015
GA
11902021-04-19 Marek Polacek <polacek@redhat.com>
1191
1192 PR c++/97536
1193 * decl.c (grokvardecl): Given an error when a concept is not defined
1194 at namespace scope.
1195
8ae884c0
GA
11962021-04-16 Jakub Jelinek <jakub@redhat.com>
1197
1198 PR c++/100111
1199 * constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs
1200 for empty classes into *valp when types don't match even when *valp
1201 is NULL.
1202
12032021-04-16 Marek Polacek <polacek@redhat.com>
1204
1205 PR c++/99803
1206 * decl.c (make_typename_type): Give an error and return when
1207 name is is_overloaded_fn.
1208 * parser.c (cp_parser_class_name): Don't check is_overloaded_fn
1209 before calling make_typename_type.
1210
12112021-04-16 Patrick Palka <ppalka@redhat.com>
1212
1213 PR c++/99700
1214 * constexpr.c (reduced_constant_expression_p): For array
1215 CONSTRUCTORs, use a dedicated loop that additionally verifies
1216 the CONSTRUCTOR spans the entire array.
1217
12182021-04-16 Jakub Jelinek <jakub@redhat.com>
1219
1220 PR c++/99850
1221 * parser.c (cp_parser_constraint_requires_parens) <case CPP_DEREF>:
1222 If lambda_p, return pce_ok instead of pce_maybe_postfix.
1223
12242021-04-16 Jakub Jelinek <jakub@redhat.com>
1225
1226 PR c++/99833
1227 * pt.c (extract_locals_r): When handling DECL_EXPR of a structured
1228 binding, add to data.internal also all corresponding structured
1229 binding decls.
1230
12312021-04-16 Jason Merrill <jason@redhat.com>
1232
1233 PR c++/100079
1234 * cp-tree.h (first_field): Declare.
1235 * mangle.c (range_expr_nelts): New.
1236 (write_expression): Improve class NTTP mangling.
1237 * pt.c (get_template_parm_object): Clear TREE_HAS_CONSTRUCTOR.
1238 * tree.c (zero_init_expr_p): Improve class NTTP handling.
1239 * decl.c: Adjust comment.
1240
ee351f7f
GA
12412021-04-15 Jason Merrill <jason@redhat.com>
1242
1243 PR c++/80456
1244 * call.c (build_new_method_call_1): Check again for side-effects
1245 with a volatile object.
1246
12472021-04-15 Jason Merrill <jason@redhat.com>
1248
1249 PR c++/100101
1250 PR c++/99583
1251 * pt.c (find_parameter_packs_r) [FUNCTION_TYPE]: Walk into
1252 TYPE_RAISES_EXCEPTIONS here.
1253 * tree.c (cp_walk_subtrees): Not here.
1254
12552021-04-15 Jason Merrill <jason@redhat.com>
1256
1257 PR c++/100091
1258 PR c++/99478
1259 * parser.c (cp_parser_default_type_template_argument): Set
1260 parser->local_variables_forbidden_p.
1261
12622021-04-15 Richard Sandiford <richard.sandiford@arm.com>
1263
1264 PR c++/98852
1265 * typeck.c (merge_type_attributes_from): New function.
1266 (cp_common_type): Use it for vector types.
1267
df3b1289
GA
12682021-04-14 Jason Merrill <jason@redhat.com>
1269
1270 PR c++/100078
1271 PR c++/93085
1272 * pt.c (uses_outer_template_parms): Also look at default
1273 template argument.
1274
12752021-04-14 Jason Merrill <jason@redhat.com>
1276
1277 PR c++/93314
1278 * semantics.c (finish_id_expression_1): Clear cp_unevaluated_operand
1279 for a non-static data member in a constant-expression.
1280
12812021-04-14 Patrick Palka <ppalka@redhat.com>
1282
1283 PR c++/83476
1284 PR c++/99885
1285 * pt.c (deducible_expression): Look through implicit
1286 INDIRECT_REFs as well.
1287
12882021-04-14 Jason Merrill <jason@redhat.com>
1289
1290 PR c++/99478
1291 * parser.c (cp_parser_lambda_expression): Reject lambda
1292 in template parameter type.
1293
12942021-04-14 Jason Merrill <jason@redhat.com>
1295
1296 PR c++/90674
1297 * decl.c (duplicate_decls): Don't propagate
1298 DECL_INITIALIZED_IN_CLASS_P to a specialization.
1299
13002021-04-14 Jason Merrill <jason@redhat.com>
1301
1302 PR c++/88742
1303 PR c++/49951
1304 PR c++/58123
1305 * semantics.c (set_cleanup_locs): New.
1306 (do_poplevel): Call it.
1307 * parser.c (cp_parser_compound_statement): Consume the }
1308 before finish_compound_stmt.
1309
6d0d35d5
GA
13102021-04-13 Jason Merrill <jason@redhat.com>
1311
1312 PR c++/100032
1313 * pt.c (get_underlying_template): Compare TYPE_QUALS.
1314
13152021-04-13 Jason Merrill <jason@redhat.com>
1316
1317 PR c++/100054
1318 PR c++/90479
1319 * init.c (get_nsdmi): Do more context adjustment for local classes.
1320
13212021-04-13 Patrick Palka <ppalka@redhat.com>
1322
1323 PR c++/99008
1324 * pt.c (do_class_deduction): Reject alias CTAD in C++17 mode
1325 rather than issuing a pedwarn.
1326 * typeck2.c (build_functional_cast_1): Handle CTAD uniformly
1327 for consistent diagnostics.
1328
13292021-04-13 Jason Merrill <jason@redhat.com>
1330
1331 PR c++/91933
1332 * class.c (build_base_path): Shortcut simple non-pointer case.
1333
13342021-04-13 Eric Botcazou <ebotcazou@adacore.com>
1335
1336 * module.cc (ordinary_loc_of): Test LINEMAPS_MACRO_LOWEST_LOCATION
1337 of the linemap.
1338 (module_state::write_location): Likewise.
1339
13402021-04-13 Patrick Palka <ppalka@redhat.com>
1341
1342 PR c++/97134
1343 * pt.c (do_class_deduction): Look through EXPR_PACK_EXPANSION
1344 when checking if the initializer is an equivalent class
1345 placeholder template parameter.
1346
13472021-04-13 Patrick Palka <ppalka@redhat.com>
1348
1349 PR c++/99961
1350 PR c++/99994
1351 * constraint.cc (satisfy_normalized_constraints): Set
1352 cp_unevaluated.
1353 * parser.c (cp_parser_concept_definition): Likewise.
1354 (cp_parser_requires_clause_opt): Likewise.
1355
287ad814
GA
13562021-04-12 Jason Merrill <jason@redhat.com>
1357
1358 PR c++/93085
1359 * pt.c (uses_outer_template_parms): Handle non-type and template
1360 template parameters specifically.
1361
a0ecde22
GA
13622021-04-11 Jason Merrill <jason@redhat.com>
1363
1364 PR c++/97974
1365 * decl.c (fixup_anonymous_aggr): Prune all functions from
1366 CLASSTYPE_MEMBER_VEC.
1367
1d54b138
GA
13682021-04-10 Jason Merrill <jason@redhat.com>
1369
1370 PR c++/98800
1371 PR c++/97399
1372 * parser.c (cp_parser_direct_declarator): Don't
1373 inject_this_parameter if static_p.
1374 (cp_parser_omp_var_list_no_open): Parse 'this' even if
1375 current_class_ptr isn't set for a better diagnostic.
1376
13772021-04-10 Jason Merrill <jason@redhat.com>
1378
1379 PR c++/99180
1380 PR c++/93295
1381 PR c++/93867
1382 PR c++/99118
1383 PR c++/96873
1384 * pt.c (alias_ctad_tweaks): Handle failure better.
1385
13862021-04-10 Jason Merrill <jason@redhat.com>
1387
1388 PR c++/100006
1389 * pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases.
1390
3115aba8
GA
13912021-04-09 Patrick Palka <ppalka@redhat.com>
1392
1393 * cp-tree.h (LAMBDA_EXPR_REGENERATED_FROM)
1394 (LAMBDA_EXPR_REGENERATING_TARGS): Replace these with ...
1395 (LAMBDA_EXPR_REGEN_INFO): ... this.
1396 (tree_lambda_expr::regenerated_from)
1397 (tree_lambda_expr::regenerating_targs): Replace these with ...
1398 (tree_lambda_expr::regen_info): ... this.
1399 * constraint.cc (satisfy_declaration_constraints): Adjust
1400 accordingly.
1401 * lambda.c (build_lambda_expr): Likewise.
1402 * pt.c (regenerated_lambda_fn_p): Likewise.
1403 (most_general_lambda): Likewise.
1404 (tsubst_lambda_expr): Likewise.
1405
14062021-04-09 Marek Polacek <polacek@redhat.com>
1407
1408 PR c++/99806
1409 * parser.c (cp_parser_member_declaration): Call
1410 cp_parser_save_default_args even for function templates. Use
1411 STRIP_TEMPLATE on the declaration we're passing.
1412
019a9220
GA
14132021-04-08 Patrick Palka <ppalka@redhat.com>
1414
1415 PR c++/99874
1416 * constraint.cc (get_normalized_constraints_from_decl): Handle
1417 regenerated lambdas.
1418 (satisfy_declaration_constraints): Likewise. Check for
1419 dependent args later.
1420 * cp-tree.h (LAMBDA_EXPR_INSTANTIATED): Replace with ...
1421 (LAMBDA_EXPR_REGENERATED_FROM): ... this.
1422 (LAMBDA_EXPR_REGENERATING_TARGS): New.
1423 (tree_lambda_expr::regenerated_from): New data member.
1424 (tree_lambda_expr::regenerating_targs): New data member.
1425 (add_to_template_args): Declare.
1426 (regenerated_lambda_fn_p): Likewise.
1427 (most_general_lambda): Likewise.
1428 * lambda.c (build_lambda_expr): Set LAMBDA_EXPR_REGENERATED_FROM
1429 and LAMBDA_EXPR_REGENERATING_TARGS.
1430 * pt.c (add_to_template_args): No longer static.
1431 (tsubst_function_decl): Unconditionally propagate constraints on
1432 the substituted function decl.
1433 (instantiated_lambda_fn_p): Rename to ...
1434 (regenerated_lambda_fn_p): ... this. Check
1435 LAMBDA_EXPR_REGENERATED_FROM instead of
1436 LAMBDA_EXPR_INSTANTIATED.
1437 (most_general_lambda): Define.
1438 (enclosing_instantiation_of): Adjust after renaming
1439 instantiated_lambda_fn_p.
1440 (tsubst_lambda_expr): Don't set LAMBDA_EXPR_INSTANTIATED. Set
1441 LAMBDA_EXPR_REGENERATED_FROM and LAMBDA_EXPR_REGENERATING_TARGS.
1442 Don't substitute or set constraints on the regenerated lambda.
1443
14442021-04-08 Patrick Palka <ppalka@redhat.com>
1445
1446 PR c++/97679
1447 * pt.c (build_deduction_guide): Document OUTER_ARGS. Substitute
1448 them into the propagated constraints.
1449
14502021-04-08 Jason Merrill <jason@redhat.com>
1451
1452 PR c++/91849
1453 * call.c (convert_like_internal): Improve reference diagnostic.
1454
14552021-04-08 Jakub Jelinek <jakub@redhat.com>
1456
1457 PR c++/99859
1458 * constexpr.c (addr_of_non_const_var): New function.
1459 (cxx_bind_parameters_in_call): Set *non_constant_args to true
1460 even if cp_walk_tree on arg with addr_of_non_const_var callback
1461 returns true.
1462
14632021-04-08 Jason Merrill <jason@redhat.com>
1464
1465 PR c++/94529
1466 * pt.c (determine_specialization): Improve diagnostic.
1467
14682021-04-08 Marek Polacek <polacek@redhat.com>
1469
1470 PR c++/99844
1471 * decl.c (build_explicit_specifier): Call
1472 check_for_bare_parameter_packs.
1473 * except.c (build_noexcept_spec): Likewise.
1474
299859c2
GA
14752021-04-07 Jason Merrill <jason@redhat.com>
1476
1477 PR c++/41723
1478 * parser.c (cp_parser_class_name): Check dependent_scope_p.
1479
14802021-04-07 Jason Merrill <jason@redhat.com>
1481
1482 PR c++/52625
1483 * pt.c (maybe_process_partial_specialization): Check
1484 DECL_SELF_REFERENCE_P.
1485
14862021-04-07 Jason Merrill <jason@redhat.com>
1487
1488 PR c++/92918
1489 * name-lookup.c (push_class_level_binding_1): Do overload a new
1490 function with a previous using-declaration.
1491
8cac6af6
GA
14922021-04-06 Jason Merrill <jason@redhat.com>
1493
1494 PR c++/96673
1495 * init.c (get_nsdmi): Don't defer access checking.
1496
14972021-04-06 Jason Merrill <jason@redhat.com>
1498
1499 PR c++/99901
1500 * decl.c (cp_finish_decl): mark_needed an implicitly inline
1501 static data member with an out-of-class redeclaration.
1502
15032021-04-06 Jason Merrill <jason@redhat.com>
1504
1505 PR c++/91241
1506 * mangle.c (write_compact_number): Add sanity check.
1507 (write_local_name): Use list_length for parm number.
1508
15092021-04-06 Patrick Palka <ppalka@redhat.com>
1510
1511 PR c++/99899
1512 * pt.c (do_auto_deduction): Don't exit early when deducing the
1513 array type of a structured binding. Also handle adc_decomp_type
1514 during constraint checking.
1515
b1da9916
GA
15162021-04-05 Jason Merrill <jason@redhat.com>
1517
1518 PR c++/96311
1519 * typeck.c (check_return_expr): Call mark_exp_read in dependent
1520 case.
1521
15222021-04-05 Jason Merrill <jason@redhat.com>
1523
1524 PR c++/98440
1525 * typeck.c (build_reinterpret_cast_1): Don't perform
1526 temporary materialization.
1527
15282021-04-05 Jason Merrill <jason@redhat.com>
1529
1530 PR c++/95317
1531 * pt.c (lookup_template_class_1): Do tsubst_enum when
1532 tsubsting a generic lambda.
1533
15342021-04-05 Jason Merrill <jason@redhat.com>
1535
1536 PR c++/95870
1537 * pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if
1538 there is no enclosing non-lambda function.
1539
15402021-04-05 Nathan Sidwell <nathan@acm.org>
1541
1542 PR c++/99380
1543 * module.cc (name_pending_imports): Drop 'atend' parm. Don't
1544 query export when not needed.
1545 (preprocess_module, preprocessed_module): Adjust.
1546
15472021-04-05 Jason Merrill <jason@redhat.com>
1548
1549 PR c++/99066
1550 * pt.c (mark_decl_instantiated): Set DECL_EXTERNAL.
1551
15522021-04-05 Jason Merrill <jason@redhat.com>
1553
1554 PR c++/99201
1555 * pt.c (class el_data): Add visited field.
1556 (extract_local_specs): Pass it to cp_walk_tree.
1557 (extract_locals_r): Walk into the body of a lambda.
1558
15592021-04-05 Jason Merrill <jason@redhat.com>
1560
1561 * ptree.c (cxx_print_decl): Check DECL_MODULE_IMPORT_P on
1562 template result.
1563
91472884
GA
15642021-04-04 Jason Merrill <jason@redhat.com>
1565
1566 PR c++/99643
1567 * typeck2.c (massage_init_elt): Don't strip TARGET_EXPR.
1568
c0756c4e
GA
15692021-04-03 Marek Polacek <polacek@redhat.com>
1570
1571 PR c++/91416
1572 * parser.c: Create a GC root for attributes in a decl specifier.
1573 (cp_parser_type_specifier): Push/pop ->attributes onto/from it.
1574
15752021-04-03 Jason Merrill <jason@redhat.com>
1576
1577 PR c++/91217
1578 * pt.c (tsubst_lambda_expr): Skip the body block from
1579 DECL_SAVED_TREE.
1580
15812021-04-03 Jason Merrill <jason@redhat.com>
1582
1583 PR c++/90664
1584 * cvt.c (can_convert_qual): Check fnptr_conv_p.
1585
15862021-04-03 Jason Merrill <jason@redhat.com>
1587
1588 PR c++/97900
1589 * pt.c (regenerate_decl_from_template): tsubst_decl
1590 the parms.
1591
b7c1f3d6
GA
15922021-04-02 Patrick Palka <ppalka@redhat.com>
1593
1594 PR c++/99869
1595 * parser.c (do_range_for_auto_deduction): Pass adc_variable_type
1596 to do_auto_deduction.
1597
15982021-04-02 Patrick Palka <ppalka@redhat.com>
1599
1600 PR c++/99586
1601 * semantics.c (finish_compound_literal): Check
1602 template_placeholder_p instead of type_uses_auto.
1603
16042021-04-02 Jason Merrill <jason@redhat.com>
1605
1606 PR c++/97938
1607 * cp-tree.h (PACK_EXPANSION_AUTO_P): New.
1608 * lambda.c (add_capture): Set it.
1609 * pt.c (tsubst_pack_expansion): Handle it.
1610
16112021-04-02 Nathan Sidwell <nathan@acm.org>
1612
1613 * cp-tree.h (lang_decl_base): Correct module flag comment.
1614 * module.cc (trees_in::assert_definition): Break out
1615 not_tmpl var.
1616 (trees_out::lang_decl_bools): Do not write purview for header units.
1617
f1607029
GA
16182021-04-01 Marek Polacek <polacek@redhat.com>
1619
1620 PR c++/99831
1621 * method.c (defaulted_late_check): ++ and -- function_depth around
1622 the call to synthesize_method.
1623 * pt.c: Remove the saved_trees global.
1624
16252021-04-01 Jason Merrill <jason@redhat.com>
1626
1627 PR c++/99583
1628 PR c++/99584
1629 * tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into
1630 TYPE_RAISES_EXCEPTIONS.
1631
16322021-04-01 Iain Sandoe <iain@sandoe.co.uk>
1633
1634 * mapper-client.cc (INCLUDE_MAP): New; require map to be
1635 included from system.h.
1636 * mapper-resolver.cc (INCLUDE_MAP): Likewise.
1637
16382021-04-01 Jason Merrill <jason@redhat.com>
1639
1640 PR c++/98481
1641 * mangle.c (write_expression): Adjust.
1642 * class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14.
1643 (mark_abi_tags_r): Likewise.
1644
16452021-04-01 Nathan Sidwell <nathan@acm.org>
1646
1647 PR c++/99283
1648 * module.cc (trees_out::decl_node): Adjust importedness reference
1649 assert.
1650 (module_state::intercluster_seed): New. Seed both imports and
1651 inter-cluster references. Broken out of ...
1652 (module_state::write_cluster): ... here. Call it.
1653
95d217ab
GA
16542021-03-31 Jason Merrill <jason@redhat.com>
1655
1656 PR c++/99445
1657 * tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.
1658
16592021-03-31 Patrick Palka <ppalka@redhat.com>
1660
1661 PR c++/88115
1662 * mangle.c (write_expression): Adjust the mangling of
1663 __alignof__.
1664
16652021-03-31 Patrick Palka <ppalka@redhat.com>
1666
1667 PR c++/99815
1668 * pt.c (placeholder_type_constraint_dependent_p): Expand
1669 argument packs to separate the first non-pack argument
1670 from the rest.
1671
08d2edae
GA
16722021-03-30 Nathan Sidwell <nathan@acm.org>
1673
1674 PR c++/99283
1675 * module.cc (dumper::operator): Make less brittle.
1676 (trees_out::core_bools): VAR_DECLs always have a context.
1677 (trees_out::key_mergeable): Use same_type_p for asserting.
1678 (trees_in::read_var_def): Propagate
1679 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
1680
16812021-03-30 Jakub Jelinek <jakub@redhat.com>
1682
1683 PR c++/99790
1684 * cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST.
1685
651684b4
GA
16862021-03-26 Marek Polacek <polacek@redhat.com>
1687
1688 PR c++/98352
1689 * method.c (implicitly_declare_fn): Pass &raises to
1690 synthesized_method_walk.
1691
16922021-03-26 Nathan Sidwell <nathan@acm.org>
1693
1694 PR c++/99283
1695 * cp-tree.h (DECL_MODULE_CHECK): Ban TEMPLATE_DECL.
1696 (SET_TYPE_TEMPLATE_INFO): Restore Alias template setting.
1697 * decl.c (duplicate_decls): Remove template_decl module flag
1698 propagation.
1699 * module.cc (merge_kind_name): Add alias tmpl spec as a thing.
1700 (dumper::impl::nested_name): Adjust for template-decl module flag
1701 change.
1702 (trees_in::assert_definition): Likewise.
1703 (trees_in::install_entity): Likewise.
1704 (trees_out::decl_value): Likewise. Remove alias template
1705 separation of template and type_decl.
1706 (trees_in::decl_value): Likewise.
1707 (trees_out::key_mergeable): Likewise,
1708 (trees_in::key_mergeable): Likewise.
1709 (trees_out::decl_node): Adjust for template-decl module flag
1710 change.
1711 (depset::hash::make_dependency): Likewise.
1712 (get_originating_module, module_may_redeclare): Likewise.
1713 (set_instantiating_module, set_defining_module): Likewise.
1714 * name-lookup.c (name_lookup::search_adl): Likewise.
1715 (do_pushdecl): Likewise.
1716 * pt.c (build_template_decl): Likewise.
1717 (lookup_template_class_1): Remove special alias_template handling
1718 of DECL_TI_TEMPLATE.
1719 (tsubst_template_decl): Likewise.
1720
17212021-03-26 Jakub Jelinek <jakub@redhat.com>
1722
1723 PR c++/99705
1724 * tree.c (bot_manip): Remap artificial automatic temporaries mentioned
1725 in DECL_EXPR or in BIND_EXPR_VARS.
1726
4493b1c1
GA
17272021-03-25 Jakub Jelinek <jakub@redhat.com>
1728
1729 PR c++/99672
1730 * parser.c (cp_parser_postfix_expression): For calls, create
1731 combined_loc and temporarily set input_location to it before
1732 calling finish_call_expr.
1733
17342021-03-25 Marek Polacek <polacek@redhat.com>
1735
1736 PR c++/94751
1737 * call.c (build_over_call): Maybe call mark_used in case
1738 deduce_inheriting_ctor fails and return error_mark_node.
1739 * cp-tree.h (deduce_inheriting_ctor): Adjust declaration.
1740 * method.c (deduce_inheriting_ctor): Return bool if the deduction
1741 fails.
1742 (implicitly_declare_fn): If raises is error_mark_node, call
1743 synthesized_method_walk with diag being true.
1744
17452021-03-25 Jakub Jelinek <jakub@redhat.com>
1746
1747 PR c++/99745
1748 * decl2.c (grokbitfield): Diagnose bitfields containing bare parameter
1749 packs and don't set DECL_BIT_FIELD_REPRESENTATIVE in that case.
1750
17512021-03-25 Marek Polacek <polacek@redhat.com>
1752
1753 PR c++/99331
1754 * call.c (build_converted_constant_expr_internal): Don't emit
1755 -Wconversion warnings.
1756
17572021-03-25 Jakub Jelinek <jakub@redhat.com>
1758
1759 PR c++/99565
1760 * call.c (build_conditional_expr_1): Pass OEP_ADDRESS_OF_SAME_FIELD
1761 to operand_equal_p.
1762 * cvt.c (convert_to_void): Preserve location_t on COND_EXPR or
1763 or COMPOUND_EXPR.
1764
bf1f3168
GA
17652021-03-23 Nathan Sidwell <nathan@acm.org>
1766
1767 PR c++/99283
1768 * name-lookup.c (check_module_override): Set global or partition
1769 DUP on the binding vector.
1770
17712021-03-23 Marek Polacek <polacek@redhat.com>
1772
1773 PR c++/99318
1774 * decl2.c (cp_warn_deprecated_use_scopes): Only call
1775 cp_warn_deprecated_use when decl is a namespace, class, or enum.
1776
17772021-03-23 Nathan Sidwell <nathan@acm.org>
1778
1779 PR c++/99239
1780 * decl.c (duplicate_decls): Remove assert about maybe-imported
1781 artificial decls.
1782
17832021-03-23 Jakub Jelinek <jakub@redhat.com>
1784
1785 PR c++/99650
1786 * decl.c (cp_finish_decomp): Diagnose void initializers when
1787 using tuple_element and get.
1788
8b744f46
GA
17892021-03-22 Nathan Sidwell <nathan@acm.org>
1790
1791 PR c++/99480
1792 * module.cc (depset::hash::make_dependency): Propagate flags for
1793 partial specialization.
1794 (module_may_redeclare): Handle partial specialization.
1795
17962021-03-22 Nathan Sidwell <nathan@acm.org>
1797
1798 PR c++/99425
1799 * cp-tree.h (map_context_from, map_context_to): Delete.
1800 (add_mergeable_specialization): Add is_alias parm.
1801 * pt.c (add_mergeable_specialization): Add is_alias parm, add them.
1802 * module.cc (map_context_from, map_context_to): Delete.
1803 (trees_in::decl_value): Add specializations later, adjust call.
1804 Drop useless alias lookup. Set duplicate fn parm context.
1805 (check_mergeable_decl): Drop context mapping.
1806 (trees_in::is_matching_decl): Likewise.
1807 (trees_in::read_function_def): Drop parameter context adjustment
1808 here.
1809
18102021-03-22 Martin Liska <mliska@suse.cz>
1811
1812 PR c++/99687
1813 * module.cc (fini_modules): Call vec_free instead of delete.
1814
6af7b307
GA
18152021-03-20 Jakub Jelinek <jakub@redhat.com>
1816
1817 PR debug/99230
1818 * cp-gimplify.c (cp_genericize_r) <case STATEMENT_LIST>: Remove
1819 special code, instead call c_genericize_control_stmt.
1820
5f256a70
GA
18212021-03-19 Jakub Jelinek <jakub@redhat.com>
1822
1823 PR c++/99456
1824 * constexpr.c (cxx_eval_constant_expression): For CONVERT_EXPR from
1825 INDIRECT_TYPE_P to ARITHMETIC_TYPE_P, when !ctx->manifestly_const_eval
1826 don't diagnose it, set *non_constant_p nor return t.
1827
287e3e84
GA
18282021-03-19 Marek Polacek <polacek@redhat.com>
1829
1830 PR c++/99500
1831 * parser.c (cp_parser_requirement_parameter_list): Handle
1832 error_mark_node.
1833
18342021-03-18 Marek Polacek <polacek@redhat.com>
1835
1836 * pt.c (tsubst_copy_and_build) <case FLOAT_EXPR>: Remove.
1837
18382021-03-18 Marek Polacek <polacek@redhat.com>
1839
1840 * pt.c (tsubst_copy_and_build): Add assert.
1841
18422021-03-18 Iain Sandoe <iain@sandoe.co.uk>
1843
1844 PR objc++/49070
1845 * parser.c (cp_debug_parser): Add Objective-C++ message
1846 state flag.
1847 (cp_parser_nested_name_specifier_opt): Allow colon to
1848 terminate an assignment-expression when parsing Objective-
1849 C++ messages.
1850 (cp_parser_objc_message_expression): Set and clear message
1851 parsing state on entry and exit.
1852 * parser.h (struct cp_parser): Add a context flag for
1853 Objective-C++ message state.
1854
18552021-03-18 Martin Liska <mliska@suse.cz>
1856
1857 PR c++/99617
1858 * coroutines.cc (struct var_nest_node): Init then_cl and else_cl
1859 to NULL.
1860
19ac7c94
GA
18612021-03-17 Marek Polacek <polacek@redhat.com>
1862
1863 PR c++/97973
1864 * call.c (conv_unsafe_in_template_p): New.
1865 (convert_like): Use it.
1866
18672021-03-17 Anthony Sharp <anthonysharp15@gmail.com>
1868 Jason Merrill <jason@redhat.com>
1869
1870 * semantics.c (get_class_access_diagnostic_decl): New
1871 function that examines special cases when a parent
1872 class causes a private access failure.
1873 (enforce_access): Slightly modified to call function
1874 above.
1875
bc212776
GA
18762021-03-16 Jason Merrill <jason@redhat.com>
1877
1878 * tree.c (cp_tree_equal): Use real_identical.
1879
18802021-03-16 Jakub Jelinek <jakub@redhat.com>
1881
1882 PR c++/99613
1883 * decl.c (expand_static_init): For thread guards, call __cxa_atexit
1884 before calling __cxa_guard_release rather than after it. Formatting
1885 fixes.
1886
18872021-03-16 Martin Liska <mliska@suse.cz>
1888 Jason Merrill <jason@redhat.com>
1889
1890 PR c++/99108
1891 * call.c (get_function_version_dispatcher): Handle
1892 DECL_LOCAL_DECL_P.
1893 * decl.c (maybe_version_functions): Likewise.
1894 (maybe_mark_function_versioned): New.
1895 * name-lookup.c (push_local_extern_decl_alias): No longer static.
1896 * name-lookup.h (push_local_extern_decl_alias): Adjust.
1897
18982021-03-16 Nathan Sidwell <nathan@acm.org>
1899
1900 PR c++/99496
1901 * module.cc (trees_out::decl_value): Adjust typedef streaming,
1902 indicate whether it is a dependent alias.
1903 (trees_in::decl_value): Likewise. Set as dependent alias, if it
1904 is one.
1905
3c5b6d24
GA
19062021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1907
1908 PR c++/99047
1909 * coroutines.cc (expand_one_await_expression): If the
1910 await_ready() expression is not a boolean then convert it
1911 as required.
1912
19132021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1914
1915 PR c++/98704
1916 * coroutines.cc (build_actor_fn): Make destroy index 1
1917 correspond to the abnormal unhandled_exception() exit.
1918 Substitute the proxy for the resume index.
1919 (coro_rewrite_function_body): Arrange to reset the resume
1920 index and make done = true for a rethrown exception from
1921 unhandled_exception ().
1922 (morph_fn_to_coro): Adjust calls to build_actor_fn and
1923 coro_rewrite_function_body.
1924
19252021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1926
1927 PR c++/98480
1928 * coroutines.cc (replace_continue): Rewrite continue into
1929 'goto label'.
1930 (await_statement_walker): Handle await expressions in the
1931 initializer, condition and iteration expressions of for
1932 loops.
1933
19342021-03-15 Iain Sandoe <iain@sandoe.co.uk>
1935
1936 PR c++/96749
1937 * coroutines.cc (flatten_await_stmt): Allow for the case
1938 where a target expression variable only has uses in the
1939 second part of a compound expression.
1940 (maybe_promote_temps): Avoid emiting empty statements.
1941
19422021-03-15 Tobias Burnus <tobias@codesourcery.com>
1943
1944 PR c++/99509
1945 * decl.c (cp_finish_decl): For 'omp declare target implicit' vars,
1946 ensure that the varpool node is marked as offloadable.
1947
6da2762a
GA
19482021-03-12 Nathan Sidwell <nathan@acm.org>
1949
1950 PR c++/99238
1951 * module.cc (depset::hash::add_binding_entity): Assert not
1952 visited.
1953 (depset::add::add_specializations): Likewise.
1954 * name-lookup.c (name_lookup::dedup): New.
1955 (name_lookup::~name_lookup): Assert not deduping.
1956 (name_lookup::restore_state): Likewise.
1957 (name_lookup::add_overload): Replace outlined code with dedup
1958 call.
1959 (name_lookup::add_value): Likewise.
1960 (name_lookup::search_namespace_only): Likewise.
1961 (name_lookup::adl_namespace_fns): Likewise.
1962 (name_lookup::adl_class_fns): Likewise.
1963 (name_lookup::search_adl): Likewise. Add clearing dedup call.
1964 (name_lookup::search_qualified): Likewise.
1965 (name_lookup::search_unqualified): Likewise.
1966
19672021-03-12 Jakub Jelinek <jakub@redhat.com>
1968
1969 PR c++/99507
1970 * call.c (build_over_call): For immediate evaluation of functions
1971 that return references, undo convert_from_reference effects before
1972 calling cxx_constant_value and call convert_from_reference
1973 afterwards.
1974
48ff383f
GA
19752021-03-11 Nathan Sidwell <nathan@acm.org>
1976
1977 PR c++/99248
1978 * name-lookup.c (lookup_elaborated_type_1): Access slot not bind
1979 when there's a binding vector.
1980 * ptree.c (cxx_print_xnode): Lazy flags are no longer a thing.
1981
19822021-03-11 Nathan Sidwell <nathan@acm.org>
1983
1984 PR c++/99528
1985 * module.cc (enum merge_kind): Delete MK_type_tmpl_spec,
1986 MK_decl_tmpl_spec.
1987 (trees_in::decl_value): Adjust add_mergeable_specialization call.
1988 (trees_out::get_merge_kind): Adjust detecting a partial template
1989 instantiation.
1990 (trees_out::key_mergeable): Adjust handling same.
1991 (trees_in::key_mergeabvle): Likewise.
1992
e9800852
GA
19932021-03-10 Nathan Sidwell <nathan@acm.org>
1994
1995 PR c++/99423
1996 * module.cc (post_load_processing): Assert not gcable.
1997 (laxy_load_pendings): Extend no-gc region around
1998 post_load_processing.
1999
20002021-03-10 Nathan Sidwell <nathan@acm.org>
2001
2002 PR c++/99508
2003 * decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's
2004 assembler name to the ns alias.
2005
8dc225d3
GA
20062021-03-09 Jakub Jelinek <jakub@redhat.com>
2007
2008 PR c++/99459
2009 * coroutines.cc (build_co_await): Look through NOP_EXPRs in
2010 build_special_member_call return value to find the CALL_EXPR.
2011 Simplify.
2012
20132021-03-09 Nathan Sidwell <nathan@acm.org>
2014
2015 PR c++/99472
2016 * parser.c (cp_parser_diagnose_invalid_type_name): Clarify
2017 that C++20 does not yet imply modules.
2018
6405b40f
GA
20192021-03-08 Nathan Sidwell <nathan@acm.org>
2020
2021 PR c++/99436
2022 * name-lookup.c (get_cxx_dialect_name): Add cxx23.
2023
20242021-03-08 Nathan Sidwell <nathan@acm.org>
2025
2026 * lex.c (module_token_filter::resume): Ignore module-decls inside
2027 header-unit.
2028 * parser.c (cp_parser_module_declaration): Reject in header-unit.
2029
20302021-03-08 Nathan Sidwell <nathan@acm.org>
2031
2032 PR c++/99285
2033 * cp-tree.h (match_mergeable_specialization)
2034 (add_mergeable_specialization): Adjust parms.
2035 * module.cc (trees_in::decl_value): Adjust
2036 add_mergeable_specialization calls.
2037 (trees_out::key_mergeable): Adjust match_mergeable_specialization
2038 calls.
2039 (specialization_add): Likewise.
2040 * pt.c (match_mergeable_specialization): Do not insert.
2041 (add_mergeable_specialization): Add to hash table here.
2042
0ad6a2e2
GA
20432021-03-06 Patrick Palka <ppalka@redhat.com>
2044 Jakub Jelinek <jakub@redhat.com>
2045
2046 PR c++/99287
2047 * constexpr.c (cxx_eval_increment_expression): Pass lval when
2048 evaluating the MODIFY_EXPR, and update 'mod' with the result of
2049 this evaluation. Check *non_constant_p afterwards. For prefix
2050 ops, just return 'mod'.
2051
20522021-03-06 Patrick Palka <ppalka@redhat.com>
2053 Jakub Jelinek <jakub@redhat.com>
2054
2055 PR c++/96330
2056 * pt.c (tsubst_copy) <case TEMPLATE_ID_EXPR>: Rename local
2057 variable 'fn' to 'tmpl'. Handle a variable template-id by
2058 calling lookup_template_variable.
2059
20602021-03-06 Patrick Palka <ppalka@redhat.com>
2061
2062 PR c++/99365
2063 * pt.c (unify) <case TEMPLATE_TYPE_PARM>: Pass targs as
2064 outer_targs to do_auto_deduction.
2065 (placeholder_type_constraint_dependent_p): Define.
2066 (do_auto_deduction): When processing_template_decl != 0
2067 and context is adc_unify and we have constraints, pretend the
2068 constraints are satisfied instead of punting. Otherwise don't
2069 punt unless placeholder_type_constraint_dependent_p holds.
2070 Add some clarifying sanity checks. Add a hack to add missing
2071 outermost template levels to outer_args before checking
2072 satisfaction. Don't substitute outer_targs into type if it's
2073 already been done.
2074
ceae9533
GA
20752021-03-05 Marek Polacek <polacek@redhat.com>
2076
2077 PR c++/99374
2078 * call.c (standard_conversion): When converting pointers to
2079 member, don't return NULL when the bases are equivalent but
2080 incomplete.
2081
20822021-03-05 Marek Polacek <polacek@redhat.com>
2083
2084 PR c++/99120
2085 * name-lookup.c (check_local_shadow): Check if the type of decl
2086 is non-null before checking TYPE_PTR*.
2087
20882021-03-05 Nathan Sidwell <nathan@acm.org>
2089
2090 PR c++/99245
2091 * module.cc (module_state::write_cluster): Relax binding assert.
2092
20932021-03-05 Nathan Sidwell <nathan@acm.org>
2094
2095 PR c++/99377
2096 * pt.c (instantiate_decl): Call set_instantiating_module.
2097
20982021-03-05 Iain Sandoe <iain@sandoe.co.uk>
2099
2100 PR c++/98118
2101 * coroutines.cc (build_co_await): Use type_build_ctor_call()
2102 to determine cases when a CTOR needs to be built.
2103 (flatten_await_stmt): Likewise.
2104 (morph_fn_to_coro): Likewise.
2105
21062021-03-05 Iain Sandoe <iain@sandoe.co.uk>
2107
2108 PR c++/95616
2109 * coroutines.cc (coro_diagnose_throwing_fn): New helper.
2110 (coro_diagnose_throwing_final_aw_expr): New helper.
2111 (build_co_await): Diagnose throwing final await expression
2112 components.
2113 (build_init_or_final_await): Diagnose a throwing promise
2114 final_suspend() call.
2115
21162021-03-05 Iain Sandoe <iain@sandoe.co.uk>
2117
2118 PR c++/95615
2119 * coroutines.cc (struct param_info): Track parameter copies that need
2120 a DTOR.
2121 (coro_get_frame_dtor): New helper function factored from build_actor().
2122 (build_actor_fn): Use coro_get_frame_dtor().
2123 (morph_fn_to_coro): Track parameters that need DTORs on exception,
2124 likewise the frame promise and the return object. On exception, run the
2125 DTORs for these, destroy the frame and then rethrow the exception.
2126
21272021-03-05 Nathan Sidwell <nathan@acm.org>
2128
2129 PR c++/99389
2130 * pt.c (instantiate_class_template_1): Set instantiating module
2131 here.
2132
21332021-03-05 Tobias Burnus <tobias@codesourcery.com>
2134
2135 PR c/99137
2136 * parser.c (cp_parser_oacc_clause_async): Reject comma expressions.
2137
67f10d28
GA
21382021-03-04 Jakub Jelinek <jakub@redhat.com>
2139
2140 PR c++/88146
2141 PR c++/99362
2142 * cvt.c (convert_to_void): Revert 2019-10-17 changes. Clarify
2143 comment.
2144
21452021-03-04 Nathan Sidwell <nathan@acm.org>
2146
2147 PR c++/99170
2148 * module.cc (class uintset): Delete.
2149 (typedef attached_map_t): A hash map.
2150 (attached_table): Use attached_map_t. Adjust uses ...
2151 (trees_out::decl_value, trees_in::decl_value): ... here ...
2152 (trees_out::key_mergeable): ... here ...
2153 (trees_in::key_mergeable): ... here ...
2154 (maybe_attach_decl): ... here ...
2155 (direct_import): ... and here.
2156
21572021-03-04 Nathan Sidwell <nathan@acm.org>
2158
2159 PR c++/99170
2160 * cp-tree.h
2161 * lex.c (cxx_dup_lang_specific_decl): Adjust for module_attached_p
2162 rename.
2163 * module.cc (class pending_key): New.
2164 (default_hash_traits<pending_key>): New specialization.
2165 (pending_map_t): New typedef.
2166 (pending_table): Replace old table.
2167 (trees_out::lang_decl_bools): Adjust.
2168 (trees_in::lang_decl_bools): Adjust.
2169 (trees_in::install_entity): Drop pending member and specialization
2170 handling.
2171 (find_pending_key): New.
2172 (depset::hash::fiund_dependencies): Use it.
2173 (pendset_lazy_load): Delete.
2174 (module_state::write_cluster): Don't count pendings here. Bye
2175 Duff's device-like thing.
2176 (module_state::write_pendings): Reimplement.
2177 (module_state::read_pendings): Reimplement.
2178 (lazy_specializations_p): Delete.
2179 (module_state::write): Adjust write_pendings call.
2180 (lazy_load_pendings): New.
2181 (lazy_load_specializations): Delete.
2182 (lazy_load_members): Delete.
2183 (init_modules): Adjust.
2184 * name-lookup.c (maybe_lazily_declare): Call lazy_load_pendings
2185 not lazy_load_members.
2186 (note_pending_specializations): Delete.
2187 (load_pending_specializations): Delete.
2188 * name-lookup.h (BINDING_VECTR_PENDING_SPECIALIZATIONS_P): Delete.
2189 (BINDING_VECTOR_PENDING_MEMBERS_P): Delete.
2190 (BINDING_VECTR_PENDING_MEMBERS_P): Delete.
2191 (note_pending_specializations): Delete.
2192 (load_pending_specializations): Delete.
2193 * pt.c (lookup_template_class_1): Call lazy_load_pendings not
2194 lazy_load_specializations.
2195 (instantiate_template_class_1): Likewise.
2196 (instantiate_decl): Call lazy_load_pendings.
2197 * typeck.c (complete_type): Likewise.
2198
f3641ac7
GA
21992021-03-03 Nathan Sidwell <nathan@acm.org>
2200
2201 PR c++/99170
2202 * module.cc (post_load_decls): New.
2203 (lazy_snum, recursive_lazy): Move earlier.
2204 (module_state::read_cluster): Push cloning onto post_load_decls.
2205 (post_load_processing): New. Do the cloning here.
2206 (module_state::read_inits): Call post_load_processing.
2207 (module_state::read_language): Likewise.
2208 (lazy_load_binding, lazy_load_specializations): Likewise
2209 (lazy_load_members): Likewise
2210
22112021-03-03 Nathan Sidwell <nathan@acm.org>
2212
2213 PR c++/99170
2214 * module.cc (trees_out::decl_value): Stream specialization keys
2215 after decl.
2216 (trees_in::decl_value): Stream them back and insert after
2217 completing the decl.
2218 (trees_out::key_mergeable): Drop some streaming here ...
2219 (trees_in::key_mergeable): ... and here. Don't insert into
2220 specialization tables.
2221
22222021-03-03 Patrick Palka <ppalka@redhat.com>
2223
2224 * constraint.cc (struct sat_info): Document the different
2225 meanings of noisy() and diagnose_unsatisfaction_p() during
2226 satisfaction and requires-expression evaluation.
2227 (tsubst_valid_expression_requirement): Take a sat_info instead
2228 of a subst_info. Perform the substitution quietly first. Fold
2229 in error-replaying code from diagnose_valid_expression.
2230 (tsubst_simple_requirement): Take a sat_info instead of a
2231 subst_info.
2232 (tsubst_type_requirement_1): New. Fold in error-replaying code
2233 from diagnose_valid_type.
2234 (tsubst_type_requirement): Use the above. Take a sat_info
2235 instead of a subst_info.
2236 (tsubst_compound_requirement): Likewise. Fold in
2237 error-replaying code from diagnose_compound_requirement.
2238 (tsubst_nested_requirement): Take a sat_info instead of a
2239 subst_info. Fold in error-replaying code from
2240 diagnose_nested_requirement.
2241 (tsubst_requirement): Take a sat_info instead of a subst_info.
2242 (tsubst_requires_expr): Split into two versions, one that takes
2243 a sat_info argument and another that takes a complain and
2244 in_decl argument. Remove outdated documentation. Document the
2245 effects of the sat_info argument. Don't short-circuit
2246 processing of requirements when diagnosing unsatisfaction,
2247 mirroring diagnose_requires_expr.
2248 (satisfy_nondeclaration_constraint) <case REQUIRES_EXPR>: Remove
2249 assert, and se the three-parameter version of tsubst_requires_expr.
2250 (diagnose_trait_expr): Make static. Take a template argument
2251 vector instead of a parameter mapping.
2252 (diagnose_valid_expression): Remove.
2253 (diagnose_valid_type): Remove.
2254 (diagnose_simple_requirement): Remove.
2255 (diagnose_compound_requirement): Remove.
2256 (diagnose_type_requirement): Remove.
2257 (diagnose_nested_requirement): Remove.
2258 (diagnose_requirement): Remove.
2259 (diagnose_requires_expr): Remove.
2260 (diagnose_atomic_constraint): Take a sat_info instead of a
2261 subst_info. Adjust call to diagnose_trait_expr. Call
2262 tsubst_requires_expr instead of diagnose_requires_expr.
2263 (diagnose_constraints): Remove special casing of REQUIRES_EXPR
2264 and just always call constraint_satisfaction_value.
2265
22662021-03-03 Patrick Palka <ppalka@redhat.com>
2267
2268 * constexpr.c (cxx_eval_call_expression): Adjust call to
2269 evaluate_concept_check.
2270 (cxx_eval_constant_expression) <case REQUIRES_EXPR>: Use
2271 evaluate_requires_expression instead of
2272 satisfy_constraint_expression.
2273 <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
2274 * constraint.cc (struct sat_info): Adjust comment about which
2275 satisfaction entrypoints use noisy-unsat.
2276 (normalize_template_requirements): Remove (and adjust callers
2277 appropriately).
2278 (normalize_nontemplate_requirements): Likewise.
2279 (tsubst_nested_requirement): Use constraint_satisfaction_value
2280 instead of satisfy_constraint_expression, which'll do the
2281 noisy replaying of ill-formed quiet satisfaction for us.
2282 (decl_satisfied_cache): Adjust comment.
2283 (satisfy_constraint): Rename to ...
2284 (satisfy_normalized_constraints): ... this.
2285 (satisfy_associated_constraints): Remove (and make its
2286 callers check for dependent arguments).
2287 (satisfy_constraint_expression): Rename to ...
2288 (satisfy_nondeclaration_constraints): ... this. Assert that
2289 'args' is empty when 't' is a concept-id. Removing handling
2290 bare constraint-expressions, and handle REQUIRES_EXPRs
2291 specially. Adjust comment accordingly.
2292 (satisfy_declaration_constraints): Assert in the two-parameter
2293 version that 't' is not a TEMPLATE_DECL. Adjust following
2294 removal of normalize_(non)?template_requirements and
2295 satisfy_asociated_constraints.
2296 (constraint_satisfaction_value): Combine the two- and
2297 three-parameter versions in the natural way.
2298 (constraints_satisfied_p): Combine the one- and two-parameter
2299 versions in the natural way. Improve documentation.
2300 (evaluate_requires_expr): Define.
2301 (evaluate_concept_check): Remove 'complain' parameter. Use
2302 constraint_satisfaction_value instead of
2303 satisfy_constraint_expression.
2304 (diagnose_nested_requirement): Adjust following renaming of
2305 satisfy_constraint_expression.
2306 (diagnose_constraints): Handle REQUIRES_EXPR by going through
2307 diagnose_requires_expr directly instead of treating it as a
2308 constraint-expression. Improve documentation.
2309 * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Adjust call
2310 to evaluate_concept_check.
2311 <case REQUIRES_EXPR>: Use evaluate_requires_expr instead of
2312 constraints_satisfied_p.
2313 <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
2314 * cp-tree.h (evaluate_requires_expr): Declare.
2315 (evaluate_concept_check): Remove tsubst_flag_t parameter.
2316 (satisfy_constraint_expression): Remove declaration.
2317 (constraints_satisfied_p): Remove one-parameter declaration.
2318 Add a default argument to the two-parameter declaration.
2319 * cvt.c (convert_to_void): Adjust call to
2320 evaluate_concept_check.
2321
23222021-03-03 Jakub Jelinek <jakub@redhat.com>
2323
2324 PR c++/82959
2325 * call.c (op_is_ordered): Handle TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR
2326 and COMPOUND_EXPR.
2327
23282021-03-03 Marek Polacek <polacek@redhat.com>
2329
2330 PR c++/97034
2331 PR c++/99009
2332 * pt.c (build_deduction_guide): Use INNERMOST_TEMPLATE_ARGS.
2333 (maybe_aggr_guide): Use the original template type where needed. In
2334 a class member template, partially instantiate the result of
2335 collect_ctor_idx_types.
2336 (do_class_deduction): Defer the deduction until the enclosing
2337 scope is non-dependent.
2338
23392021-03-03 Jason Merrill <jason@redhat.com>
2340
2341 PR c++/95675
2342 * call.c (build_temp): Wrap a CALL_EXPR in a TARGET_EXPR
2343 if it didn't get one before.
2344
23452021-03-03 Nathan Sidwell <nathan@acm.org>
2346
2347 PR c++/99344
2348 * module.cc (trees_out::decl_node): Small refactor.
2349 (depset::hash::add_binding_entity): Return true on meeting an
2350 import. Set namespace's import here.
2351 (module_state:write_namespaces): Inform of purview too.
2352 (module_state:read_namespaces): Adjust.
2353 * name-lookup.c (implicitly_export_namespace): Delete.
2354 (do_pushdecl): Don't call it.
2355 (push_namespace): Likewise, set purview.
2356 (add_imported_namespace): Reorder parms.
2357 * name-lookup.h (add_imported_namespace): Alter param ordering.
2358
d97a92dc
GA
23592021-03-02 Martin Sebor <msebor@redhat.com>
2360
2361 PR c++/99251
2362 * class.c (build_base_path): Call build_if_nonnull.
2363 * cp-tree.h (build_if_nonnull): Declare.
2364 * rtti.c (ifnonnull): Rename...
2365 (build_if_nonnull): ...to this. Set no-warning bit on COND_EXPR.
2366 (build_dynamic_cast_1): Adjust to name change.
2367
23682021-03-02 Patrick Palka <ppalka@redhat.com>
2369
2370 PR c++/96443
2371 PR c++/96960
2372 * constraint.cc (type_deducible_p): Don't substitute into the
2373 constraints, and instead just pass 'args' to do_auto_deduction
2374 as the outer template arguments.
2375 (tsubst_parameter_mapping): Remove confused code for handling
2376 placeholder type arguments.
2377 (normalize_placeholder_type_constraint): Define.
2378 (satisfy_constraint_expression): Use it to handle placeholder
2379 'auto' types.
2380 * cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Define.
2381 (PLACEHOLDER_TYPE_CONSTRAINTS): Redefine in terms of the above.
2382 * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: Use
2383 PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
2384 (make_constrained_placeholder_type): Set
2385 PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
2386 (do_auto_deduction): Clarify comments about the outer_targs
2387 parameter. Rework satisfaction of a placeholder type constraint
2388 to pass in the complete set of template arguments directly to
2389 constraints_satisfied_p.
2390 (splice_late_return_type): Use PLACEHOLDER_TYPE_CONSTRAINTS_INFO
2391 instead. Also rebuild the the constraint info on the new auto.
2392
23932021-03-02 Patrick Palka <ppalka@redhat.com>
2394
2395 * constraint.cc (build_parameter_mapping): Rely on the caller to
2396 determine the in-scope template parameters.
2397 (norm_info::norm_info): Delegate the tsubst_flags_t constructor
2398 to the two-parameter constructor. In the two-parameter
2399 constructor, fold in the definition of make_context, set
2400 initial_parms appropriately, and don't set the now-removed
2401 orig_decl member.
2402 (norm_info::make_context): Remove, now that its only use is
2403 inlined into the caller.
2404 (norm_info::update_context): Adjust call to
2405 build_parameter_mapping to pass in the relevant set of in-scope
2406 template parameters.
2407 (norm_info::ctx_parms): Define this member function.
2408 (norm_info::context): Initialize to NULL_TREE.
2409 (norm_info::orig_decl): Remove this data member.
2410 (norm_info::initial_parms): Define this data member.
2411 (normalize_atom): Adjust call to build_parameter_mapping to pass
2412 in the relevant set of in-scope template parameters. Use
2413 info.initial_parms instead of info.orig_decl.
2414 (normalize_constraint_expression): Take a norm_info object
2415 instead of a bool. Cache the result of normalization.
2416 (tsubst_nested_requirement): Call satisfy_constraint_expression
2417 instead of satisfy_constraint, so that we normalize on demand.
2418 (satisfy_constraint_expression): Handle a NESTED_REQ argument.
2419 Adjust call to normalize_constraint_expression.
2420 (finish_nested_requirement): Set the TREE_TYPE of the NESTED_REQ
2421 to current_template_parms.
2422 (diagnose_nested_requirements): Go through
2423 satisfy_constraint_expression, as with tsubst_nested_requirement.
2424
24252021-03-02 Patrick Palka <ppalka@redhat.com>
2426
2427 * constraint.cc (tsubst_parameter_mapping): Canonicalize the
2428 arguments of a substituted TYPE_ARGUMENT_PACK even if we've
2429 started with a TYPE_ARGUMENT_PACK.
2430 (finish_requires_expr): Don't set DECL_CONTEXT and
2431 CONSTRAINT_VAR_P on each of the introduced parameters here.
2432 * parser.c (cp_parser_requirement_parameter_list): Instead set
2433 these fields earlier, here.
2434 * pt.c (do_auto_deduction): Canonicalize the result of
2435 do_auto_deduction. Pass 'complain' to finish_decltype_type.
2436
24372021-03-02 Patrick Palka <ppalka@redhat.com>
2438
2439 * constraint.cc (tsubst_simple_requirement): Just return
2440 boolean_true_node on success.
2441 (tsubst_type_requirement): Likewise.
2442 (tsubst_compound_requirement): Likewise.
2443 (tsubst_nested_requirement): Likewise.
2444 (tsubst_requirement_body): Remove.
2445 (check_constaint_variables): Rename to ...
2446 (check_constraint_variables): ... this.
2447 (tsubst_constraint_variables): Adjust.
2448 (tsubst_requires_expr): Fold tsubst_requirement_body into here.
2449
88938886
GA
24502021-03-01 Nathan Sidwell <nathan@acm.org>
2451
2452 PR c++/99294
2453 * class.c (fixup_type_variants): Propagate mode, precision,
2454 alignment & emptiness.
2455 * module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW.
2456 (trees_in::tree_node): Rematerialize alignment here.
2457
ec9dc4fa
GA
24582021-02-27 Jason Merrill <jason@redhat.com>
2459
2460 PR c++/90333
2461 * parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes
2462 between () and ->.
2463
06a9f20f
GA
24642021-02-26 Jakub Jelinek <jakub@redhat.com>
2465
2466 * parser.c (cp_parser_lambda_declarator_opt): Implement
2467 P1102R2 - Down with ()! Make ()s optional before lambda specifiers
2468 for -std={c,gnu}++2b or with pedwarn in earlier versions.
2469
24702021-02-26 Jakub Jelinek <jakub@redhat.com>
2471
2472 PR c++/95451
2473 * lambda.c (is_lambda_ignored_entity): Before checking for
2474 LAMBDA_FUNCTION_P, use OVL_FIRST. Drop FUNCTION_DECL check.
2475
24762021-02-26 Jason Merrill <jason@redhat.com>
2477
2478 PR c++/98810
2479 * pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const
2480 to a class non-type template argument that needs it.
2481
24822021-02-26 Patrick Palka <ppalka@redhat.com>
2483
2484 PR c++/98990
2485 * pt.c (splice_late_return_type): Rebuild the entire return type
2486 if we have to adjust the level of an auto within.
2487 (type_uses_auto): Adjust call to find_type_usage.
2488 * type-utils.h (find_type_usage): Revert r10-6571 change that
2489 made this function return a pointer to the auto node.
2490
daa68844
GA
24912021-02-25 Patrick Palka <ppalka@redhat.com>
2492
2493 PR c++/99213
2494 PR c++/94521
2495 * error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of
2496 TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope.
2497
24982021-02-25 Patrick Palka <ppalka@redhat.com>
2499
2500 PR c++/99103
2501 * pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'.
2502 (maybe_aggr_guide): Fix order of arguments to is_spec_or_derived.
2503
25042021-02-25 Marek Polacek <polacek@redhat.com>
2505
2506 DR 1312
2507 PR c++/99176
2508 * constexpr.c (is_std_construct_at): New overload.
2509 (is_std_allocator_allocate): New overload.
2510 (cxx_eval_call_expression): Use the new overloads.
2511 (cxx_eval_constant_expression): Reject casting
2512 from void * as per DR 1312. Don't check can_convert.
2513
25142021-02-25 Iain Sandoe <iain@sandoe.co.uk>
2515
2516 PR c++/97587
2517 * coroutines.cc (struct param_info): Track rvalue refs.
2518 (morph_fn_to_coro): Track rvalue refs, and call the promise
2519 CTOR with the frame copy of passed parms.
2520
25212021-02-25 Iain Sandoe <iain@sandoe.co.uk>
2522
2523 PR c++/95822
2524 * coroutines.cc (morph_fn_to_coro): Unconditionally remove any
2525 set throwing_cleanup marker.
2526
25272021-02-25 Nathan Sidwell <nathan@acm.org>
2528
2529 PR c++/99166
2530 * module.cc (module_state::inform_cmi_p): Renamed field.
2531 (module_state::do_import): Adjust.
2532 (init_modules, finish_module_processing): Likewise.
2533 (handle_module_option): Likewise.
2534
25352021-02-25 Nathan Sidwell <nathan@acm.org>
2536
2537 PR c++/98318
2538 * mapper-client.cc (module_client::open_module_client): Fix typo
2539 of fd init.
2540
4028d01a
GA
25412021-02-24 Nathan Sidwell <nathan@acm.org>
2542
2543 PR c++/98718
2544 * module.cc (ool): New indirection vector.
2545 (loc_spans::maybe_propagate): Location is not optional.
2546 (loc_spans::open): Likewise. Assert monotonically advancing.
2547 (module_for_ordinary_loc): Use ool indirection vector.
2548 (module_state::write_prepare_maps): Do not count empty macro
2549 expansions. Elide empty spans.
2550 (module_state::write_macro_maps): Skip empty expansions.
2551 (ool_cmp): New qsort comparator.
2552 (module_state::write): Create and destroy ool vector.
2553 (name_pending_imports): Fix dump push/pop.
2554 (preprocess_module): Likewise. Add more dumping.
2555 (preprocessed_module): Likewise.
2556
25572021-02-24 Iain Sandoe <iain@sandoe.co.uk>
2558
2559 PR c++/96251
2560 * coroutines.cc (coro_common_keyword_context_valid_p): Suppress
2561 error reporting when instantiating for a constexpr.
2562
71e24b06
GA
25632021-02-23 Nathan Sidwell <nathan@acm.org>
2564
2565 PR c++/99208
2566 * decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
2567 identity.
2568
25692021-02-23 Patrick Palka <ppalka@redhat.com>
2570
2571 PR c++/95468
2572 * pt.c (tsubst_copy_and_build) <case BASELINK>: New case, copied
2573 over from tsubst_copy.
2574
25752021-02-23 Patrick Palka <ppalka@redhat.com>
2576
2577 * pt.c (instantiation_dependent_expression_p): Check
2578 processing_template_decl before calling
2579 potential_constant_expression.
2580
2f5765cf
GA
25812021-02-22 Nathan Sidwell <nathan@acm.org>
2582
2583 PR c++/99174
2584 * module.cc (struct module_state): Add visited_p flag.
2585 (name_pending_imports): Use it to avoid duplicate requests.
2586 (preprocess_module): Don't read preprocessor state if we failed to
2587 load a module's config.
2588
25892021-02-22 Nathan Sidwell <nathan@acm.org>
2590
2591 PR c++/99153
2592 * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
2593 to common-path.
2594 * module.cc (set_defining_module): Add assert.
2595
50352c6c
GA
25962021-02-19 Nathan Sidwell <nathan@acm.org>
2597
2598 PR c++/98741
2599 * module.cc (pending_imports): New.
2600 (declare_module): Adjust test condition.
2601 (name_pending_imports): New.
2602 (preprocess_module): Reimplement using pending_imports.
2603 (preprocessed_module): Move name-getting to name_pending_imports.
2604 * name-lookup.c (append_imported_binding_slot): Assert module
2605 ordering is increasing.
2606
26072021-02-19 Nathan Sidwell <nathan@acm.org>
2608
2609 * module.cc (note_cmis): New.
2610 (struct module_state): Add inform_read_p bit.
2611 (module_state::do_import): Inform of CMI location, if enabled.
2612 (init_modules): Canonicalize note_cmis entries.
2613 (handle_module_option): Handle -flang-info-module-read=FOO.
2614
26152021-02-19 Jason Merrill <jason@redhat.com>
2616
2617 PR c++/96926
2618 * call.c (perfect_conversion_p): Limit rvalueness
2619 test to reference bindings.
2620
26212021-02-19 Jason Merrill <jason@redhat.com>
2622
2623 PR c++/96926
2624 * call.c (perfect_conversion_p): New.
2625 (perfect_candidate_p): New.
2626 (add_candidates): Ignore templates after a perfect non-template.
2627
bf81237e
GA
26282021-02-18 Nathan Sidwell <nathan@acm.org>
2629
2630 PR c++/99023
2631 * module.cc (canonicalize_header_name): Use
2632 cpp_probe_header_unit.
2633 (maybe_translate_include): Fix note_includes comparison.
2634 (init_modules): Fix note_includes string termination.
2635
26362021-02-18 Jakub Jelinek <jakub@redhat.com>
2637
2638 PR c++/99132
2639 * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Use
2640 cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check
2641 for immediate function calls.
2642
acc0ee5c
GA
26432021-02-17 Nathan Sidwell <nathan@acm.org>
2644
2645 PR c++/99023
2646 * module.cc (struct macro_export): Add GTY markers.
2647 (macro_exports): Likewise, us a va_gc Vector.
2648
26492021-02-17 Jakub Jelinek <jakub@redhat.com>
2650
2651 PR sanitizer/99106
2652 * init.c (build_zero_init_1): For flexible array members just return
2653 NULL_TREE instead of returning empty CONSTRUCTOR with non-complete
2654 ARRAY_TYPE.
2655
26562021-02-17 Nathan Sidwell <nathan@acm.org>
2657
2658 PR c++/99116
2659 * name-lookup.c (do_pushdecl): Don't peek under template_parm
2660 bindings here ...
2661 (set_identifier_type_value_with_scope): ... or here.
2662 (do_pushtag): Only set_identifier_type_value_with_scope at
2663 non-class template parm scope, and use parent scope.
2664
26652021-02-17 Nathan Sidwell <nathan@acm.org>
2666
2667 PR c++/99071
2668 * name-lookup.c (maybe_record_mergeable_decl): Deref the correct
2669 pointer.
2670
26712021-02-17 Patrick Palka <ppalka@redhat.com>
2672
2673 PR debug/96997
2674 PR c++/94034
2675 * tree.c (build_aggr_init_expr): Revert r10-7718 change.
2676
fab095da
GA
26772021-02-12 Nathan Sidwell <nathan@acm.org>
2678
2679 * module.cc (module_state::write_cluster): Check bindings for
2680 imported using-decls.
2681
26822021-02-12 Nathan Sidwell <nathan@acm.org>
2683
2684 PR c++/99040
2685 * module.cc (trees_in::decl_value): Call add_module_namespace_decl
2686 for new namespace-scope entities.
2687 (module_state::read_cluster): Don't call add_module_decl here.
2688 * name-lookup.h (add_module_decl): Rename to ...
2689 (add_module_namespace_decl): ... this.
2690 * name-lookup.c (newbinding_bookkeeping): Move into ...
2691 (do_pushdecl): ... here. Its only remaining caller.
2692 (add_module_decl): Rename to ...
2693 (add_module_namespace_decl): ... here. Add checking-assert for
2694 circularity. Don't call newbinding_bookkeeping, just extern_c
2695 checking and incomplete var checking.
2696
26972021-02-12 Nathan Sidwell <nathan@acm.org>
2698
2699 PR c++/99039
2700 PR c++/99040
2701 * cp-tree.h (CPTI_GLOBAL_TYPE): Delete.
2702 (global_type_node): Delete.
2703 (IDENTIFIER_TYPE_VALUE): Delete.
2704 (IDENTIFIER_HAS_TYPE_VALUE): Delete.
2705 (get_type_value): Delete.
2706 * name-lookup.h (identifier_type_value): Delete.
2707 * name-lookup.c (check_module_override): Don't
2708 SET_IDENTIFIER_TYPE_VALUE here.
2709 (do_pushdecl): Nor here.
2710 (identifier_type_value_1, identifier_type_value): Delete.
2711 (set_identifier_type_value_with_scope): Only
2712 SET_IDENTIFIER_TYPE_VALUE for local and class scopes.
2713 (pushdecl_nanmespace_level): Remove shadow stack nadgering.
2714 (do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE.
2715 * call.c (check_dtor_name): Use lookup_name.
2716 * decl.c (cxx_init_decl_processing): Drop global_type_node.
2717 * decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE
2718 here.
2719 * init.c (get_type_value): Delete.
2720 * pt.c (instantiate_class_template_1): Don't call pushtag or
2721 SET_IDENTIFIER_TYPE_VALUE here.
2722 (tsubst): Assert never an identifier.
2723 (dependent_type_p): Drop global_type_node assert.
2724 * typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE
2725 to determine ctorness.
2726
27272021-02-12 Jakub Jelinek <jakub@redhat.com>
2728
2729 PR c++/97742
2730 * parser.c (cp_parser_requirement_seq): Stop iterating after reaching
2731 CPP_EOF.
2732
27332021-02-12 Jason Merrill <jason@redhat.com>
2734
2735 PR c++/97246
2736 PR c++/94546
2737 * pt.c (extract_fnparm_pack): Check DECL_PACK_P here.
2738 (register_parameter_specializations): Not here.
2739
0c5cdb31
GA
27402021-02-11 Marek Polacek <polacek@redhat.com>
2741
2742 PR c++/95888
2743 * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking
2744 for the partial instantiation.
2745
27462021-02-11 Jakub Jelinek <jakub@redhat.com>
2747
2748 PR c++/99033
2749 * init.c (build_zero_init_1): Handle zero initialiation of
2750 flexible array members like initialization of [0] arrays.
2751 Use integer_minus_onep instead of comparison to integer_minus_one_node
2752 and integer_zerop instead of comparison against size_zero_node.
2753 Formatting fixes.
2754
27552021-02-11 Marek Polacek <polacek@redhat.com>
2756
2757 PR c++/99063
2758 * semantics.c (finish_do_stmt): Check for unexpanded parameter packs.
2759
27602021-02-11 Patrick Palka <ppalka@redhat.com>
2761
2762 PR c++/97582
2763 * name-lookup.c (op_unqualified_lookup): Handle an ambiguous
2764 lookup result by discarding it if the first element is a
2765 class-scope declaration, otherwise return it.
2766 (push_operator_bindings): Handle an ambiguous lookup result by
2767 doing push_local_binding on each element in the list.
2768
27692021-02-11 Marek Polacek <polacek@redhat.com>
2770
2771 * parser.c (cp_parser_selection_statement): Use vec_free.
2772
4b37c3ea
GA
27732021-02-10 Jakub Jelinek <jakub@redhat.com>
2774
2775 PR c++/98988
2776 PR c++/99031
2777 * constexpr.c: Include cgraph.h.
2778 (cxx_eval_call_expression): Call varpool_node::finalize_decl on
2779 heap artificial vars.
2780 (cxx_eval_outermost_constant_expr): Remove varpool nodes for
2781 heap artificial vars.
2782
27832021-02-10 Nathan Sidwell <nathan@acm.org>
2784
2785 PR c++/99030
2786 * pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the
2787 answer if there's no local specialization.
2788
0a91b73e
GA
27892021-02-09 Nathan Sidwell <nathan@acm.org>
2790
2791 PR c++/98944
2792 * module.cc (module_state::is_rooted): Rename to ...
2793 (module_state::has_location): ... here. Adjust callers.
2794 (module_state::read_partitions): Adjust validity check.
2795 Don't overwrite a known location.
2796
27972021-02-09 Jason Merrill <jason@redhat.com>
2798
2799 PR c++/96905
2800 * pt.c (mark_decl_instantiated): Exit early if consteval.
2801
28022021-02-09 Jason Merrill <jason@redhat.com>
2803
2804 PR c++/98326
2805 PR c++/20408
2806 * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref
2807 parm.
2808
28092021-02-09 Jason Merrill <jason@redhat.com>
2810
2811 PR c++/98994
2812 PR c++/97566
2813 * constexpr.c (cxx_eval_store_expression): Only skip empty fields in
2814 RECORD_TYPE.
2815
2da7ce23
GA
28162021-02-08 Nathan Sidwell <nathan@acm.org>
2817
2818 * decl.c (start_cleanup_fn): Push function into
2819 namespace.
2820
28212021-02-08 Nathan Sidwell <nathan@acm.org>
2822
2823 PR c++/98531
2824 * cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare.
2825 * decl.c (push_abi_namespace, pop_abi_namespace): Moved
2826 from rtti.c, add default namespace arg.
2827 (check_redeclaration_exception_specification): Allow a lazy
2828 builtin's eh spec to differ from an lready-declared user
2829 declaration.
2830 (declare_global_var): Use push/pop_abi_namespace.
2831 (get_atexit_node): Push the fndecl into a namespace.
2832 * rtti.c (push_abi_namespace, pop_abi_namespace): Moved to
2833 decl.c.
2834
28352021-02-08 Marek Polacek <polacek@redhat.com>
2836
2837 * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo.
2838
1ed59127
GA
28392021-02-05 Marek Polacek <polacek@redhat.com>
2840
2841 PR c++/98947
2842 * call.c (build_conditional_expr_1): Don't call mark_lvalue_use
2843 on arg2/arg3.
2844 * expr.c (mark_use) <case MODIFY_EXPR>: Don't check read_p when
2845 issuing the -Wvolatile warning. Only set TREE_THIS_VOLATILE if
2846 a warning was emitted.
2847
28482021-02-05 Marek Polacek <polacek@redhat.com>
2849
2850 PR c++/96462
2851 * name-lookup.c (lookup_using_decl): Hoist the destructor check.
2852
28532021-02-05 Jakub Jelinek <jakub@redhat.com>
2854
2855 PR c++/97878
2856 * decl.c (check_array_initializer): For structured bindings, require
2857 the array type to be complete.
2858
a19dd5e6
GA
28592021-02-04 Jason Merrill <jason@redhat.com>
2860
2861 PR c++/98717
2862 * constraint.cc (build_concept_check_arguments): Remove assert.
2863 (build_concept_check): Allow empty args.
2864
28652021-02-04 Tom Greenslade (thomgree) <thomgree@cisco.com>
2866
2867 PR c++/90926
2868 * call.c (can_convert_array): Extend to handle all valid aggregate
2869 initializers of an array; including by string literals, not just by
2870 brace-init-list.
2871 (build_aggr_conv): Call can_convert_array more often, not just in
2872 brace-init-list case.
2873 * typeck2.c (array_string_literal_compatible_p): New function.
2874 (digest_init_r): call array_string_literal_compatible_p
2875 * cp-tree.h: (array_string_literal_compatible_p): Declare.
2876
28772021-02-04 Jason Merrill <jason@redhat.com>
2878
2879 PR c++/98802
2880 * pt.c (do_class_deduction): No aggregate guide if any_dguides_p.
2881
28822021-02-04 Jason Merrill <jason@redhat.com>
2883
2884 PR c++/95192
2885 * pt.c (tsubst_attribute): Handle error.
2886 (apply_late_template_attributes): Return false on error.
2887 (tsubst_function_decl): Check its return value.
2888 (tsubst_decl): Likewise.
2889 (push_template_decl): Assert current_template_parms.
2890 (tsubst_template_decl): Set current_template_parms.
2891
9faaa807
GA
28922021-02-03 Marek Polacek <polacek@redhat.com>
2893
2894 PR c++/98951
2895 * call.c (struct z_candidate): Mark rewritten and reversed as const.
2896 (struct NonPublicField): Mark operator() as const.
2897 (struct NonTrivialField): Likewise.
2898
28992021-02-03 Jason Merrill <jason@redhat.com>
2900
2901 PR c++/98926
2902 PR c++/98570
2903 * pt.c (spec_hasher::equal): Set processing_template_decl.
2904 * Make-lang.in (check-g++-strict-gc): Add --param
2905 hash-table-verification-limit=10000.
2906
29072021-02-03 Marek Polacek <polacek@redhat.com>
2908
2909 PR c++/98899
2910 * parser.c (cp_parser_class_specifier_1): Use any possible
2911 DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN.
2912 (cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS.
2913 * pt.c (tsubst_exception_specification): Stash new_specs into
2914 DEFPARSE_INSTANTIATIONS.
2915 * tree.c (fixup_deferred_exception_variants): Use
2916 UNPARSED_NOEXCEPT_SPEC_P.
2917
548b75d8
GA
29182021-02-02 Jason Merrill <jason@redhat.com>
2919
2920 PR c++/98929
2921 PR c++/96199
2922 * error.c (dump_expr): Ignore dummy object.
2923 * pt.c (tsubst_baselink): Handle dependent scope.
2924
f7884fb1
GA
29252021-02-01 Patrick Palka <ppalka@redhat.com>
2926
2927 PR c++/98295
2928 * constexpr.c (cxx_eval_array_reference): Also set
2929 new_ctx.object when setting new_ctx.ctor.
2930
29312021-02-01 Marek Polacek <polacek@redhat.com>
2932
2933 PR c++/98355
2934 * parser.c (cp_parser_has_attribute_expression): Use
2935 uses_template_parms instead of type_dependent_expression_p.
2936
29372021-02-01 Jason Merrill <jason@redhat.com>
2938
2939 PR c++/98570
2940 * cp-tree.h: Declare it.
2941 * pt.c (comparing_dependent_aliases): New flag.
2942 (template_args_equal, spec_hasher::equal): Set it.
2943 (dependent_alias_template_spec_p): Assert that we don't
2944 get non-types other than error_mark_node.
2945 (instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY
2946 on complex alias specializations. Set TYPE_DEPENDENT_P here.
2947 (tsubst_decl): Not here.
2948 * module.cc (module_state::read_cluster): Set
2949 comparing_dependent_aliases instead of
2950 comparing_specializations.
2951 * tree.c (cp_tree_equal): Remove comparing_specializations
2952 module handling.
2953 * typeck.c (structural_comptypes): Adjust.
2954 (comptypes): Remove comparing_specializations handling.
2955
2900f2f2
GA
29562021-01-29 Nathan Sidwell <nathan@acm.org>
2957
2958 PR c++/98843
2959 * module.cc (module_state_config): Add num_entities field.
2960 (module_state::read_entities): The entity_ary span is
2961 already allocated.
2962 (module_state::write_config): Write num_entities.
2963 (module_state::read_config): Read num_entities.
2964 (module_state::write): Set config's num_entities.
2965 (module_state::read_initial): Allocate the entity ary
2966 span here.
2967 (module_state::read_language): Do not set entity_lwm
2968 here.
2969
29702021-01-29 Marek Polacek <polacek@redhat.com>
2971
2972 PR c++/96137
2973 * parser.c (cp_parser_class_name): If parser->scope is
2974 error_mark_node, return it, otherwise continue.
2975
85d04a2e
GA
29762021-01-28 Jakub Jelinek <jakub@redhat.com>
2977
2978 PR c++/98841
2979 * typeck.c (build_x_indirect_ref): For *this, return current_class_ref.
2980
29812021-01-28 Jakub Jelinek <jakub@redhat.com>
2982
2983 PR c++/33661
2984 PR c++/98847
2985 * decl.c (cp_finish_decl): For register vars with asmspec in templates
2986 call set_user_assembler_name and set DECL_HARD_REGISTER.
2987 * pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars,
2988 pass asmspec_tree to cp_finish_decl.
2989
29902021-01-28 Nathan Sidwell <nathan@acm.org>
2991
2992 PR c++/98770
2993 * module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME
2994 check order.
2995 (trees_in::decl_value): Do typedef frobbing only when installing
2996 a new typedef, adjust is_matching_decl call. Swap is_typedef
2997 & TYPE_NAME check.
2998 (trees_in::is_matching_decl): Add is_typedef parm. Adjust variable
2999 names and deal with typedef checking.
3000
aa69f0a8
GA
30012021-01-27 Jason Merrill <jason@redhat.com>
3002
3003 PR c++/97874
3004 * name-lookup.c (lookup_using_decl): Clean up handling
3005 of dependency and inherited constructors.
3006 (finish_nonmember_using_decl): Handle DECL_DEPENDENT_P.
3007 * pt.c (tsubst_expr): Handle DECL_DEPENDENT_P.
3008
e62bb7f0
GA
30092021-01-26 Jason Merrill <jason@redhat.com>
3010
3011 PR c++/97474
3012 * call.c (type_passed_as): Don't mark invisiref restrict.
3013
30142021-01-26 Jason Merrill <jason@redhat.com>
3015
3016 PR c++/97566
3017 PR c++/98463
3018 * class.c (layout_class_type): An empty field gets size 0.
3019 (is_empty_field): New.
3020 (check_bases): Check it.
3021 * cp-tree.h (is_empty_field): Declare it.
3022 * constexpr.c (cxx_eval_store_expression): Check it.
3023 (cx_check_missing_mem_inits): Likewise.
3024 * init.c (perform_member_init): Likewise.
3025 * typeck2.c (process_init_constructor_record): Likewise.
3026
161e4c08
GA
30272021-01-25 Martin Sebor <msebor@redhat.com>
3028
3029 PR c++/98646
3030 * cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING.
3031
30322021-01-25 Jason Merrill <jason@redhat.com>
3033
3034 PR c++/98463
3035 * constexpr.c (get_or_insert_ctor_field): Add check.
3036 (cxx_eval_store_expression): Handle discontinuity of refs.
3037
6b163337
GA
30382021-01-23 Anthony Sharp <anthonysharp15@gmail.com>
3039
3040 * call.c (complain_about_access): Altered function.
3041 * cp-tree.h (complain_about_access): Changed parameters of function.
3042 (get_parent_with_private_access): Declared new function.
3043 * search.c (get_parent_with_private_access): Defined new function.
3044 * semantics.c (enforce_access): Modified function.
3045 * typeck.c (complain_about_unrecognized_member): Updated function
3046 arguments in complain_about_access.
3047
30482021-01-23 Patrick Palka <ppalka@redhat.com>
3049
3050 PR c++/97399
3051 * cp-tree.h (shared_member_p): Adjust declaration.
3052 * parser.c (cp_parser_init_declarator): If the storage class
3053 specifier is sc_static, pass true for static_p to
3054 cp_parser_declarator.
3055 (cp_parser_direct_declarator): Don't do inject_this_parm when
3056 the declarator is a friend.
3057 * search.c (shared_member_p): Change return type to bool and
3058 adjust function body accordingly. Return false for a dependent
3059 USING_DECL instead of aborting.
3060 * semantics.c (finish_qualified_id_expr): Rely on shared_member_p
3061 even when type-dependent.
3062
8502e23d
GA
30632021-01-22 Marek Polacek <polacek@redhat.com>
3064
3065 PR c++/96623
3066 * parser.c (inject_parm_decls): Remove a redundant assignment.
3067 (cp_parser_class_specifier_1): Clear current_class_{ptr,ref}
3068 before calling inject_parm_decls.
3069
30702021-01-22 Jason Merrill <jason@redhat.com>
3071
3072 PR c++/98744
3073 * call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P.
3074
30752021-01-22 Jakub Jelinek <jakub@redhat.com>
3076
3077 PR sanitizer/95693
3078 * init.c (build_zero_init_1): Revert the 2018-03-06 change to
3079 return build_zero_cst for reference types.
3080 * typeck2.c (process_init_constructor_record): Instead call
3081 build_zero_cst here during error recovery instead of build_zero_init.
3082
30832021-01-22 Marek Polacek <polacek@redhat.com>
3084
3085 PR c++/98545
3086 * mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses
3087 warnings regardless of abi_version_at_least.
3088 (write_expression): When the expression is a dependent name
3089 and an operator name, write "on" before writing its name.
3090
30912021-01-22 Marek Polacek <polacek@redhat.com>
3092
3093 PR c++/97966
3094 * pt.c (instantiate_class_template_1): Instantiate members
3095 marked with attribute used only after we're done instantiating
3096 the class.
3097
7559d465
GA
30982021-01-21 Patrick Palka <ppalka@redhat.com>
3099
3100 PR c++/71879
3101 * semantics.c (finish_decltype_type): Set up a cp_unevaluated
3102 sentinel at the start of the function. Remove a now-redundant
3103 manual adjustment of cp_unevaluated_operand.
3104
31052021-01-21 Nathan Sidwell <nathan@acm.org>
3106
3107 PR c++/98624
3108 * module.cc (depset::hash::find_dependencies): Add
3109 module arg.
3110 (trees_out::core_vals): Check state before calling
3111 write_location.
3112 (sort_cluster, module_state::write): Adjust
3113 find_dependencies call.
3114
31152021-01-21 Jakub Jelinek <jakub@redhat.com>
3116
3117 PR c++/98672
3118 * constexpr.c (check_for_return_continue_data): Add break_stmt member.
3119 (check_for_return_continue): Also look for BREAK_STMT. Handle
3120 SWITCH_STMT by ignoring break_stmt from its body.
3121 (potential_constant_expression_1) <case FOR_STMT>,
3122 <case WHILE_STMT>: If the condition isn't constant true, check if
3123 the loop body can contain a return stmt.
3124 <case SWITCH_STMT>: Adjust check_for_return_continue_data initializer.
3125 <case IF_STMT>: If recursion with tf_none is successful,
3126 merge *jump_target from the branches - returns with highest priority,
3127 breaks or continues lower. If then branch is potentially constant and
3128 doesn't return, check the else branch if it could return, break or
3129 continue.
3130
31312021-01-21 Nathan Sidwell <nathan@acm.org>
3132
3133 PR c++/98530
3134 * name-lookup.c (lookup_class_binding): Rearrange a stat-hack.
3135
b93d0e36
GA
31362021-01-20 Nathan Sidwell <nathan@acm.org>
3137
3138 * module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of
3139 signed type.
3140
31412021-01-20 Patrick Palka <ppalka@redhat.com>
3142
3143 PR c++/95434
3144 * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: If tsubsting
3145 CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM,
3146 adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
3147
31482021-01-20 Patrick Palka <ppalka@redhat.com>
3149
3150 PR c++/82613
3151 * parser.c (cp_parser_class_head): Defer access checking when
3152 parsing the base-clause until all bases are seen and attached
3153 to the class type.
3154 * pt.c (instantiate_class_template): Likewise when substituting
3155 into dependent bases.
3156
31572021-01-20 Jakub Jelinek <jakub@redhat.com>
3158
3159 PR c++/98742
3160 * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_DETACH>: If
3161 error_operand_p, remove clause without further checking. Check
3162 for non-NULL TYPE_NAME.
3163
f35a4f96
GA
31642021-01-19 Marek Polacek <polacek@redhat.com>
3165
3166 PR c++/98659
3167 * pt.c (maybe_instantiate_noexcept): Return false if FN is
3168 error_mark_node.
3169
31702021-01-19 Marek Polacek <polacek@redhat.com>
3171
3172 PR c++/98687
3173 * name-lookup.c (push_using_decl_bindings): New, broken out of...
3174 (finish_nonmember_using_decl): ...here.
3175 * name-lookup.h (push_using_decl_bindings): Update declaration.
3176 * pt.c (tsubst_expr): Update the call to push_using_decl_bindings.
3177
31782021-01-19 Patrick Palka <ppalka@redhat.com>
3179
3180 PR c++/41437
3181 PR c++/58993
3182 * search.c (friend_accessible_p): If scope is a hidden friend
3183 defined inside a dependent class, consider access from the
3184 class.
3185 * parser.c (cp_parser_late_parsing_for_member): Don't push a
3186 dk_no_check access state.
3187
31882021-01-19 Marek Polacek <polacek@redhat.com>
3189
3190 PR c++/98333
3191 * parser.c (cp_parser_class_specifier_1): Perform late-parsing
3192 of NSDMIs before late-parsing of noexcept-specifiers.
3193
31942021-01-19 Nathan Sidwell <nathan@acm.org>
3195
3196 * module.cc (identifier): Merge overloads.
3197
31982021-01-19 Nathan Sidwell <nathan@acm.org>
3199
3200 PR c++/98624
3201 * module.cc (trees_out::write_location): Make static.
3202
59cf67d1
GA
32032021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
3204
3205 * parser.c (cp_parser_omp_clause_detach): New.
3206 (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH.
3207 (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
3208 * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
3209 * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
3210 Prevent use of detach with mergeable and overriding the data sharing
3211 mode of the event handle.
3212
2f7f0d32
GA
32132021-01-15 Nathan Sidwell <nathan@acm.org>
3214
3215 PR c++/98538
3216 * tree.c (cp_build_qualified_type_real): Propagate an array's
3217 dependentness to the copy, if known.
3218
32192021-01-15 Jason Merrill <jason@redhat.com>
3220
3221 PR c++/98642
3222 * call.c (unsafe_return_slot_p): Return int.
3223 (init_by_return_slot_p): Split out from...
3224 (unsafe_copy_elision_p): ...here.
3225 (unsafe_copy_elision_p_opt): New name for old meaning.
3226 (build_over_call): Adjust.
3227 (make_safe_copy_elision): New.
3228 * typeck2.c (split_nonconstant_init_1): Elide copy from safe
3229 list-initialization.
3230 * cp-tree.h: Adjust.
3231
32322021-01-15 Jason Merrill <jason@redhat.com>
3233
3234 * call.c (base_ctor_for, make_base_init_ok): New.
3235 (build_over_call): Use make_base_init_ok.
3236
32372021-01-15 Jason Merrill <jason@redhat.com>
3238
3239 PR c++/63707
3240 * tree.c (build_vec_init_expr): Don't call build_vec_init_elt
3241 if we got a CONSTRUCTOR.
3242
32432021-01-15 Nathan Sidwell <nathan@acm.org>
3244
3245 PR c++/98591
3246 * lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only.
3247
5fff80fd
GA
32482021-01-14 Jason Merrill <jason@redhat.com>
3249
3250 * typeck2.c (process_init_constructor_record): Use fldtype
3251 variable consistently.
3252
32532021-01-14 Nathan Sidwell <nathan@acm.org>
3254
3255 PR c++/98372
3256 * tree.c (cp_tree_equal): Correct map_context logic.
3257
be0851b8
GA
32582021-01-13 Marek Polacek <polacek@redhat.com>
3259
3260 PR c++/98231
3261 * name-lookup.c (push_using_decl_bindings): New.
3262 * name-lookup.h (push_using_decl_bindings): Declare.
3263 * pt.c (tsubst_expr): Call push_using_decl_bindings.
3264
32652021-01-13 Nathan Sidwell <nathan@acm.org>
3266
3267 PR c++/98626
3268 * module.cc (module_add_import_initializers): Pass a
3269 zero-element argument vector.
3270
6851dda2
GA
32712021-01-12 Patrick Palka <ppalka@redhat.com>
3272
3273 PR c++/98611
3274 * tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit
3275 the template of a CTAD placeholder.
3276
32772021-01-12 Marek Polacek <polacek@redhat.com>
3278
3279 PR c++/98620
3280 * typeck2.c (process_init_constructor_record): Don't emit
3281 -Wmissing-field-initializers warnings in unevaluated contexts.
3282
67fbb7f0
GA
32832021-01-11 Jakub Jelinek <jakub@redhat.com>
3284
3285 PR c++/98481
3286 * class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1
3287 for types.
3288 (mark_abi_tags_r): Likewise.
3289 * decl2.c (min_vis_r): Likewise.
3290 * tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through
3291 typedefs.
3292
bf5cbb9e
GA
32932021-01-08 Patrick Palka <ppalka@redhat.com>
3294
3295 PR c++/98551
3296 * constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P
3297 instead of AGGREGATE_TYPE_P before calling replace_result_decl.
3298
32992021-01-08 Patrick Palka <ppalka@redhat.com>
3300
3301 PR c++/98515
3302 * semantics.c (check_accessibility_of_qualified_id): Punt if
3303 we're checking access of a scoped non-static member inside a
3304 class template.
3305
7d187e4f
GA
33062021-01-07 Jakub Jelinek <jakub@redhat.com>
3307
3308 PR c++/98329
3309 * pt.c (tsubst_copy) <case BIT_CAST_EXPR>: Don't call
3310 cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set
3311 its location.
3312 (tsubst_copy_and_build): Handle BIT_CAST_EXPR.
3313
33142021-01-07 Marek Polacek <polacek@redhat.com>
3315
3316 PR c++/98441
3317 * decl.c (grokdeclarator): Move the !funcdecl_p check inside the
3318 !late_return_type block.
3319
33202021-01-07 Jason Merrill <jason@redhat.com>
3321
3322 * constexpr.c (cxx_bind_parameters_in_call): Add comment.
3323 (cxx_eval_store_expression): Add comment.
3324
33252021-01-07 Jason Merrill <jason@redhat.com>
3326
3327 * call.c (has_next): Factor out from...
3328 (next_conversion): ...here.
3329 (strip_standard_conversion): And here.
3330 (is_subseq): And here.
3331 (build_conv): Check it.
3332 (standard_conversion): Don't call build_conv
3333 for ck_identity.
3334
942ae5be
GA
33352021-01-06 Martin Sebor <msebor@redhat.com>
3336
3337 PR c++/95768
3338 * error.c (dump_expr): Call c_pretty_printer::unary_expression.
3339
651b8a50
GA
33402021-01-05 Patrick Palka <ppalka@redhat.com>
3341
3342 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: After walking into
3343 the type of the NTTP, substitute into the type again. If the
3344 type is still dependent, don't unify the NTTP.
3345
33462021-01-05 Jakub Jelinek <jakub@redhat.com>
3347
3348 * Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add
3349 $(CODYLIB) after $(BACKEND).
3350
33512021-01-05 Jakub Jelinek <jakub@redhat.com>
3352
3353 PR c++/98469
3354 * constexpr.c (cxx_eval_constant_expression) <case BIT_CAST_EXPR>:
3355 Punt if lval is true.
3356 * semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on
3357 the result if it has a class type.
3358
33592021-01-05 Marek Polacek <polacek@redhat.com>
3360
3361 PR c++/82099
3362 * pt.c (resolve_overloaded_unification): Call
3363 maybe_instantiate_noexcept after instantiating the function
3364 decl.
3365
33662021-01-05 Nathan Sidwell <nathan@acm.org>
3367
3368 * parser.c (cp_parser_module_declaration): Alter diagnostic
3369 text to say where is permissable.
3370
33712021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3372
3373 PR c++/98316
3374 * Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS).
3375
2eacfdbd
GA
33762021-01-02 Jan Hubicka <jh@suse.cz>
3377
3378 * cp-tree.h (cp_tree_c_finish_parsing): Declare.
3379 * decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing.
3380 * tree.c (cp_tree_c_finish_parsing): New function.
3381
b6dd195a
GA
33822021-01-01 Jakub Jelinek <jakub@redhat.com>
3383
3384 * ChangeLog-2020: Rotate ChangeLog. New file.
3385
ad41bd84 3386\f
618e665a 3387Copyright (C) 2021 Free Software Foundation, Inc.
ad41bd84
JM
3388
3389Copying and distribution of this file, with or without modification,
3390are permitted in any medium without royalty provided the copyright
3391notice and this notice are preserved.
This page took 4.321205 seconds and 5 git commands to generate.