]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
Propagate type attribute when merging extern declarations at local scope.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
df3b1289
GA
12021-04-14 Jason Merrill <jason@redhat.com>
2
3 PR c++/100078
4 PR c++/93085
5 * pt.c (uses_outer_template_parms): Also look at default
6 template argument.
7
82021-04-14 Jason Merrill <jason@redhat.com>
9
10 PR c++/93314
11 * semantics.c (finish_id_expression_1): Clear cp_unevaluated_operand
12 for a non-static data member in a constant-expression.
13
142021-04-14 Patrick Palka <ppalka@redhat.com>
15
16 PR c++/83476
17 PR c++/99885
18 * pt.c (deducible_expression): Look through implicit
19 INDIRECT_REFs as well.
20
212021-04-14 Jason Merrill <jason@redhat.com>
22
23 PR c++/99478
24 * parser.c (cp_parser_lambda_expression): Reject lambda
25 in template parameter type.
26
272021-04-14 Jason Merrill <jason@redhat.com>
28
29 PR c++/90674
30 * decl.c (duplicate_decls): Don't propagate
31 DECL_INITIALIZED_IN_CLASS_P to a specialization.
32
332021-04-14 Jason Merrill <jason@redhat.com>
34
35 PR c++/88742
36 PR c++/49951
37 PR c++/58123
38 * semantics.c (set_cleanup_locs): New.
39 (do_poplevel): Call it.
40 * parser.c (cp_parser_compound_statement): Consume the }
41 before finish_compound_stmt.
42
6d0d35d5
GA
432021-04-13 Jason Merrill <jason@redhat.com>
44
45 PR c++/100032
46 * pt.c (get_underlying_template): Compare TYPE_QUALS.
47
482021-04-13 Jason Merrill <jason@redhat.com>
49
50 PR c++/100054
51 PR c++/90479
52 * init.c (get_nsdmi): Do more context adjustment for local classes.
53
542021-04-13 Patrick Palka <ppalka@redhat.com>
55
56 PR c++/99008
57 * pt.c (do_class_deduction): Reject alias CTAD in C++17 mode
58 rather than issuing a pedwarn.
59 * typeck2.c (build_functional_cast_1): Handle CTAD uniformly
60 for consistent diagnostics.
61
622021-04-13 Jason Merrill <jason@redhat.com>
63
64 PR c++/91933
65 * class.c (build_base_path): Shortcut simple non-pointer case.
66
672021-04-13 Eric Botcazou <ebotcazou@adacore.com>
68
69 * module.cc (ordinary_loc_of): Test LINEMAPS_MACRO_LOWEST_LOCATION
70 of the linemap.
71 (module_state::write_location): Likewise.
72
732021-04-13 Patrick Palka <ppalka@redhat.com>
74
75 PR c++/97134
76 * pt.c (do_class_deduction): Look through EXPR_PACK_EXPANSION
77 when checking if the initializer is an equivalent class
78 placeholder template parameter.
79
802021-04-13 Patrick Palka <ppalka@redhat.com>
81
82 PR c++/99961
83 PR c++/99994
84 * constraint.cc (satisfy_normalized_constraints): Set
85 cp_unevaluated.
86 * parser.c (cp_parser_concept_definition): Likewise.
87 (cp_parser_requires_clause_opt): Likewise.
88
287ad814
GA
892021-04-12 Jason Merrill <jason@redhat.com>
90
91 PR c++/93085
92 * pt.c (uses_outer_template_parms): Handle non-type and template
93 template parameters specifically.
94
a0ecde22
GA
952021-04-11 Jason Merrill <jason@redhat.com>
96
97 PR c++/97974
98 * decl.c (fixup_anonymous_aggr): Prune all functions from
99 CLASSTYPE_MEMBER_VEC.
100
1d54b138
GA
1012021-04-10 Jason Merrill <jason@redhat.com>
102
103 PR c++/98800
104 PR c++/97399
105 * parser.c (cp_parser_direct_declarator): Don't
106 inject_this_parameter if static_p.
107 (cp_parser_omp_var_list_no_open): Parse 'this' even if
108 current_class_ptr isn't set for a better diagnostic.
109
1102021-04-10 Jason Merrill <jason@redhat.com>
111
112 PR c++/99180
113 PR c++/93295
114 PR c++/93867
115 PR c++/99118
116 PR c++/96873
117 * pt.c (alias_ctad_tweaks): Handle failure better.
118
1192021-04-10 Jason Merrill <jason@redhat.com>
120
121 PR c++/100006
122 * pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases.
123
3115aba8
GA
1242021-04-09 Patrick Palka <ppalka@redhat.com>
125
126 * cp-tree.h (LAMBDA_EXPR_REGENERATED_FROM)
127 (LAMBDA_EXPR_REGENERATING_TARGS): Replace these with ...
128 (LAMBDA_EXPR_REGEN_INFO): ... this.
129 (tree_lambda_expr::regenerated_from)
130 (tree_lambda_expr::regenerating_targs): Replace these with ...
131 (tree_lambda_expr::regen_info): ... this.
132 * constraint.cc (satisfy_declaration_constraints): Adjust
133 accordingly.
134 * lambda.c (build_lambda_expr): Likewise.
135 * pt.c (regenerated_lambda_fn_p): Likewise.
136 (most_general_lambda): Likewise.
137 (tsubst_lambda_expr): Likewise.
138
1392021-04-09 Marek Polacek <polacek@redhat.com>
140
141 PR c++/99806
142 * parser.c (cp_parser_member_declaration): Call
143 cp_parser_save_default_args even for function templates. Use
144 STRIP_TEMPLATE on the declaration we're passing.
145
019a9220
GA
1462021-04-08 Patrick Palka <ppalka@redhat.com>
147
148 PR c++/99874
149 * constraint.cc (get_normalized_constraints_from_decl): Handle
150 regenerated lambdas.
151 (satisfy_declaration_constraints): Likewise. Check for
152 dependent args later.
153 * cp-tree.h (LAMBDA_EXPR_INSTANTIATED): Replace with ...
154 (LAMBDA_EXPR_REGENERATED_FROM): ... this.
155 (LAMBDA_EXPR_REGENERATING_TARGS): New.
156 (tree_lambda_expr::regenerated_from): New data member.
157 (tree_lambda_expr::regenerating_targs): New data member.
158 (add_to_template_args): Declare.
159 (regenerated_lambda_fn_p): Likewise.
160 (most_general_lambda): Likewise.
161 * lambda.c (build_lambda_expr): Set LAMBDA_EXPR_REGENERATED_FROM
162 and LAMBDA_EXPR_REGENERATING_TARGS.
163 * pt.c (add_to_template_args): No longer static.
164 (tsubst_function_decl): Unconditionally propagate constraints on
165 the substituted function decl.
166 (instantiated_lambda_fn_p): Rename to ...
167 (regenerated_lambda_fn_p): ... this. Check
168 LAMBDA_EXPR_REGENERATED_FROM instead of
169 LAMBDA_EXPR_INSTANTIATED.
170 (most_general_lambda): Define.
171 (enclosing_instantiation_of): Adjust after renaming
172 instantiated_lambda_fn_p.
173 (tsubst_lambda_expr): Don't set LAMBDA_EXPR_INSTANTIATED. Set
174 LAMBDA_EXPR_REGENERATED_FROM and LAMBDA_EXPR_REGENERATING_TARGS.
175 Don't substitute or set constraints on the regenerated lambda.
176
1772021-04-08 Patrick Palka <ppalka@redhat.com>
178
179 PR c++/97679
180 * pt.c (build_deduction_guide): Document OUTER_ARGS. Substitute
181 them into the propagated constraints.
182
1832021-04-08 Jason Merrill <jason@redhat.com>
184
185 PR c++/91849
186 * call.c (convert_like_internal): Improve reference diagnostic.
187
1882021-04-08 Jakub Jelinek <jakub@redhat.com>
189
190 PR c++/99859
191 * constexpr.c (addr_of_non_const_var): New function.
192 (cxx_bind_parameters_in_call): Set *non_constant_args to true
193 even if cp_walk_tree on arg with addr_of_non_const_var callback
194 returns true.
195
1962021-04-08 Jason Merrill <jason@redhat.com>
197
198 PR c++/94529
199 * pt.c (determine_specialization): Improve diagnostic.
200
2012021-04-08 Marek Polacek <polacek@redhat.com>
202
203 PR c++/99844
204 * decl.c (build_explicit_specifier): Call
205 check_for_bare_parameter_packs.
206 * except.c (build_noexcept_spec): Likewise.
207
299859c2
GA
2082021-04-07 Jason Merrill <jason@redhat.com>
209
210 PR c++/41723
211 * parser.c (cp_parser_class_name): Check dependent_scope_p.
212
2132021-04-07 Jason Merrill <jason@redhat.com>
214
215 PR c++/52625
216 * pt.c (maybe_process_partial_specialization): Check
217 DECL_SELF_REFERENCE_P.
218
2192021-04-07 Jason Merrill <jason@redhat.com>
220
221 PR c++/92918
222 * name-lookup.c (push_class_level_binding_1): Do overload a new
223 function with a previous using-declaration.
224
8cac6af6
GA
2252021-04-06 Jason Merrill <jason@redhat.com>
226
227 PR c++/96673
228 * init.c (get_nsdmi): Don't defer access checking.
229
2302021-04-06 Jason Merrill <jason@redhat.com>
231
232 PR c++/99901
233 * decl.c (cp_finish_decl): mark_needed an implicitly inline
234 static data member with an out-of-class redeclaration.
235
2362021-04-06 Jason Merrill <jason@redhat.com>
237
238 PR c++/91241
239 * mangle.c (write_compact_number): Add sanity check.
240 (write_local_name): Use list_length for parm number.
241
2422021-04-06 Patrick Palka <ppalka@redhat.com>
243
244 PR c++/99899
245 * pt.c (do_auto_deduction): Don't exit early when deducing the
246 array type of a structured binding. Also handle adc_decomp_type
247 during constraint checking.
248
b1da9916
GA
2492021-04-05 Jason Merrill <jason@redhat.com>
250
251 PR c++/96311
252 * typeck.c (check_return_expr): Call mark_exp_read in dependent
253 case.
254
2552021-04-05 Jason Merrill <jason@redhat.com>
256
257 PR c++/98440
258 * typeck.c (build_reinterpret_cast_1): Don't perform
259 temporary materialization.
260
2612021-04-05 Jason Merrill <jason@redhat.com>
262
263 PR c++/95317
264 * pt.c (lookup_template_class_1): Do tsubst_enum when
265 tsubsting a generic lambda.
266
2672021-04-05 Jason Merrill <jason@redhat.com>
268
269 PR c++/95870
270 * pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if
271 there is no enclosing non-lambda function.
272
2732021-04-05 Nathan Sidwell <nathan@acm.org>
274
275 PR c++/99380
276 * module.cc (name_pending_imports): Drop 'atend' parm. Don't
277 query export when not needed.
278 (preprocess_module, preprocessed_module): Adjust.
279
2802021-04-05 Jason Merrill <jason@redhat.com>
281
282 PR c++/99066
283 * pt.c (mark_decl_instantiated): Set DECL_EXTERNAL.
284
2852021-04-05 Jason Merrill <jason@redhat.com>
286
287 PR c++/99201
288 * pt.c (class el_data): Add visited field.
289 (extract_local_specs): Pass it to cp_walk_tree.
290 (extract_locals_r): Walk into the body of a lambda.
291
2922021-04-05 Jason Merrill <jason@redhat.com>
293
294 * ptree.c (cxx_print_decl): Check DECL_MODULE_IMPORT_P on
295 template result.
296
91472884
GA
2972021-04-04 Jason Merrill <jason@redhat.com>
298
299 PR c++/99643
300 * typeck2.c (massage_init_elt): Don't strip TARGET_EXPR.
301
c0756c4e
GA
3022021-04-03 Marek Polacek <polacek@redhat.com>
303
304 PR c++/91416
305 * parser.c: Create a GC root for attributes in a decl specifier.
306 (cp_parser_type_specifier): Push/pop ->attributes onto/from it.
307
3082021-04-03 Jason Merrill <jason@redhat.com>
309
310 PR c++/91217
311 * pt.c (tsubst_lambda_expr): Skip the body block from
312 DECL_SAVED_TREE.
313
3142021-04-03 Jason Merrill <jason@redhat.com>
315
316 PR c++/90664
317 * cvt.c (can_convert_qual): Check fnptr_conv_p.
318
3192021-04-03 Jason Merrill <jason@redhat.com>
320
321 PR c++/97900
322 * pt.c (regenerate_decl_from_template): tsubst_decl
323 the parms.
324
b7c1f3d6
GA
3252021-04-02 Patrick Palka <ppalka@redhat.com>
326
327 PR c++/99869
328 * parser.c (do_range_for_auto_deduction): Pass adc_variable_type
329 to do_auto_deduction.
330
3312021-04-02 Patrick Palka <ppalka@redhat.com>
332
333 PR c++/99586
334 * semantics.c (finish_compound_literal): Check
335 template_placeholder_p instead of type_uses_auto.
336
3372021-04-02 Jason Merrill <jason@redhat.com>
338
339 PR c++/97938
340 * cp-tree.h (PACK_EXPANSION_AUTO_P): New.
341 * lambda.c (add_capture): Set it.
342 * pt.c (tsubst_pack_expansion): Handle it.
343
3442021-04-02 Nathan Sidwell <nathan@acm.org>
345
346 * cp-tree.h (lang_decl_base): Correct module flag comment.
347 * module.cc (trees_in::assert_definition): Break out
348 not_tmpl var.
349 (trees_out::lang_decl_bools): Do not write purview for header units.
350
f1607029
GA
3512021-04-01 Marek Polacek <polacek@redhat.com>
352
353 PR c++/99831
354 * method.c (defaulted_late_check): ++ and -- function_depth around
355 the call to synthesize_method.
356 * pt.c: Remove the saved_trees global.
357
3582021-04-01 Jason Merrill <jason@redhat.com>
359
360 PR c++/99583
361 PR c++/99584
362 * tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into
363 TYPE_RAISES_EXCEPTIONS.
364
3652021-04-01 Iain Sandoe <iain@sandoe.co.uk>
366
367 * mapper-client.cc (INCLUDE_MAP): New; require map to be
368 included from system.h.
369 * mapper-resolver.cc (INCLUDE_MAP): Likewise.
370
3712021-04-01 Jason Merrill <jason@redhat.com>
372
373 PR c++/98481
374 * mangle.c (write_expression): Adjust.
375 * class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14.
376 (mark_abi_tags_r): Likewise.
377
3782021-04-01 Nathan Sidwell <nathan@acm.org>
379
380 PR c++/99283
381 * module.cc (trees_out::decl_node): Adjust importedness reference
382 assert.
383 (module_state::intercluster_seed): New. Seed both imports and
384 inter-cluster references. Broken out of ...
385 (module_state::write_cluster): ... here. Call it.
386
95d217ab
GA
3872021-03-31 Jason Merrill <jason@redhat.com>
388
389 PR c++/99445
390 * tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.
391
3922021-03-31 Patrick Palka <ppalka@redhat.com>
393
394 PR c++/88115
395 * mangle.c (write_expression): Adjust the mangling of
396 __alignof__.
397
3982021-03-31 Patrick Palka <ppalka@redhat.com>
399
400 PR c++/99815
401 * pt.c (placeholder_type_constraint_dependent_p): Expand
402 argument packs to separate the first non-pack argument
403 from the rest.
404
08d2edae
GA
4052021-03-30 Nathan Sidwell <nathan@acm.org>
406
407 PR c++/99283
408 * module.cc (dumper::operator): Make less brittle.
409 (trees_out::core_bools): VAR_DECLs always have a context.
410 (trees_out::key_mergeable): Use same_type_p for asserting.
411 (trees_in::read_var_def): Propagate
412 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
413
4142021-03-30 Jakub Jelinek <jakub@redhat.com>
415
416 PR c++/99790
417 * cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST.
418
651684b4
GA
4192021-03-26 Marek Polacek <polacek@redhat.com>
420
421 PR c++/98352
422 * method.c (implicitly_declare_fn): Pass &raises to
423 synthesized_method_walk.
424
4252021-03-26 Nathan Sidwell <nathan@acm.org>
426
427 PR c++/99283
428 * cp-tree.h (DECL_MODULE_CHECK): Ban TEMPLATE_DECL.
429 (SET_TYPE_TEMPLATE_INFO): Restore Alias template setting.
430 * decl.c (duplicate_decls): Remove template_decl module flag
431 propagation.
432 * module.cc (merge_kind_name): Add alias tmpl spec as a thing.
433 (dumper::impl::nested_name): Adjust for template-decl module flag
434 change.
435 (trees_in::assert_definition): Likewise.
436 (trees_in::install_entity): Likewise.
437 (trees_out::decl_value): Likewise. Remove alias template
438 separation of template and type_decl.
439 (trees_in::decl_value): Likewise.
440 (trees_out::key_mergeable): Likewise,
441 (trees_in::key_mergeable): Likewise.
442 (trees_out::decl_node): Adjust for template-decl module flag
443 change.
444 (depset::hash::make_dependency): Likewise.
445 (get_originating_module, module_may_redeclare): Likewise.
446 (set_instantiating_module, set_defining_module): Likewise.
447 * name-lookup.c (name_lookup::search_adl): Likewise.
448 (do_pushdecl): Likewise.
449 * pt.c (build_template_decl): Likewise.
450 (lookup_template_class_1): Remove special alias_template handling
451 of DECL_TI_TEMPLATE.
452 (tsubst_template_decl): Likewise.
453
4542021-03-26 Jakub Jelinek <jakub@redhat.com>
455
456 PR c++/99705
457 * tree.c (bot_manip): Remap artificial automatic temporaries mentioned
458 in DECL_EXPR or in BIND_EXPR_VARS.
459
4493b1c1
GA
4602021-03-25 Jakub Jelinek <jakub@redhat.com>
461
462 PR c++/99672
463 * parser.c (cp_parser_postfix_expression): For calls, create
464 combined_loc and temporarily set input_location to it before
465 calling finish_call_expr.
466
4672021-03-25 Marek Polacek <polacek@redhat.com>
468
469 PR c++/94751
470 * call.c (build_over_call): Maybe call mark_used in case
471 deduce_inheriting_ctor fails and return error_mark_node.
472 * cp-tree.h (deduce_inheriting_ctor): Adjust declaration.
473 * method.c (deduce_inheriting_ctor): Return bool if the deduction
474 fails.
475 (implicitly_declare_fn): If raises is error_mark_node, call
476 synthesized_method_walk with diag being true.
477
4782021-03-25 Jakub Jelinek <jakub@redhat.com>
479
480 PR c++/99745
481 * decl2.c (grokbitfield): Diagnose bitfields containing bare parameter
482 packs and don't set DECL_BIT_FIELD_REPRESENTATIVE in that case.
483
4842021-03-25 Marek Polacek <polacek@redhat.com>
485
486 PR c++/99331
487 * call.c (build_converted_constant_expr_internal): Don't emit
488 -Wconversion warnings.
489
4902021-03-25 Jakub Jelinek <jakub@redhat.com>
491
492 PR c++/99565
493 * call.c (build_conditional_expr_1): Pass OEP_ADDRESS_OF_SAME_FIELD
494 to operand_equal_p.
495 * cvt.c (convert_to_void): Preserve location_t on COND_EXPR or
496 or COMPOUND_EXPR.
497
bf1f3168
GA
4982021-03-23 Nathan Sidwell <nathan@acm.org>
499
500 PR c++/99283
501 * name-lookup.c (check_module_override): Set global or partition
502 DUP on the binding vector.
503
5042021-03-23 Marek Polacek <polacek@redhat.com>
505
506 PR c++/99318
507 * decl2.c (cp_warn_deprecated_use_scopes): Only call
508 cp_warn_deprecated_use when decl is a namespace, class, or enum.
509
5102021-03-23 Nathan Sidwell <nathan@acm.org>
511
512 PR c++/99239
513 * decl.c (duplicate_decls): Remove assert about maybe-imported
514 artificial decls.
515
5162021-03-23 Jakub Jelinek <jakub@redhat.com>
517
518 PR c++/99650
519 * decl.c (cp_finish_decomp): Diagnose void initializers when
520 using tuple_element and get.
521
8b744f46
GA
5222021-03-22 Nathan Sidwell <nathan@acm.org>
523
524 PR c++/99480
525 * module.cc (depset::hash::make_dependency): Propagate flags for
526 partial specialization.
527 (module_may_redeclare): Handle partial specialization.
528
5292021-03-22 Nathan Sidwell <nathan@acm.org>
530
531 PR c++/99425
532 * cp-tree.h (map_context_from, map_context_to): Delete.
533 (add_mergeable_specialization): Add is_alias parm.
534 * pt.c (add_mergeable_specialization): Add is_alias parm, add them.
535 * module.cc (map_context_from, map_context_to): Delete.
536 (trees_in::decl_value): Add specializations later, adjust call.
537 Drop useless alias lookup. Set duplicate fn parm context.
538 (check_mergeable_decl): Drop context mapping.
539 (trees_in::is_matching_decl): Likewise.
540 (trees_in::read_function_def): Drop parameter context adjustment
541 here.
542
5432021-03-22 Martin Liska <mliska@suse.cz>
544
545 PR c++/99687
546 * module.cc (fini_modules): Call vec_free instead of delete.
547
6af7b307
GA
5482021-03-20 Jakub Jelinek <jakub@redhat.com>
549
550 PR debug/99230
551 * cp-gimplify.c (cp_genericize_r) <case STATEMENT_LIST>: Remove
552 special code, instead call c_genericize_control_stmt.
553
5f256a70
GA
5542021-03-19 Jakub Jelinek <jakub@redhat.com>
555
556 PR c++/99456
557 * constexpr.c (cxx_eval_constant_expression): For CONVERT_EXPR from
558 INDIRECT_TYPE_P to ARITHMETIC_TYPE_P, when !ctx->manifestly_const_eval
559 don't diagnose it, set *non_constant_p nor return t.
560
287e3e84
GA
5612021-03-19 Marek Polacek <polacek@redhat.com>
562
563 PR c++/99500
564 * parser.c (cp_parser_requirement_parameter_list): Handle
565 error_mark_node.
566
5672021-03-18 Marek Polacek <polacek@redhat.com>
568
569 * pt.c (tsubst_copy_and_build) <case FLOAT_EXPR>: Remove.
570
5712021-03-18 Marek Polacek <polacek@redhat.com>
572
573 * pt.c (tsubst_copy_and_build): Add assert.
574
5752021-03-18 Iain Sandoe <iain@sandoe.co.uk>
576
577 PR objc++/49070
578 * parser.c (cp_debug_parser): Add Objective-C++ message
579 state flag.
580 (cp_parser_nested_name_specifier_opt): Allow colon to
581 terminate an assignment-expression when parsing Objective-
582 C++ messages.
583 (cp_parser_objc_message_expression): Set and clear message
584 parsing state on entry and exit.
585 * parser.h (struct cp_parser): Add a context flag for
586 Objective-C++ message state.
587
5882021-03-18 Martin Liska <mliska@suse.cz>
589
590 PR c++/99617
591 * coroutines.cc (struct var_nest_node): Init then_cl and else_cl
592 to NULL.
593
19ac7c94
GA
5942021-03-17 Marek Polacek <polacek@redhat.com>
595
596 PR c++/97973
597 * call.c (conv_unsafe_in_template_p): New.
598 (convert_like): Use it.
599
6002021-03-17 Anthony Sharp <anthonysharp15@gmail.com>
601 Jason Merrill <jason@redhat.com>
602
603 * semantics.c (get_class_access_diagnostic_decl): New
604 function that examines special cases when a parent
605 class causes a private access failure.
606 (enforce_access): Slightly modified to call function
607 above.
608
bc212776
GA
6092021-03-16 Jason Merrill <jason@redhat.com>
610
611 * tree.c (cp_tree_equal): Use real_identical.
612
6132021-03-16 Jakub Jelinek <jakub@redhat.com>
614
615 PR c++/99613
616 * decl.c (expand_static_init): For thread guards, call __cxa_atexit
617 before calling __cxa_guard_release rather than after it. Formatting
618 fixes.
619
6202021-03-16 Martin Liska <mliska@suse.cz>
621 Jason Merrill <jason@redhat.com>
622
623 PR c++/99108
624 * call.c (get_function_version_dispatcher): Handle
625 DECL_LOCAL_DECL_P.
626 * decl.c (maybe_version_functions): Likewise.
627 (maybe_mark_function_versioned): New.
628 * name-lookup.c (push_local_extern_decl_alias): No longer static.
629 * name-lookup.h (push_local_extern_decl_alias): Adjust.
630
6312021-03-16 Nathan Sidwell <nathan@acm.org>
632
633 PR c++/99496
634 * module.cc (trees_out::decl_value): Adjust typedef streaming,
635 indicate whether it is a dependent alias.
636 (trees_in::decl_value): Likewise. Set as dependent alias, if it
637 is one.
638
3c5b6d24
GA
6392021-03-15 Iain Sandoe <iain@sandoe.co.uk>
640
641 PR c++/99047
642 * coroutines.cc (expand_one_await_expression): If the
643 await_ready() expression is not a boolean then convert it
644 as required.
645
6462021-03-15 Iain Sandoe <iain@sandoe.co.uk>
647
648 PR c++/98704
649 * coroutines.cc (build_actor_fn): Make destroy index 1
650 correspond to the abnormal unhandled_exception() exit.
651 Substitute the proxy for the resume index.
652 (coro_rewrite_function_body): Arrange to reset the resume
653 index and make done = true for a rethrown exception from
654 unhandled_exception ().
655 (morph_fn_to_coro): Adjust calls to build_actor_fn and
656 coro_rewrite_function_body.
657
6582021-03-15 Iain Sandoe <iain@sandoe.co.uk>
659
660 PR c++/98480
661 * coroutines.cc (replace_continue): Rewrite continue into
662 'goto label'.
663 (await_statement_walker): Handle await expressions in the
664 initializer, condition and iteration expressions of for
665 loops.
666
6672021-03-15 Iain Sandoe <iain@sandoe.co.uk>
668
669 PR c++/96749
670 * coroutines.cc (flatten_await_stmt): Allow for the case
671 where a target expression variable only has uses in the
672 second part of a compound expression.
673 (maybe_promote_temps): Avoid emiting empty statements.
674
6752021-03-15 Tobias Burnus <tobias@codesourcery.com>
676
677 PR c++/99509
678 * decl.c (cp_finish_decl): For 'omp declare target implicit' vars,
679 ensure that the varpool node is marked as offloadable.
680
6da2762a
GA
6812021-03-12 Nathan Sidwell <nathan@acm.org>
682
683 PR c++/99238
684 * module.cc (depset::hash::add_binding_entity): Assert not
685 visited.
686 (depset::add::add_specializations): Likewise.
687 * name-lookup.c (name_lookup::dedup): New.
688 (name_lookup::~name_lookup): Assert not deduping.
689 (name_lookup::restore_state): Likewise.
690 (name_lookup::add_overload): Replace outlined code with dedup
691 call.
692 (name_lookup::add_value): Likewise.
693 (name_lookup::search_namespace_only): Likewise.
694 (name_lookup::adl_namespace_fns): Likewise.
695 (name_lookup::adl_class_fns): Likewise.
696 (name_lookup::search_adl): Likewise. Add clearing dedup call.
697 (name_lookup::search_qualified): Likewise.
698 (name_lookup::search_unqualified): Likewise.
699
7002021-03-12 Jakub Jelinek <jakub@redhat.com>
701
702 PR c++/99507
703 * call.c (build_over_call): For immediate evaluation of functions
704 that return references, undo convert_from_reference effects before
705 calling cxx_constant_value and call convert_from_reference
706 afterwards.
707
48ff383f
GA
7082021-03-11 Nathan Sidwell <nathan@acm.org>
709
710 PR c++/99248
711 * name-lookup.c (lookup_elaborated_type_1): Access slot not bind
712 when there's a binding vector.
713 * ptree.c (cxx_print_xnode): Lazy flags are no longer a thing.
714
7152021-03-11 Nathan Sidwell <nathan@acm.org>
716
717 PR c++/99528
718 * module.cc (enum merge_kind): Delete MK_type_tmpl_spec,
719 MK_decl_tmpl_spec.
720 (trees_in::decl_value): Adjust add_mergeable_specialization call.
721 (trees_out::get_merge_kind): Adjust detecting a partial template
722 instantiation.
723 (trees_out::key_mergeable): Adjust handling same.
724 (trees_in::key_mergeabvle): Likewise.
725
e9800852
GA
7262021-03-10 Nathan Sidwell <nathan@acm.org>
727
728 PR c++/99423
729 * module.cc (post_load_processing): Assert not gcable.
730 (laxy_load_pendings): Extend no-gc region around
731 post_load_processing.
732
7332021-03-10 Nathan Sidwell <nathan@acm.org>
734
735 PR c++/99508
736 * decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's
737 assembler name to the ns alias.
738
8dc225d3
GA
7392021-03-09 Jakub Jelinek <jakub@redhat.com>
740
741 PR c++/99459
742 * coroutines.cc (build_co_await): Look through NOP_EXPRs in
743 build_special_member_call return value to find the CALL_EXPR.
744 Simplify.
745
7462021-03-09 Nathan Sidwell <nathan@acm.org>
747
748 PR c++/99472
749 * parser.c (cp_parser_diagnose_invalid_type_name): Clarify
750 that C++20 does not yet imply modules.
751
6405b40f
GA
7522021-03-08 Nathan Sidwell <nathan@acm.org>
753
754 PR c++/99436
755 * name-lookup.c (get_cxx_dialect_name): Add cxx23.
756
7572021-03-08 Nathan Sidwell <nathan@acm.org>
758
759 * lex.c (module_token_filter::resume): Ignore module-decls inside
760 header-unit.
761 * parser.c (cp_parser_module_declaration): Reject in header-unit.
762
7632021-03-08 Nathan Sidwell <nathan@acm.org>
764
765 PR c++/99285
766 * cp-tree.h (match_mergeable_specialization)
767 (add_mergeable_specialization): Adjust parms.
768 * module.cc (trees_in::decl_value): Adjust
769 add_mergeable_specialization calls.
770 (trees_out::key_mergeable): Adjust match_mergeable_specialization
771 calls.
772 (specialization_add): Likewise.
773 * pt.c (match_mergeable_specialization): Do not insert.
774 (add_mergeable_specialization): Add to hash table here.
775
0ad6a2e2
GA
7762021-03-06 Patrick Palka <ppalka@redhat.com>
777 Jakub Jelinek <jakub@redhat.com>
778
779 PR c++/99287
780 * constexpr.c (cxx_eval_increment_expression): Pass lval when
781 evaluating the MODIFY_EXPR, and update 'mod' with the result of
782 this evaluation. Check *non_constant_p afterwards. For prefix
783 ops, just return 'mod'.
784
7852021-03-06 Patrick Palka <ppalka@redhat.com>
786 Jakub Jelinek <jakub@redhat.com>
787
788 PR c++/96330
789 * pt.c (tsubst_copy) <case TEMPLATE_ID_EXPR>: Rename local
790 variable 'fn' to 'tmpl'. Handle a variable template-id by
791 calling lookup_template_variable.
792
7932021-03-06 Patrick Palka <ppalka@redhat.com>
794
795 PR c++/99365
796 * pt.c (unify) <case TEMPLATE_TYPE_PARM>: Pass targs as
797 outer_targs to do_auto_deduction.
798 (placeholder_type_constraint_dependent_p): Define.
799 (do_auto_deduction): When processing_template_decl != 0
800 and context is adc_unify and we have constraints, pretend the
801 constraints are satisfied instead of punting. Otherwise don't
802 punt unless placeholder_type_constraint_dependent_p holds.
803 Add some clarifying sanity checks. Add a hack to add missing
804 outermost template levels to outer_args before checking
805 satisfaction. Don't substitute outer_targs into type if it's
806 already been done.
807
ceae9533
GA
8082021-03-05 Marek Polacek <polacek@redhat.com>
809
810 PR c++/99374
811 * call.c (standard_conversion): When converting pointers to
812 member, don't return NULL when the bases are equivalent but
813 incomplete.
814
8152021-03-05 Marek Polacek <polacek@redhat.com>
816
817 PR c++/99120
818 * name-lookup.c (check_local_shadow): Check if the type of decl
819 is non-null before checking TYPE_PTR*.
820
8212021-03-05 Nathan Sidwell <nathan@acm.org>
822
823 PR c++/99245
824 * module.cc (module_state::write_cluster): Relax binding assert.
825
8262021-03-05 Nathan Sidwell <nathan@acm.org>
827
828 PR c++/99377
829 * pt.c (instantiate_decl): Call set_instantiating_module.
830
8312021-03-05 Iain Sandoe <iain@sandoe.co.uk>
832
833 PR c++/98118
834 * coroutines.cc (build_co_await): Use type_build_ctor_call()
835 to determine cases when a CTOR needs to be built.
836 (flatten_await_stmt): Likewise.
837 (morph_fn_to_coro): Likewise.
838
8392021-03-05 Iain Sandoe <iain@sandoe.co.uk>
840
841 PR c++/95616
842 * coroutines.cc (coro_diagnose_throwing_fn): New helper.
843 (coro_diagnose_throwing_final_aw_expr): New helper.
844 (build_co_await): Diagnose throwing final await expression
845 components.
846 (build_init_or_final_await): Diagnose a throwing promise
847 final_suspend() call.
848
8492021-03-05 Iain Sandoe <iain@sandoe.co.uk>
850
851 PR c++/95615
852 * coroutines.cc (struct param_info): Track parameter copies that need
853 a DTOR.
854 (coro_get_frame_dtor): New helper function factored from build_actor().
855 (build_actor_fn): Use coro_get_frame_dtor().
856 (morph_fn_to_coro): Track parameters that need DTORs on exception,
857 likewise the frame promise and the return object. On exception, run the
858 DTORs for these, destroy the frame and then rethrow the exception.
859
8602021-03-05 Nathan Sidwell <nathan@acm.org>
861
862 PR c++/99389
863 * pt.c (instantiate_class_template_1): Set instantiating module
864 here.
865
8662021-03-05 Tobias Burnus <tobias@codesourcery.com>
867
868 PR c/99137
869 * parser.c (cp_parser_oacc_clause_async): Reject comma expressions.
870
67f10d28
GA
8712021-03-04 Jakub Jelinek <jakub@redhat.com>
872
873 PR c++/88146
874 PR c++/99362
875 * cvt.c (convert_to_void): Revert 2019-10-17 changes. Clarify
876 comment.
877
8782021-03-04 Nathan Sidwell <nathan@acm.org>
879
880 PR c++/99170
881 * module.cc (class uintset): Delete.
882 (typedef attached_map_t): A hash map.
883 (attached_table): Use attached_map_t. Adjust uses ...
884 (trees_out::decl_value, trees_in::decl_value): ... here ...
885 (trees_out::key_mergeable): ... here ...
886 (trees_in::key_mergeable): ... here ...
887 (maybe_attach_decl): ... here ...
888 (direct_import): ... and here.
889
8902021-03-04 Nathan Sidwell <nathan@acm.org>
891
892 PR c++/99170
893 * cp-tree.h
894 * lex.c (cxx_dup_lang_specific_decl): Adjust for module_attached_p
895 rename.
896 * module.cc (class pending_key): New.
897 (default_hash_traits<pending_key>): New specialization.
898 (pending_map_t): New typedef.
899 (pending_table): Replace old table.
900 (trees_out::lang_decl_bools): Adjust.
901 (trees_in::lang_decl_bools): Adjust.
902 (trees_in::install_entity): Drop pending member and specialization
903 handling.
904 (find_pending_key): New.
905 (depset::hash::fiund_dependencies): Use it.
906 (pendset_lazy_load): Delete.
907 (module_state::write_cluster): Don't count pendings here. Bye
908 Duff's device-like thing.
909 (module_state::write_pendings): Reimplement.
910 (module_state::read_pendings): Reimplement.
911 (lazy_specializations_p): Delete.
912 (module_state::write): Adjust write_pendings call.
913 (lazy_load_pendings): New.
914 (lazy_load_specializations): Delete.
915 (lazy_load_members): Delete.
916 (init_modules): Adjust.
917 * name-lookup.c (maybe_lazily_declare): Call lazy_load_pendings
918 not lazy_load_members.
919 (note_pending_specializations): Delete.
920 (load_pending_specializations): Delete.
921 * name-lookup.h (BINDING_VECTR_PENDING_SPECIALIZATIONS_P): Delete.
922 (BINDING_VECTOR_PENDING_MEMBERS_P): Delete.
923 (BINDING_VECTR_PENDING_MEMBERS_P): Delete.
924 (note_pending_specializations): Delete.
925 (load_pending_specializations): Delete.
926 * pt.c (lookup_template_class_1): Call lazy_load_pendings not
927 lazy_load_specializations.
928 (instantiate_template_class_1): Likewise.
929 (instantiate_decl): Call lazy_load_pendings.
930 * typeck.c (complete_type): Likewise.
931
f3641ac7
GA
9322021-03-03 Nathan Sidwell <nathan@acm.org>
933
934 PR c++/99170
935 * module.cc (post_load_decls): New.
936 (lazy_snum, recursive_lazy): Move earlier.
937 (module_state::read_cluster): Push cloning onto post_load_decls.
938 (post_load_processing): New. Do the cloning here.
939 (module_state::read_inits): Call post_load_processing.
940 (module_state::read_language): Likewise.
941 (lazy_load_binding, lazy_load_specializations): Likewise
942 (lazy_load_members): Likewise
943
9442021-03-03 Nathan Sidwell <nathan@acm.org>
945
946 PR c++/99170
947 * module.cc (trees_out::decl_value): Stream specialization keys
948 after decl.
949 (trees_in::decl_value): Stream them back and insert after
950 completing the decl.
951 (trees_out::key_mergeable): Drop some streaming here ...
952 (trees_in::key_mergeable): ... and here. Don't insert into
953 specialization tables.
954
9552021-03-03 Patrick Palka <ppalka@redhat.com>
956
957 * constraint.cc (struct sat_info): Document the different
958 meanings of noisy() and diagnose_unsatisfaction_p() during
959 satisfaction and requires-expression evaluation.
960 (tsubst_valid_expression_requirement): Take a sat_info instead
961 of a subst_info. Perform the substitution quietly first. Fold
962 in error-replaying code from diagnose_valid_expression.
963 (tsubst_simple_requirement): Take a sat_info instead of a
964 subst_info.
965 (tsubst_type_requirement_1): New. Fold in error-replaying code
966 from diagnose_valid_type.
967 (tsubst_type_requirement): Use the above. Take a sat_info
968 instead of a subst_info.
969 (tsubst_compound_requirement): Likewise. Fold in
970 error-replaying code from diagnose_compound_requirement.
971 (tsubst_nested_requirement): Take a sat_info instead of a
972 subst_info. Fold in error-replaying code from
973 diagnose_nested_requirement.
974 (tsubst_requirement): Take a sat_info instead of a subst_info.
975 (tsubst_requires_expr): Split into two versions, one that takes
976 a sat_info argument and another that takes a complain and
977 in_decl argument. Remove outdated documentation. Document the
978 effects of the sat_info argument. Don't short-circuit
979 processing of requirements when diagnosing unsatisfaction,
980 mirroring diagnose_requires_expr.
981 (satisfy_nondeclaration_constraint) <case REQUIRES_EXPR>: Remove
982 assert, and se the three-parameter version of tsubst_requires_expr.
983 (diagnose_trait_expr): Make static. Take a template argument
984 vector instead of a parameter mapping.
985 (diagnose_valid_expression): Remove.
986 (diagnose_valid_type): Remove.
987 (diagnose_simple_requirement): Remove.
988 (diagnose_compound_requirement): Remove.
989 (diagnose_type_requirement): Remove.
990 (diagnose_nested_requirement): Remove.
991 (diagnose_requirement): Remove.
992 (diagnose_requires_expr): Remove.
993 (diagnose_atomic_constraint): Take a sat_info instead of a
994 subst_info. Adjust call to diagnose_trait_expr. Call
995 tsubst_requires_expr instead of diagnose_requires_expr.
996 (diagnose_constraints): Remove special casing of REQUIRES_EXPR
997 and just always call constraint_satisfaction_value.
998
9992021-03-03 Patrick Palka <ppalka@redhat.com>
1000
1001 * constexpr.c (cxx_eval_call_expression): Adjust call to
1002 evaluate_concept_check.
1003 (cxx_eval_constant_expression) <case REQUIRES_EXPR>: Use
1004 evaluate_requires_expression instead of
1005 satisfy_constraint_expression.
1006 <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
1007 * constraint.cc (struct sat_info): Adjust comment about which
1008 satisfaction entrypoints use noisy-unsat.
1009 (normalize_template_requirements): Remove (and adjust callers
1010 appropriately).
1011 (normalize_nontemplate_requirements): Likewise.
1012 (tsubst_nested_requirement): Use constraint_satisfaction_value
1013 instead of satisfy_constraint_expression, which'll do the
1014 noisy replaying of ill-formed quiet satisfaction for us.
1015 (decl_satisfied_cache): Adjust comment.
1016 (satisfy_constraint): Rename to ...
1017 (satisfy_normalized_constraints): ... this.
1018 (satisfy_associated_constraints): Remove (and make its
1019 callers check for dependent arguments).
1020 (satisfy_constraint_expression): Rename to ...
1021 (satisfy_nondeclaration_constraints): ... this. Assert that
1022 'args' is empty when 't' is a concept-id. Removing handling
1023 bare constraint-expressions, and handle REQUIRES_EXPRs
1024 specially. Adjust comment accordingly.
1025 (satisfy_declaration_constraints): Assert in the two-parameter
1026 version that 't' is not a TEMPLATE_DECL. Adjust following
1027 removal of normalize_(non)?template_requirements and
1028 satisfy_asociated_constraints.
1029 (constraint_satisfaction_value): Combine the two- and
1030 three-parameter versions in the natural way.
1031 (constraints_satisfied_p): Combine the one- and two-parameter
1032 versions in the natural way. Improve documentation.
1033 (evaluate_requires_expr): Define.
1034 (evaluate_concept_check): Remove 'complain' parameter. Use
1035 constraint_satisfaction_value instead of
1036 satisfy_constraint_expression.
1037 (diagnose_nested_requirement): Adjust following renaming of
1038 satisfy_constraint_expression.
1039 (diagnose_constraints): Handle REQUIRES_EXPR by going through
1040 diagnose_requires_expr directly instead of treating it as a
1041 constraint-expression. Improve documentation.
1042 * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Adjust call
1043 to evaluate_concept_check.
1044 <case REQUIRES_EXPR>: Use evaluate_requires_expr instead of
1045 constraints_satisfied_p.
1046 <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
1047 * cp-tree.h (evaluate_requires_expr): Declare.
1048 (evaluate_concept_check): Remove tsubst_flag_t parameter.
1049 (satisfy_constraint_expression): Remove declaration.
1050 (constraints_satisfied_p): Remove one-parameter declaration.
1051 Add a default argument to the two-parameter declaration.
1052 * cvt.c (convert_to_void): Adjust call to
1053 evaluate_concept_check.
1054
10552021-03-03 Jakub Jelinek <jakub@redhat.com>
1056
1057 PR c++/82959
1058 * call.c (op_is_ordered): Handle TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR
1059 and COMPOUND_EXPR.
1060
10612021-03-03 Marek Polacek <polacek@redhat.com>
1062
1063 PR c++/97034
1064 PR c++/99009
1065 * pt.c (build_deduction_guide): Use INNERMOST_TEMPLATE_ARGS.
1066 (maybe_aggr_guide): Use the original template type where needed. In
1067 a class member template, partially instantiate the result of
1068 collect_ctor_idx_types.
1069 (do_class_deduction): Defer the deduction until the enclosing
1070 scope is non-dependent.
1071
10722021-03-03 Jason Merrill <jason@redhat.com>
1073
1074 PR c++/95675
1075 * call.c (build_temp): Wrap a CALL_EXPR in a TARGET_EXPR
1076 if it didn't get one before.
1077
10782021-03-03 Nathan Sidwell <nathan@acm.org>
1079
1080 PR c++/99344
1081 * module.cc (trees_out::decl_node): Small refactor.
1082 (depset::hash::add_binding_entity): Return true on meeting an
1083 import. Set namespace's import here.
1084 (module_state:write_namespaces): Inform of purview too.
1085 (module_state:read_namespaces): Adjust.
1086 * name-lookup.c (implicitly_export_namespace): Delete.
1087 (do_pushdecl): Don't call it.
1088 (push_namespace): Likewise, set purview.
1089 (add_imported_namespace): Reorder parms.
1090 * name-lookup.h (add_imported_namespace): Alter param ordering.
1091
d97a92dc
GA
10922021-03-02 Martin Sebor <msebor@redhat.com>
1093
1094 PR c++/99251
1095 * class.c (build_base_path): Call build_if_nonnull.
1096 * cp-tree.h (build_if_nonnull): Declare.
1097 * rtti.c (ifnonnull): Rename...
1098 (build_if_nonnull): ...to this. Set no-warning bit on COND_EXPR.
1099 (build_dynamic_cast_1): Adjust to name change.
1100
11012021-03-02 Patrick Palka <ppalka@redhat.com>
1102
1103 PR c++/96443
1104 PR c++/96960
1105 * constraint.cc (type_deducible_p): Don't substitute into the
1106 constraints, and instead just pass 'args' to do_auto_deduction
1107 as the outer template arguments.
1108 (tsubst_parameter_mapping): Remove confused code for handling
1109 placeholder type arguments.
1110 (normalize_placeholder_type_constraint): Define.
1111 (satisfy_constraint_expression): Use it to handle placeholder
1112 'auto' types.
1113 * cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Define.
1114 (PLACEHOLDER_TYPE_CONSTRAINTS): Redefine in terms of the above.
1115 * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: Use
1116 PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
1117 (make_constrained_placeholder_type): Set
1118 PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
1119 (do_auto_deduction): Clarify comments about the outer_targs
1120 parameter. Rework satisfaction of a placeholder type constraint
1121 to pass in the complete set of template arguments directly to
1122 constraints_satisfied_p.
1123 (splice_late_return_type): Use PLACEHOLDER_TYPE_CONSTRAINTS_INFO
1124 instead. Also rebuild the the constraint info on the new auto.
1125
11262021-03-02 Patrick Palka <ppalka@redhat.com>
1127
1128 * constraint.cc (build_parameter_mapping): Rely on the caller to
1129 determine the in-scope template parameters.
1130 (norm_info::norm_info): Delegate the tsubst_flags_t constructor
1131 to the two-parameter constructor. In the two-parameter
1132 constructor, fold in the definition of make_context, set
1133 initial_parms appropriately, and don't set the now-removed
1134 orig_decl member.
1135 (norm_info::make_context): Remove, now that its only use is
1136 inlined into the caller.
1137 (norm_info::update_context): Adjust call to
1138 build_parameter_mapping to pass in the relevant set of in-scope
1139 template parameters.
1140 (norm_info::ctx_parms): Define this member function.
1141 (norm_info::context): Initialize to NULL_TREE.
1142 (norm_info::orig_decl): Remove this data member.
1143 (norm_info::initial_parms): Define this data member.
1144 (normalize_atom): Adjust call to build_parameter_mapping to pass
1145 in the relevant set of in-scope template parameters. Use
1146 info.initial_parms instead of info.orig_decl.
1147 (normalize_constraint_expression): Take a norm_info object
1148 instead of a bool. Cache the result of normalization.
1149 (tsubst_nested_requirement): Call satisfy_constraint_expression
1150 instead of satisfy_constraint, so that we normalize on demand.
1151 (satisfy_constraint_expression): Handle a NESTED_REQ argument.
1152 Adjust call to normalize_constraint_expression.
1153 (finish_nested_requirement): Set the TREE_TYPE of the NESTED_REQ
1154 to current_template_parms.
1155 (diagnose_nested_requirements): Go through
1156 satisfy_constraint_expression, as with tsubst_nested_requirement.
1157
11582021-03-02 Patrick Palka <ppalka@redhat.com>
1159
1160 * constraint.cc (tsubst_parameter_mapping): Canonicalize the
1161 arguments of a substituted TYPE_ARGUMENT_PACK even if we've
1162 started with a TYPE_ARGUMENT_PACK.
1163 (finish_requires_expr): Don't set DECL_CONTEXT and
1164 CONSTRAINT_VAR_P on each of the introduced parameters here.
1165 * parser.c (cp_parser_requirement_parameter_list): Instead set
1166 these fields earlier, here.
1167 * pt.c (do_auto_deduction): Canonicalize the result of
1168 do_auto_deduction. Pass 'complain' to finish_decltype_type.
1169
11702021-03-02 Patrick Palka <ppalka@redhat.com>
1171
1172 * constraint.cc (tsubst_simple_requirement): Just return
1173 boolean_true_node on success.
1174 (tsubst_type_requirement): Likewise.
1175 (tsubst_compound_requirement): Likewise.
1176 (tsubst_nested_requirement): Likewise.
1177 (tsubst_requirement_body): Remove.
1178 (check_constaint_variables): Rename to ...
1179 (check_constraint_variables): ... this.
1180 (tsubst_constraint_variables): Adjust.
1181 (tsubst_requires_expr): Fold tsubst_requirement_body into here.
1182
88938886
GA
11832021-03-01 Nathan Sidwell <nathan@acm.org>
1184
1185 PR c++/99294
1186 * class.c (fixup_type_variants): Propagate mode, precision,
1187 alignment & emptiness.
1188 * module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW.
1189 (trees_in::tree_node): Rematerialize alignment here.
1190
ec9dc4fa
GA
11912021-02-27 Jason Merrill <jason@redhat.com>
1192
1193 PR c++/90333
1194 * parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes
1195 between () and ->.
1196
06a9f20f
GA
11972021-02-26 Jakub Jelinek <jakub@redhat.com>
1198
1199 * parser.c (cp_parser_lambda_declarator_opt): Implement
1200 P1102R2 - Down with ()! Make ()s optional before lambda specifiers
1201 for -std={c,gnu}++2b or with pedwarn in earlier versions.
1202
12032021-02-26 Jakub Jelinek <jakub@redhat.com>
1204
1205 PR c++/95451
1206 * lambda.c (is_lambda_ignored_entity): Before checking for
1207 LAMBDA_FUNCTION_P, use OVL_FIRST. Drop FUNCTION_DECL check.
1208
12092021-02-26 Jason Merrill <jason@redhat.com>
1210
1211 PR c++/98810
1212 * pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const
1213 to a class non-type template argument that needs it.
1214
12152021-02-26 Patrick Palka <ppalka@redhat.com>
1216
1217 PR c++/98990
1218 * pt.c (splice_late_return_type): Rebuild the entire return type
1219 if we have to adjust the level of an auto within.
1220 (type_uses_auto): Adjust call to find_type_usage.
1221 * type-utils.h (find_type_usage): Revert r10-6571 change that
1222 made this function return a pointer to the auto node.
1223
daa68844
GA
12242021-02-25 Patrick Palka <ppalka@redhat.com>
1225
1226 PR c++/99213
1227 PR c++/94521
1228 * error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of
1229 TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope.
1230
12312021-02-25 Patrick Palka <ppalka@redhat.com>
1232
1233 PR c++/99103
1234 * pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'.
1235 (maybe_aggr_guide): Fix order of arguments to is_spec_or_derived.
1236
12372021-02-25 Marek Polacek <polacek@redhat.com>
1238
1239 DR 1312
1240 PR c++/99176
1241 * constexpr.c (is_std_construct_at): New overload.
1242 (is_std_allocator_allocate): New overload.
1243 (cxx_eval_call_expression): Use the new overloads.
1244 (cxx_eval_constant_expression): Reject casting
1245 from void * as per DR 1312. Don't check can_convert.
1246
12472021-02-25 Iain Sandoe <iain@sandoe.co.uk>
1248
1249 PR c++/97587
1250 * coroutines.cc (struct param_info): Track rvalue refs.
1251 (morph_fn_to_coro): Track rvalue refs, and call the promise
1252 CTOR with the frame copy of passed parms.
1253
12542021-02-25 Iain Sandoe <iain@sandoe.co.uk>
1255
1256 PR c++/95822
1257 * coroutines.cc (morph_fn_to_coro): Unconditionally remove any
1258 set throwing_cleanup marker.
1259
12602021-02-25 Nathan Sidwell <nathan@acm.org>
1261
1262 PR c++/99166
1263 * module.cc (module_state::inform_cmi_p): Renamed field.
1264 (module_state::do_import): Adjust.
1265 (init_modules, finish_module_processing): Likewise.
1266 (handle_module_option): Likewise.
1267
12682021-02-25 Nathan Sidwell <nathan@acm.org>
1269
1270 PR c++/98318
1271 * mapper-client.cc (module_client::open_module_client): Fix typo
1272 of fd init.
1273
4028d01a
GA
12742021-02-24 Nathan Sidwell <nathan@acm.org>
1275
1276 PR c++/98718
1277 * module.cc (ool): New indirection vector.
1278 (loc_spans::maybe_propagate): Location is not optional.
1279 (loc_spans::open): Likewise. Assert monotonically advancing.
1280 (module_for_ordinary_loc): Use ool indirection vector.
1281 (module_state::write_prepare_maps): Do not count empty macro
1282 expansions. Elide empty spans.
1283 (module_state::write_macro_maps): Skip empty expansions.
1284 (ool_cmp): New qsort comparator.
1285 (module_state::write): Create and destroy ool vector.
1286 (name_pending_imports): Fix dump push/pop.
1287 (preprocess_module): Likewise. Add more dumping.
1288 (preprocessed_module): Likewise.
1289
12902021-02-24 Iain Sandoe <iain@sandoe.co.uk>
1291
1292 PR c++/96251
1293 * coroutines.cc (coro_common_keyword_context_valid_p): Suppress
1294 error reporting when instantiating for a constexpr.
1295
71e24b06
GA
12962021-02-23 Nathan Sidwell <nathan@acm.org>
1297
1298 PR c++/99208
1299 * decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
1300 identity.
1301
13022021-02-23 Patrick Palka <ppalka@redhat.com>
1303
1304 PR c++/95468
1305 * pt.c (tsubst_copy_and_build) <case BASELINK>: New case, copied
1306 over from tsubst_copy.
1307
13082021-02-23 Patrick Palka <ppalka@redhat.com>
1309
1310 * pt.c (instantiation_dependent_expression_p): Check
1311 processing_template_decl before calling
1312 potential_constant_expression.
1313
2f5765cf
GA
13142021-02-22 Nathan Sidwell <nathan@acm.org>
1315
1316 PR c++/99174
1317 * module.cc (struct module_state): Add visited_p flag.
1318 (name_pending_imports): Use it to avoid duplicate requests.
1319 (preprocess_module): Don't read preprocessor state if we failed to
1320 load a module's config.
1321
13222021-02-22 Nathan Sidwell <nathan@acm.org>
1323
1324 PR c++/99153
1325 * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
1326 to common-path.
1327 * module.cc (set_defining_module): Add assert.
1328
50352c6c
GA
13292021-02-19 Nathan Sidwell <nathan@acm.org>
1330
1331 PR c++/98741
1332 * module.cc (pending_imports): New.
1333 (declare_module): Adjust test condition.
1334 (name_pending_imports): New.
1335 (preprocess_module): Reimplement using pending_imports.
1336 (preprocessed_module): Move name-getting to name_pending_imports.
1337 * name-lookup.c (append_imported_binding_slot): Assert module
1338 ordering is increasing.
1339
13402021-02-19 Nathan Sidwell <nathan@acm.org>
1341
1342 * module.cc (note_cmis): New.
1343 (struct module_state): Add inform_read_p bit.
1344 (module_state::do_import): Inform of CMI location, if enabled.
1345 (init_modules): Canonicalize note_cmis entries.
1346 (handle_module_option): Handle -flang-info-module-read=FOO.
1347
13482021-02-19 Jason Merrill <jason@redhat.com>
1349
1350 PR c++/96926
1351 * call.c (perfect_conversion_p): Limit rvalueness
1352 test to reference bindings.
1353
13542021-02-19 Jason Merrill <jason@redhat.com>
1355
1356 PR c++/96926
1357 * call.c (perfect_conversion_p): New.
1358 (perfect_candidate_p): New.
1359 (add_candidates): Ignore templates after a perfect non-template.
1360
bf81237e
GA
13612021-02-18 Nathan Sidwell <nathan@acm.org>
1362
1363 PR c++/99023
1364 * module.cc (canonicalize_header_name): Use
1365 cpp_probe_header_unit.
1366 (maybe_translate_include): Fix note_includes comparison.
1367 (init_modules): Fix note_includes string termination.
1368
13692021-02-18 Jakub Jelinek <jakub@redhat.com>
1370
1371 PR c++/99132
1372 * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Use
1373 cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check
1374 for immediate function calls.
1375
acc0ee5c
GA
13762021-02-17 Nathan Sidwell <nathan@acm.org>
1377
1378 PR c++/99023
1379 * module.cc (struct macro_export): Add GTY markers.
1380 (macro_exports): Likewise, us a va_gc Vector.
1381
13822021-02-17 Jakub Jelinek <jakub@redhat.com>
1383
1384 PR sanitizer/99106
1385 * init.c (build_zero_init_1): For flexible array members just return
1386 NULL_TREE instead of returning empty CONSTRUCTOR with non-complete
1387 ARRAY_TYPE.
1388
13892021-02-17 Nathan Sidwell <nathan@acm.org>
1390
1391 PR c++/99116
1392 * name-lookup.c (do_pushdecl): Don't peek under template_parm
1393 bindings here ...
1394 (set_identifier_type_value_with_scope): ... or here.
1395 (do_pushtag): Only set_identifier_type_value_with_scope at
1396 non-class template parm scope, and use parent scope.
1397
13982021-02-17 Nathan Sidwell <nathan@acm.org>
1399
1400 PR c++/99071
1401 * name-lookup.c (maybe_record_mergeable_decl): Deref the correct
1402 pointer.
1403
14042021-02-17 Patrick Palka <ppalka@redhat.com>
1405
1406 PR debug/96997
1407 PR c++/94034
1408 * tree.c (build_aggr_init_expr): Revert r10-7718 change.
1409
fab095da
GA
14102021-02-12 Nathan Sidwell <nathan@acm.org>
1411
1412 * module.cc (module_state::write_cluster): Check bindings for
1413 imported using-decls.
1414
14152021-02-12 Nathan Sidwell <nathan@acm.org>
1416
1417 PR c++/99040
1418 * module.cc (trees_in::decl_value): Call add_module_namespace_decl
1419 for new namespace-scope entities.
1420 (module_state::read_cluster): Don't call add_module_decl here.
1421 * name-lookup.h (add_module_decl): Rename to ...
1422 (add_module_namespace_decl): ... this.
1423 * name-lookup.c (newbinding_bookkeeping): Move into ...
1424 (do_pushdecl): ... here. Its only remaining caller.
1425 (add_module_decl): Rename to ...
1426 (add_module_namespace_decl): ... here. Add checking-assert for
1427 circularity. Don't call newbinding_bookkeeping, just extern_c
1428 checking and incomplete var checking.
1429
14302021-02-12 Nathan Sidwell <nathan@acm.org>
1431
1432 PR c++/99039
1433 PR c++/99040
1434 * cp-tree.h (CPTI_GLOBAL_TYPE): Delete.
1435 (global_type_node): Delete.
1436 (IDENTIFIER_TYPE_VALUE): Delete.
1437 (IDENTIFIER_HAS_TYPE_VALUE): Delete.
1438 (get_type_value): Delete.
1439 * name-lookup.h (identifier_type_value): Delete.
1440 * name-lookup.c (check_module_override): Don't
1441 SET_IDENTIFIER_TYPE_VALUE here.
1442 (do_pushdecl): Nor here.
1443 (identifier_type_value_1, identifier_type_value): Delete.
1444 (set_identifier_type_value_with_scope): Only
1445 SET_IDENTIFIER_TYPE_VALUE for local and class scopes.
1446 (pushdecl_nanmespace_level): Remove shadow stack nadgering.
1447 (do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE.
1448 * call.c (check_dtor_name): Use lookup_name.
1449 * decl.c (cxx_init_decl_processing): Drop global_type_node.
1450 * decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE
1451 here.
1452 * init.c (get_type_value): Delete.
1453 * pt.c (instantiate_class_template_1): Don't call pushtag or
1454 SET_IDENTIFIER_TYPE_VALUE here.
1455 (tsubst): Assert never an identifier.
1456 (dependent_type_p): Drop global_type_node assert.
1457 * typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE
1458 to determine ctorness.
1459
14602021-02-12 Jakub Jelinek <jakub@redhat.com>
1461
1462 PR c++/97742
1463 * parser.c (cp_parser_requirement_seq): Stop iterating after reaching
1464 CPP_EOF.
1465
14662021-02-12 Jason Merrill <jason@redhat.com>
1467
1468 PR c++/97246
1469 PR c++/94546
1470 * pt.c (extract_fnparm_pack): Check DECL_PACK_P here.
1471 (register_parameter_specializations): Not here.
1472
0c5cdb31
GA
14732021-02-11 Marek Polacek <polacek@redhat.com>
1474
1475 PR c++/95888
1476 * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking
1477 for the partial instantiation.
1478
14792021-02-11 Jakub Jelinek <jakub@redhat.com>
1480
1481 PR c++/99033
1482 * init.c (build_zero_init_1): Handle zero initialiation of
1483 flexible array members like initialization of [0] arrays.
1484 Use integer_minus_onep instead of comparison to integer_minus_one_node
1485 and integer_zerop instead of comparison against size_zero_node.
1486 Formatting fixes.
1487
14882021-02-11 Marek Polacek <polacek@redhat.com>
1489
1490 PR c++/99063
1491 * semantics.c (finish_do_stmt): Check for unexpanded parameter packs.
1492
14932021-02-11 Patrick Palka <ppalka@redhat.com>
1494
1495 PR c++/97582
1496 * name-lookup.c (op_unqualified_lookup): Handle an ambiguous
1497 lookup result by discarding it if the first element is a
1498 class-scope declaration, otherwise return it.
1499 (push_operator_bindings): Handle an ambiguous lookup result by
1500 doing push_local_binding on each element in the list.
1501
15022021-02-11 Marek Polacek <polacek@redhat.com>
1503
1504 * parser.c (cp_parser_selection_statement): Use vec_free.
1505
4b37c3ea
GA
15062021-02-10 Jakub Jelinek <jakub@redhat.com>
1507
1508 PR c++/98988
1509 PR c++/99031
1510 * constexpr.c: Include cgraph.h.
1511 (cxx_eval_call_expression): Call varpool_node::finalize_decl on
1512 heap artificial vars.
1513 (cxx_eval_outermost_constant_expr): Remove varpool nodes for
1514 heap artificial vars.
1515
15162021-02-10 Nathan Sidwell <nathan@acm.org>
1517
1518 PR c++/99030
1519 * pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the
1520 answer if there's no local specialization.
1521
0a91b73e
GA
15222021-02-09 Nathan Sidwell <nathan@acm.org>
1523
1524 PR c++/98944
1525 * module.cc (module_state::is_rooted): Rename to ...
1526 (module_state::has_location): ... here. Adjust callers.
1527 (module_state::read_partitions): Adjust validity check.
1528 Don't overwrite a known location.
1529
15302021-02-09 Jason Merrill <jason@redhat.com>
1531
1532 PR c++/96905
1533 * pt.c (mark_decl_instantiated): Exit early if consteval.
1534
15352021-02-09 Jason Merrill <jason@redhat.com>
1536
1537 PR c++/98326
1538 PR c++/20408
1539 * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref
1540 parm.
1541
15422021-02-09 Jason Merrill <jason@redhat.com>
1543
1544 PR c++/98994
1545 PR c++/97566
1546 * constexpr.c (cxx_eval_store_expression): Only skip empty fields in
1547 RECORD_TYPE.
1548
2da7ce23
GA
15492021-02-08 Nathan Sidwell <nathan@acm.org>
1550
1551 * decl.c (start_cleanup_fn): Push function into
1552 namespace.
1553
15542021-02-08 Nathan Sidwell <nathan@acm.org>
1555
1556 PR c++/98531
1557 * cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare.
1558 * decl.c (push_abi_namespace, pop_abi_namespace): Moved
1559 from rtti.c, add default namespace arg.
1560 (check_redeclaration_exception_specification): Allow a lazy
1561 builtin's eh spec to differ from an lready-declared user
1562 declaration.
1563 (declare_global_var): Use push/pop_abi_namespace.
1564 (get_atexit_node): Push the fndecl into a namespace.
1565 * rtti.c (push_abi_namespace, pop_abi_namespace): Moved to
1566 decl.c.
1567
15682021-02-08 Marek Polacek <polacek@redhat.com>
1569
1570 * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo.
1571
1ed59127
GA
15722021-02-05 Marek Polacek <polacek@redhat.com>
1573
1574 PR c++/98947
1575 * call.c (build_conditional_expr_1): Don't call mark_lvalue_use
1576 on arg2/arg3.
1577 * expr.c (mark_use) <case MODIFY_EXPR>: Don't check read_p when
1578 issuing the -Wvolatile warning. Only set TREE_THIS_VOLATILE if
1579 a warning was emitted.
1580
15812021-02-05 Marek Polacek <polacek@redhat.com>
1582
1583 PR c++/96462
1584 * name-lookup.c (lookup_using_decl): Hoist the destructor check.
1585
15862021-02-05 Jakub Jelinek <jakub@redhat.com>
1587
1588 PR c++/97878
1589 * decl.c (check_array_initializer): For structured bindings, require
1590 the array type to be complete.
1591
a19dd5e6
GA
15922021-02-04 Jason Merrill <jason@redhat.com>
1593
1594 PR c++/98717
1595 * constraint.cc (build_concept_check_arguments): Remove assert.
1596 (build_concept_check): Allow empty args.
1597
15982021-02-04 Tom Greenslade (thomgree) <thomgree@cisco.com>
1599
1600 PR c++/90926
1601 * call.c (can_convert_array): Extend to handle all valid aggregate
1602 initializers of an array; including by string literals, not just by
1603 brace-init-list.
1604 (build_aggr_conv): Call can_convert_array more often, not just in
1605 brace-init-list case.
1606 * typeck2.c (array_string_literal_compatible_p): New function.
1607 (digest_init_r): call array_string_literal_compatible_p
1608 * cp-tree.h: (array_string_literal_compatible_p): Declare.
1609
16102021-02-04 Jason Merrill <jason@redhat.com>
1611
1612 PR c++/98802
1613 * pt.c (do_class_deduction): No aggregate guide if any_dguides_p.
1614
16152021-02-04 Jason Merrill <jason@redhat.com>
1616
1617 PR c++/95192
1618 * pt.c (tsubst_attribute): Handle error.
1619 (apply_late_template_attributes): Return false on error.
1620 (tsubst_function_decl): Check its return value.
1621 (tsubst_decl): Likewise.
1622 (push_template_decl): Assert current_template_parms.
1623 (tsubst_template_decl): Set current_template_parms.
1624
9faaa807
GA
16252021-02-03 Marek Polacek <polacek@redhat.com>
1626
1627 PR c++/98951
1628 * call.c (struct z_candidate): Mark rewritten and reversed as const.
1629 (struct NonPublicField): Mark operator() as const.
1630 (struct NonTrivialField): Likewise.
1631
16322021-02-03 Jason Merrill <jason@redhat.com>
1633
1634 PR c++/98926
1635 PR c++/98570
1636 * pt.c (spec_hasher::equal): Set processing_template_decl.
1637 * Make-lang.in (check-g++-strict-gc): Add --param
1638 hash-table-verification-limit=10000.
1639
16402021-02-03 Marek Polacek <polacek@redhat.com>
1641
1642 PR c++/98899
1643 * parser.c (cp_parser_class_specifier_1): Use any possible
1644 DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN.
1645 (cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS.
1646 * pt.c (tsubst_exception_specification): Stash new_specs into
1647 DEFPARSE_INSTANTIATIONS.
1648 * tree.c (fixup_deferred_exception_variants): Use
1649 UNPARSED_NOEXCEPT_SPEC_P.
1650
548b75d8
GA
16512021-02-02 Jason Merrill <jason@redhat.com>
1652
1653 PR c++/98929
1654 PR c++/96199
1655 * error.c (dump_expr): Ignore dummy object.
1656 * pt.c (tsubst_baselink): Handle dependent scope.
1657
f7884fb1
GA
16582021-02-01 Patrick Palka <ppalka@redhat.com>
1659
1660 PR c++/98295
1661 * constexpr.c (cxx_eval_array_reference): Also set
1662 new_ctx.object when setting new_ctx.ctor.
1663
16642021-02-01 Marek Polacek <polacek@redhat.com>
1665
1666 PR c++/98355
1667 * parser.c (cp_parser_has_attribute_expression): Use
1668 uses_template_parms instead of type_dependent_expression_p.
1669
16702021-02-01 Jason Merrill <jason@redhat.com>
1671
1672 PR c++/98570
1673 * cp-tree.h: Declare it.
1674 * pt.c (comparing_dependent_aliases): New flag.
1675 (template_args_equal, spec_hasher::equal): Set it.
1676 (dependent_alias_template_spec_p): Assert that we don't
1677 get non-types other than error_mark_node.
1678 (instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY
1679 on complex alias specializations. Set TYPE_DEPENDENT_P here.
1680 (tsubst_decl): Not here.
1681 * module.cc (module_state::read_cluster): Set
1682 comparing_dependent_aliases instead of
1683 comparing_specializations.
1684 * tree.c (cp_tree_equal): Remove comparing_specializations
1685 module handling.
1686 * typeck.c (structural_comptypes): Adjust.
1687 (comptypes): Remove comparing_specializations handling.
1688
2900f2f2
GA
16892021-01-29 Nathan Sidwell <nathan@acm.org>
1690
1691 PR c++/98843
1692 * module.cc (module_state_config): Add num_entities field.
1693 (module_state::read_entities): The entity_ary span is
1694 already allocated.
1695 (module_state::write_config): Write num_entities.
1696 (module_state::read_config): Read num_entities.
1697 (module_state::write): Set config's num_entities.
1698 (module_state::read_initial): Allocate the entity ary
1699 span here.
1700 (module_state::read_language): Do not set entity_lwm
1701 here.
1702
17032021-01-29 Marek Polacek <polacek@redhat.com>
1704
1705 PR c++/96137
1706 * parser.c (cp_parser_class_name): If parser->scope is
1707 error_mark_node, return it, otherwise continue.
1708
85d04a2e
GA
17092021-01-28 Jakub Jelinek <jakub@redhat.com>
1710
1711 PR c++/98841
1712 * typeck.c (build_x_indirect_ref): For *this, return current_class_ref.
1713
17142021-01-28 Jakub Jelinek <jakub@redhat.com>
1715
1716 PR c++/33661
1717 PR c++/98847
1718 * decl.c (cp_finish_decl): For register vars with asmspec in templates
1719 call set_user_assembler_name and set DECL_HARD_REGISTER.
1720 * pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars,
1721 pass asmspec_tree to cp_finish_decl.
1722
17232021-01-28 Nathan Sidwell <nathan@acm.org>
1724
1725 PR c++/98770
1726 * module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME
1727 check order.
1728 (trees_in::decl_value): Do typedef frobbing only when installing
1729 a new typedef, adjust is_matching_decl call. Swap is_typedef
1730 & TYPE_NAME check.
1731 (trees_in::is_matching_decl): Add is_typedef parm. Adjust variable
1732 names and deal with typedef checking.
1733
aa69f0a8
GA
17342021-01-27 Jason Merrill <jason@redhat.com>
1735
1736 PR c++/97874
1737 * name-lookup.c (lookup_using_decl): Clean up handling
1738 of dependency and inherited constructors.
1739 (finish_nonmember_using_decl): Handle DECL_DEPENDENT_P.
1740 * pt.c (tsubst_expr): Handle DECL_DEPENDENT_P.
1741
e62bb7f0
GA
17422021-01-26 Jason Merrill <jason@redhat.com>
1743
1744 PR c++/97474
1745 * call.c (type_passed_as): Don't mark invisiref restrict.
1746
17472021-01-26 Jason Merrill <jason@redhat.com>
1748
1749 PR c++/97566
1750 PR c++/98463
1751 * class.c (layout_class_type): An empty field gets size 0.
1752 (is_empty_field): New.
1753 (check_bases): Check it.
1754 * cp-tree.h (is_empty_field): Declare it.
1755 * constexpr.c (cxx_eval_store_expression): Check it.
1756 (cx_check_missing_mem_inits): Likewise.
1757 * init.c (perform_member_init): Likewise.
1758 * typeck2.c (process_init_constructor_record): Likewise.
1759
161e4c08
GA
17602021-01-25 Martin Sebor <msebor@redhat.com>
1761
1762 PR c++/98646
1763 * cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING.
1764
17652021-01-25 Jason Merrill <jason@redhat.com>
1766
1767 PR c++/98463
1768 * constexpr.c (get_or_insert_ctor_field): Add check.
1769 (cxx_eval_store_expression): Handle discontinuity of refs.
1770
6b163337
GA
17712021-01-23 Anthony Sharp <anthonysharp15@gmail.com>
1772
1773 * call.c (complain_about_access): Altered function.
1774 * cp-tree.h (complain_about_access): Changed parameters of function.
1775 (get_parent_with_private_access): Declared new function.
1776 * search.c (get_parent_with_private_access): Defined new function.
1777 * semantics.c (enforce_access): Modified function.
1778 * typeck.c (complain_about_unrecognized_member): Updated function
1779 arguments in complain_about_access.
1780
17812021-01-23 Patrick Palka <ppalka@redhat.com>
1782
1783 PR c++/97399
1784 * cp-tree.h (shared_member_p): Adjust declaration.
1785 * parser.c (cp_parser_init_declarator): If the storage class
1786 specifier is sc_static, pass true for static_p to
1787 cp_parser_declarator.
1788 (cp_parser_direct_declarator): Don't do inject_this_parm when
1789 the declarator is a friend.
1790 * search.c (shared_member_p): Change return type to bool and
1791 adjust function body accordingly. Return false for a dependent
1792 USING_DECL instead of aborting.
1793 * semantics.c (finish_qualified_id_expr): Rely on shared_member_p
1794 even when type-dependent.
1795
8502e23d
GA
17962021-01-22 Marek Polacek <polacek@redhat.com>
1797
1798 PR c++/96623
1799 * parser.c (inject_parm_decls): Remove a redundant assignment.
1800 (cp_parser_class_specifier_1): Clear current_class_{ptr,ref}
1801 before calling inject_parm_decls.
1802
18032021-01-22 Jason Merrill <jason@redhat.com>
1804
1805 PR c++/98744
1806 * call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P.
1807
18082021-01-22 Jakub Jelinek <jakub@redhat.com>
1809
1810 PR sanitizer/95693
1811 * init.c (build_zero_init_1): Revert the 2018-03-06 change to
1812 return build_zero_cst for reference types.
1813 * typeck2.c (process_init_constructor_record): Instead call
1814 build_zero_cst here during error recovery instead of build_zero_init.
1815
18162021-01-22 Marek Polacek <polacek@redhat.com>
1817
1818 PR c++/98545
1819 * mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses
1820 warnings regardless of abi_version_at_least.
1821 (write_expression): When the expression is a dependent name
1822 and an operator name, write "on" before writing its name.
1823
18242021-01-22 Marek Polacek <polacek@redhat.com>
1825
1826 PR c++/97966
1827 * pt.c (instantiate_class_template_1): Instantiate members
1828 marked with attribute used only after we're done instantiating
1829 the class.
1830
7559d465
GA
18312021-01-21 Patrick Palka <ppalka@redhat.com>
1832
1833 PR c++/71879
1834 * semantics.c (finish_decltype_type): Set up a cp_unevaluated
1835 sentinel at the start of the function. Remove a now-redundant
1836 manual adjustment of cp_unevaluated_operand.
1837
18382021-01-21 Nathan Sidwell <nathan@acm.org>
1839
1840 PR c++/98624
1841 * module.cc (depset::hash::find_dependencies): Add
1842 module arg.
1843 (trees_out::core_vals): Check state before calling
1844 write_location.
1845 (sort_cluster, module_state::write): Adjust
1846 find_dependencies call.
1847
18482021-01-21 Jakub Jelinek <jakub@redhat.com>
1849
1850 PR c++/98672
1851 * constexpr.c (check_for_return_continue_data): Add break_stmt member.
1852 (check_for_return_continue): Also look for BREAK_STMT. Handle
1853 SWITCH_STMT by ignoring break_stmt from its body.
1854 (potential_constant_expression_1) <case FOR_STMT>,
1855 <case WHILE_STMT>: If the condition isn't constant true, check if
1856 the loop body can contain a return stmt.
1857 <case SWITCH_STMT>: Adjust check_for_return_continue_data initializer.
1858 <case IF_STMT>: If recursion with tf_none is successful,
1859 merge *jump_target from the branches - returns with highest priority,
1860 breaks or continues lower. If then branch is potentially constant and
1861 doesn't return, check the else branch if it could return, break or
1862 continue.
1863
18642021-01-21 Nathan Sidwell <nathan@acm.org>
1865
1866 PR c++/98530
1867 * name-lookup.c (lookup_class_binding): Rearrange a stat-hack.
1868
b93d0e36
GA
18692021-01-20 Nathan Sidwell <nathan@acm.org>
1870
1871 * module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of
1872 signed type.
1873
18742021-01-20 Patrick Palka <ppalka@redhat.com>
1875
1876 PR c++/95434
1877 * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: If tsubsting
1878 CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM,
1879 adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
1880
18812021-01-20 Patrick Palka <ppalka@redhat.com>
1882
1883 PR c++/82613
1884 * parser.c (cp_parser_class_head): Defer access checking when
1885 parsing the base-clause until all bases are seen and attached
1886 to the class type.
1887 * pt.c (instantiate_class_template): Likewise when substituting
1888 into dependent bases.
1889
18902021-01-20 Jakub Jelinek <jakub@redhat.com>
1891
1892 PR c++/98742
1893 * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_DETACH>: If
1894 error_operand_p, remove clause without further checking. Check
1895 for non-NULL TYPE_NAME.
1896
f35a4f96
GA
18972021-01-19 Marek Polacek <polacek@redhat.com>
1898
1899 PR c++/98659
1900 * pt.c (maybe_instantiate_noexcept): Return false if FN is
1901 error_mark_node.
1902
19032021-01-19 Marek Polacek <polacek@redhat.com>
1904
1905 PR c++/98687
1906 * name-lookup.c (push_using_decl_bindings): New, broken out of...
1907 (finish_nonmember_using_decl): ...here.
1908 * name-lookup.h (push_using_decl_bindings): Update declaration.
1909 * pt.c (tsubst_expr): Update the call to push_using_decl_bindings.
1910
19112021-01-19 Patrick Palka <ppalka@redhat.com>
1912
1913 PR c++/41437
1914 PR c++/58993
1915 * search.c (friend_accessible_p): If scope is a hidden friend
1916 defined inside a dependent class, consider access from the
1917 class.
1918 * parser.c (cp_parser_late_parsing_for_member): Don't push a
1919 dk_no_check access state.
1920
19212021-01-19 Marek Polacek <polacek@redhat.com>
1922
1923 PR c++/98333
1924 * parser.c (cp_parser_class_specifier_1): Perform late-parsing
1925 of NSDMIs before late-parsing of noexcept-specifiers.
1926
19272021-01-19 Nathan Sidwell <nathan@acm.org>
1928
1929 * module.cc (identifier): Merge overloads.
1930
19312021-01-19 Nathan Sidwell <nathan@acm.org>
1932
1933 PR c++/98624
1934 * module.cc (trees_out::write_location): Make static.
1935
59cf67d1
GA
19362021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
1937
1938 * parser.c (cp_parser_omp_clause_detach): New.
1939 (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH.
1940 (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
1941 * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
1942 * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
1943 Prevent use of detach with mergeable and overriding the data sharing
1944 mode of the event handle.
1945
2f7f0d32
GA
19462021-01-15 Nathan Sidwell <nathan@acm.org>
1947
1948 PR c++/98538
1949 * tree.c (cp_build_qualified_type_real): Propagate an array's
1950 dependentness to the copy, if known.
1951
19522021-01-15 Jason Merrill <jason@redhat.com>
1953
1954 PR c++/98642
1955 * call.c (unsafe_return_slot_p): Return int.
1956 (init_by_return_slot_p): Split out from...
1957 (unsafe_copy_elision_p): ...here.
1958 (unsafe_copy_elision_p_opt): New name for old meaning.
1959 (build_over_call): Adjust.
1960 (make_safe_copy_elision): New.
1961 * typeck2.c (split_nonconstant_init_1): Elide copy from safe
1962 list-initialization.
1963 * cp-tree.h: Adjust.
1964
19652021-01-15 Jason Merrill <jason@redhat.com>
1966
1967 * call.c (base_ctor_for, make_base_init_ok): New.
1968 (build_over_call): Use make_base_init_ok.
1969
19702021-01-15 Jason Merrill <jason@redhat.com>
1971
1972 PR c++/63707
1973 * tree.c (build_vec_init_expr): Don't call build_vec_init_elt
1974 if we got a CONSTRUCTOR.
1975
19762021-01-15 Nathan Sidwell <nathan@acm.org>
1977
1978 PR c++/98591
1979 * lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only.
1980
5fff80fd
GA
19812021-01-14 Jason Merrill <jason@redhat.com>
1982
1983 * typeck2.c (process_init_constructor_record): Use fldtype
1984 variable consistently.
1985
19862021-01-14 Nathan Sidwell <nathan@acm.org>
1987
1988 PR c++/98372
1989 * tree.c (cp_tree_equal): Correct map_context logic.
1990
be0851b8
GA
19912021-01-13 Marek Polacek <polacek@redhat.com>
1992
1993 PR c++/98231
1994 * name-lookup.c (push_using_decl_bindings): New.
1995 * name-lookup.h (push_using_decl_bindings): Declare.
1996 * pt.c (tsubst_expr): Call push_using_decl_bindings.
1997
19982021-01-13 Nathan Sidwell <nathan@acm.org>
1999
2000 PR c++/98626
2001 * module.cc (module_add_import_initializers): Pass a
2002 zero-element argument vector.
2003
6851dda2
GA
20042021-01-12 Patrick Palka <ppalka@redhat.com>
2005
2006 PR c++/98611
2007 * tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit
2008 the template of a CTAD placeholder.
2009
20102021-01-12 Marek Polacek <polacek@redhat.com>
2011
2012 PR c++/98620
2013 * typeck2.c (process_init_constructor_record): Don't emit
2014 -Wmissing-field-initializers warnings in unevaluated contexts.
2015
67fbb7f0
GA
20162021-01-11 Jakub Jelinek <jakub@redhat.com>
2017
2018 PR c++/98481
2019 * class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1
2020 for types.
2021 (mark_abi_tags_r): Likewise.
2022 * decl2.c (min_vis_r): Likewise.
2023 * tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through
2024 typedefs.
2025
bf5cbb9e
GA
20262021-01-08 Patrick Palka <ppalka@redhat.com>
2027
2028 PR c++/98551
2029 * constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P
2030 instead of AGGREGATE_TYPE_P before calling replace_result_decl.
2031
20322021-01-08 Patrick Palka <ppalka@redhat.com>
2033
2034 PR c++/98515
2035 * semantics.c (check_accessibility_of_qualified_id): Punt if
2036 we're checking access of a scoped non-static member inside a
2037 class template.
2038
7d187e4f
GA
20392021-01-07 Jakub Jelinek <jakub@redhat.com>
2040
2041 PR c++/98329
2042 * pt.c (tsubst_copy) <case BIT_CAST_EXPR>: Don't call
2043 cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set
2044 its location.
2045 (tsubst_copy_and_build): Handle BIT_CAST_EXPR.
2046
20472021-01-07 Marek Polacek <polacek@redhat.com>
2048
2049 PR c++/98441
2050 * decl.c (grokdeclarator): Move the !funcdecl_p check inside the
2051 !late_return_type block.
2052
20532021-01-07 Jason Merrill <jason@redhat.com>
2054
2055 * constexpr.c (cxx_bind_parameters_in_call): Add comment.
2056 (cxx_eval_store_expression): Add comment.
2057
20582021-01-07 Jason Merrill <jason@redhat.com>
2059
2060 * call.c (has_next): Factor out from...
2061 (next_conversion): ...here.
2062 (strip_standard_conversion): And here.
2063 (is_subseq): And here.
2064 (build_conv): Check it.
2065 (standard_conversion): Don't call build_conv
2066 for ck_identity.
2067
942ae5be
GA
20682021-01-06 Martin Sebor <msebor@redhat.com>
2069
2070 PR c++/95768
2071 * error.c (dump_expr): Call c_pretty_printer::unary_expression.
2072
651b8a50
GA
20732021-01-05 Patrick Palka <ppalka@redhat.com>
2074
2075 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: After walking into
2076 the type of the NTTP, substitute into the type again. If the
2077 type is still dependent, don't unify the NTTP.
2078
20792021-01-05 Jakub Jelinek <jakub@redhat.com>
2080
2081 * Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add
2082 $(CODYLIB) after $(BACKEND).
2083
20842021-01-05 Jakub Jelinek <jakub@redhat.com>
2085
2086 PR c++/98469
2087 * constexpr.c (cxx_eval_constant_expression) <case BIT_CAST_EXPR>:
2088 Punt if lval is true.
2089 * semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on
2090 the result if it has a class type.
2091
20922021-01-05 Marek Polacek <polacek@redhat.com>
2093
2094 PR c++/82099
2095 * pt.c (resolve_overloaded_unification): Call
2096 maybe_instantiate_noexcept after instantiating the function
2097 decl.
2098
20992021-01-05 Nathan Sidwell <nathan@acm.org>
2100
2101 * parser.c (cp_parser_module_declaration): Alter diagnostic
2102 text to say where is permissable.
2103
21042021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2105
2106 PR c++/98316
2107 * Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS).
2108
2eacfdbd
GA
21092021-01-02 Jan Hubicka <jh@suse.cz>
2110
2111 * cp-tree.h (cp_tree_c_finish_parsing): Declare.
2112 * decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing.
2113 * tree.c (cp_tree_c_finish_parsing): New function.
2114
b6dd195a
GA
21152021-01-01 Jakub Jelinek <jakub@redhat.com>
2116
2117 * ChangeLog-2020: Rotate ChangeLog. New file.
2118
ad41bd84 2119\f
618e665a 2120Copyright (C) 2021 Free Software Foundation, Inc.
ad41bd84
JM
2121
2122Copying and distribution of this file, with or without modification,
2123are permitted in any medium without royalty provided the copyright
2124notice and this notice are preserved.
This page took 3.935331 seconds and 5 git commands to generate.