]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
c++: placeholder type constraint inside range-for [PR99869]
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
f1607029
GA
12021-04-01 Marek Polacek <polacek@redhat.com>
2
3 PR c++/99831
4 * method.c (defaulted_late_check): ++ and -- function_depth around
5 the call to synthesize_method.
6 * pt.c: Remove the saved_trees global.
7
82021-04-01 Jason Merrill <jason@redhat.com>
9
10 PR c++/99583
11 PR c++/99584
12 * tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into
13 TYPE_RAISES_EXCEPTIONS.
14
152021-04-01 Iain Sandoe <iain@sandoe.co.uk>
16
17 * mapper-client.cc (INCLUDE_MAP): New; require map to be
18 included from system.h.
19 * mapper-resolver.cc (INCLUDE_MAP): Likewise.
20
212021-04-01 Jason Merrill <jason@redhat.com>
22
23 PR c++/98481
24 * mangle.c (write_expression): Adjust.
25 * class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14.
26 (mark_abi_tags_r): Likewise.
27
282021-04-01 Nathan Sidwell <nathan@acm.org>
29
30 PR c++/99283
31 * module.cc (trees_out::decl_node): Adjust importedness reference
32 assert.
33 (module_state::intercluster_seed): New. Seed both imports and
34 inter-cluster references. Broken out of ...
35 (module_state::write_cluster): ... here. Call it.
36
95d217ab
GA
372021-03-31 Jason Merrill <jason@redhat.com>
38
39 PR c++/99445
40 * tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.
41
422021-03-31 Patrick Palka <ppalka@redhat.com>
43
44 PR c++/88115
45 * mangle.c (write_expression): Adjust the mangling of
46 __alignof__.
47
482021-03-31 Patrick Palka <ppalka@redhat.com>
49
50 PR c++/99815
51 * pt.c (placeholder_type_constraint_dependent_p): Expand
52 argument packs to separate the first non-pack argument
53 from the rest.
54
08d2edae
GA
552021-03-30 Nathan Sidwell <nathan@acm.org>
56
57 PR c++/99283
58 * module.cc (dumper::operator): Make less brittle.
59 (trees_out::core_bools): VAR_DECLs always have a context.
60 (trees_out::key_mergeable): Use same_type_p for asserting.
61 (trees_in::read_var_def): Propagate
62 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
63
642021-03-30 Jakub Jelinek <jakub@redhat.com>
65
66 PR c++/99790
67 * cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST.
68
651684b4
GA
692021-03-26 Marek Polacek <polacek@redhat.com>
70
71 PR c++/98352
72 * method.c (implicitly_declare_fn): Pass &raises to
73 synthesized_method_walk.
74
752021-03-26 Nathan Sidwell <nathan@acm.org>
76
77 PR c++/99283
78 * cp-tree.h (DECL_MODULE_CHECK): Ban TEMPLATE_DECL.
79 (SET_TYPE_TEMPLATE_INFO): Restore Alias template setting.
80 * decl.c (duplicate_decls): Remove template_decl module flag
81 propagation.
82 * module.cc (merge_kind_name): Add alias tmpl spec as a thing.
83 (dumper::impl::nested_name): Adjust for template-decl module flag
84 change.
85 (trees_in::assert_definition): Likewise.
86 (trees_in::install_entity): Likewise.
87 (trees_out::decl_value): Likewise. Remove alias template
88 separation of template and type_decl.
89 (trees_in::decl_value): Likewise.
90 (trees_out::key_mergeable): Likewise,
91 (trees_in::key_mergeable): Likewise.
92 (trees_out::decl_node): Adjust for template-decl module flag
93 change.
94 (depset::hash::make_dependency): Likewise.
95 (get_originating_module, module_may_redeclare): Likewise.
96 (set_instantiating_module, set_defining_module): Likewise.
97 * name-lookup.c (name_lookup::search_adl): Likewise.
98 (do_pushdecl): Likewise.
99 * pt.c (build_template_decl): Likewise.
100 (lookup_template_class_1): Remove special alias_template handling
101 of DECL_TI_TEMPLATE.
102 (tsubst_template_decl): Likewise.
103
1042021-03-26 Jakub Jelinek <jakub@redhat.com>
105
106 PR c++/99705
107 * tree.c (bot_manip): Remap artificial automatic temporaries mentioned
108 in DECL_EXPR or in BIND_EXPR_VARS.
109
4493b1c1
GA
1102021-03-25 Jakub Jelinek <jakub@redhat.com>
111
112 PR c++/99672
113 * parser.c (cp_parser_postfix_expression): For calls, create
114 combined_loc and temporarily set input_location to it before
115 calling finish_call_expr.
116
1172021-03-25 Marek Polacek <polacek@redhat.com>
118
119 PR c++/94751
120 * call.c (build_over_call): Maybe call mark_used in case
121 deduce_inheriting_ctor fails and return error_mark_node.
122 * cp-tree.h (deduce_inheriting_ctor): Adjust declaration.
123 * method.c (deduce_inheriting_ctor): Return bool if the deduction
124 fails.
125 (implicitly_declare_fn): If raises is error_mark_node, call
126 synthesized_method_walk with diag being true.
127
1282021-03-25 Jakub Jelinek <jakub@redhat.com>
129
130 PR c++/99745
131 * decl2.c (grokbitfield): Diagnose bitfields containing bare parameter
132 packs and don't set DECL_BIT_FIELD_REPRESENTATIVE in that case.
133
1342021-03-25 Marek Polacek <polacek@redhat.com>
135
136 PR c++/99331
137 * call.c (build_converted_constant_expr_internal): Don't emit
138 -Wconversion warnings.
139
1402021-03-25 Jakub Jelinek <jakub@redhat.com>
141
142 PR c++/99565
143 * call.c (build_conditional_expr_1): Pass OEP_ADDRESS_OF_SAME_FIELD
144 to operand_equal_p.
145 * cvt.c (convert_to_void): Preserve location_t on COND_EXPR or
146 or COMPOUND_EXPR.
147
bf1f3168
GA
1482021-03-23 Nathan Sidwell <nathan@acm.org>
149
150 PR c++/99283
151 * name-lookup.c (check_module_override): Set global or partition
152 DUP on the binding vector.
153
1542021-03-23 Marek Polacek <polacek@redhat.com>
155
156 PR c++/99318
157 * decl2.c (cp_warn_deprecated_use_scopes): Only call
158 cp_warn_deprecated_use when decl is a namespace, class, or enum.
159
1602021-03-23 Nathan Sidwell <nathan@acm.org>
161
162 PR c++/99239
163 * decl.c (duplicate_decls): Remove assert about maybe-imported
164 artificial decls.
165
1662021-03-23 Jakub Jelinek <jakub@redhat.com>
167
168 PR c++/99650
169 * decl.c (cp_finish_decomp): Diagnose void initializers when
170 using tuple_element and get.
171
8b744f46
GA
1722021-03-22 Nathan Sidwell <nathan@acm.org>
173
174 PR c++/99480
175 * module.cc (depset::hash::make_dependency): Propagate flags for
176 partial specialization.
177 (module_may_redeclare): Handle partial specialization.
178
1792021-03-22 Nathan Sidwell <nathan@acm.org>
180
181 PR c++/99425
182 * cp-tree.h (map_context_from, map_context_to): Delete.
183 (add_mergeable_specialization): Add is_alias parm.
184 * pt.c (add_mergeable_specialization): Add is_alias parm, add them.
185 * module.cc (map_context_from, map_context_to): Delete.
186 (trees_in::decl_value): Add specializations later, adjust call.
187 Drop useless alias lookup. Set duplicate fn parm context.
188 (check_mergeable_decl): Drop context mapping.
189 (trees_in::is_matching_decl): Likewise.
190 (trees_in::read_function_def): Drop parameter context adjustment
191 here.
192
1932021-03-22 Martin Liska <mliska@suse.cz>
194
195 PR c++/99687
196 * module.cc (fini_modules): Call vec_free instead of delete.
197
6af7b307
GA
1982021-03-20 Jakub Jelinek <jakub@redhat.com>
199
200 PR debug/99230
201 * cp-gimplify.c (cp_genericize_r) <case STATEMENT_LIST>: Remove
202 special code, instead call c_genericize_control_stmt.
203
5f256a70
GA
2042021-03-19 Jakub Jelinek <jakub@redhat.com>
205
206 PR c++/99456
207 * constexpr.c (cxx_eval_constant_expression): For CONVERT_EXPR from
208 INDIRECT_TYPE_P to ARITHMETIC_TYPE_P, when !ctx->manifestly_const_eval
209 don't diagnose it, set *non_constant_p nor return t.
210
287e3e84
GA
2112021-03-19 Marek Polacek <polacek@redhat.com>
212
213 PR c++/99500
214 * parser.c (cp_parser_requirement_parameter_list): Handle
215 error_mark_node.
216
2172021-03-18 Marek Polacek <polacek@redhat.com>
218
219 * pt.c (tsubst_copy_and_build) <case FLOAT_EXPR>: Remove.
220
2212021-03-18 Marek Polacek <polacek@redhat.com>
222
223 * pt.c (tsubst_copy_and_build): Add assert.
224
2252021-03-18 Iain Sandoe <iain@sandoe.co.uk>
226
227 PR objc++/49070
228 * parser.c (cp_debug_parser): Add Objective-C++ message
229 state flag.
230 (cp_parser_nested_name_specifier_opt): Allow colon to
231 terminate an assignment-expression when parsing Objective-
232 C++ messages.
233 (cp_parser_objc_message_expression): Set and clear message
234 parsing state on entry and exit.
235 * parser.h (struct cp_parser): Add a context flag for
236 Objective-C++ message state.
237
2382021-03-18 Martin Liska <mliska@suse.cz>
239
240 PR c++/99617
241 * coroutines.cc (struct var_nest_node): Init then_cl and else_cl
242 to NULL.
243
19ac7c94
GA
2442021-03-17 Marek Polacek <polacek@redhat.com>
245
246 PR c++/97973
247 * call.c (conv_unsafe_in_template_p): New.
248 (convert_like): Use it.
249
2502021-03-17 Anthony Sharp <anthonysharp15@gmail.com>
251 Jason Merrill <jason@redhat.com>
252
253 * semantics.c (get_class_access_diagnostic_decl): New
254 function that examines special cases when a parent
255 class causes a private access failure.
256 (enforce_access): Slightly modified to call function
257 above.
258
bc212776
GA
2592021-03-16 Jason Merrill <jason@redhat.com>
260
261 * tree.c (cp_tree_equal): Use real_identical.
262
2632021-03-16 Jakub Jelinek <jakub@redhat.com>
264
265 PR c++/99613
266 * decl.c (expand_static_init): For thread guards, call __cxa_atexit
267 before calling __cxa_guard_release rather than after it. Formatting
268 fixes.
269
2702021-03-16 Martin Liska <mliska@suse.cz>
271 Jason Merrill <jason@redhat.com>
272
273 PR c++/99108
274 * call.c (get_function_version_dispatcher): Handle
275 DECL_LOCAL_DECL_P.
276 * decl.c (maybe_version_functions): Likewise.
277 (maybe_mark_function_versioned): New.
278 * name-lookup.c (push_local_extern_decl_alias): No longer static.
279 * name-lookup.h (push_local_extern_decl_alias): Adjust.
280
2812021-03-16 Nathan Sidwell <nathan@acm.org>
282
283 PR c++/99496
284 * module.cc (trees_out::decl_value): Adjust typedef streaming,
285 indicate whether it is a dependent alias.
286 (trees_in::decl_value): Likewise. Set as dependent alias, if it
287 is one.
288
3c5b6d24
GA
2892021-03-15 Iain Sandoe <iain@sandoe.co.uk>
290
291 PR c++/99047
292 * coroutines.cc (expand_one_await_expression): If the
293 await_ready() expression is not a boolean then convert it
294 as required.
295
2962021-03-15 Iain Sandoe <iain@sandoe.co.uk>
297
298 PR c++/98704
299 * coroutines.cc (build_actor_fn): Make destroy index 1
300 correspond to the abnormal unhandled_exception() exit.
301 Substitute the proxy for the resume index.
302 (coro_rewrite_function_body): Arrange to reset the resume
303 index and make done = true for a rethrown exception from
304 unhandled_exception ().
305 (morph_fn_to_coro): Adjust calls to build_actor_fn and
306 coro_rewrite_function_body.
307
3082021-03-15 Iain Sandoe <iain@sandoe.co.uk>
309
310 PR c++/98480
311 * coroutines.cc (replace_continue): Rewrite continue into
312 'goto label'.
313 (await_statement_walker): Handle await expressions in the
314 initializer, condition and iteration expressions of for
315 loops.
316
3172021-03-15 Iain Sandoe <iain@sandoe.co.uk>
318
319 PR c++/96749
320 * coroutines.cc (flatten_await_stmt): Allow for the case
321 where a target expression variable only has uses in the
322 second part of a compound expression.
323 (maybe_promote_temps): Avoid emiting empty statements.
324
3252021-03-15 Tobias Burnus <tobias@codesourcery.com>
326
327 PR c++/99509
328 * decl.c (cp_finish_decl): For 'omp declare target implicit' vars,
329 ensure that the varpool node is marked as offloadable.
330
6da2762a
GA
3312021-03-12 Nathan Sidwell <nathan@acm.org>
332
333 PR c++/99238
334 * module.cc (depset::hash::add_binding_entity): Assert not
335 visited.
336 (depset::add::add_specializations): Likewise.
337 * name-lookup.c (name_lookup::dedup): New.
338 (name_lookup::~name_lookup): Assert not deduping.
339 (name_lookup::restore_state): Likewise.
340 (name_lookup::add_overload): Replace outlined code with dedup
341 call.
342 (name_lookup::add_value): Likewise.
343 (name_lookup::search_namespace_only): Likewise.
344 (name_lookup::adl_namespace_fns): Likewise.
345 (name_lookup::adl_class_fns): Likewise.
346 (name_lookup::search_adl): Likewise. Add clearing dedup call.
347 (name_lookup::search_qualified): Likewise.
348 (name_lookup::search_unqualified): Likewise.
349
3502021-03-12 Jakub Jelinek <jakub@redhat.com>
351
352 PR c++/99507
353 * call.c (build_over_call): For immediate evaluation of functions
354 that return references, undo convert_from_reference effects before
355 calling cxx_constant_value and call convert_from_reference
356 afterwards.
357
48ff383f
GA
3582021-03-11 Nathan Sidwell <nathan@acm.org>
359
360 PR c++/99248
361 * name-lookup.c (lookup_elaborated_type_1): Access slot not bind
362 when there's a binding vector.
363 * ptree.c (cxx_print_xnode): Lazy flags are no longer a thing.
364
3652021-03-11 Nathan Sidwell <nathan@acm.org>
366
367 PR c++/99528
368 * module.cc (enum merge_kind): Delete MK_type_tmpl_spec,
369 MK_decl_tmpl_spec.
370 (trees_in::decl_value): Adjust add_mergeable_specialization call.
371 (trees_out::get_merge_kind): Adjust detecting a partial template
372 instantiation.
373 (trees_out::key_mergeable): Adjust handling same.
374 (trees_in::key_mergeabvle): Likewise.
375
e9800852
GA
3762021-03-10 Nathan Sidwell <nathan@acm.org>
377
378 PR c++/99423
379 * module.cc (post_load_processing): Assert not gcable.
380 (laxy_load_pendings): Extend no-gc region around
381 post_load_processing.
382
3832021-03-10 Nathan Sidwell <nathan@acm.org>
384
385 PR c++/99508
386 * decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's
387 assembler name to the ns alias.
388
8dc225d3
GA
3892021-03-09 Jakub Jelinek <jakub@redhat.com>
390
391 PR c++/99459
392 * coroutines.cc (build_co_await): Look through NOP_EXPRs in
393 build_special_member_call return value to find the CALL_EXPR.
394 Simplify.
395
3962021-03-09 Nathan Sidwell <nathan@acm.org>
397
398 PR c++/99472
399 * parser.c (cp_parser_diagnose_invalid_type_name): Clarify
400 that C++20 does not yet imply modules.
401
6405b40f
GA
4022021-03-08 Nathan Sidwell <nathan@acm.org>
403
404 PR c++/99436
405 * name-lookup.c (get_cxx_dialect_name): Add cxx23.
406
4072021-03-08 Nathan Sidwell <nathan@acm.org>
408
409 * lex.c (module_token_filter::resume): Ignore module-decls inside
410 header-unit.
411 * parser.c (cp_parser_module_declaration): Reject in header-unit.
412
4132021-03-08 Nathan Sidwell <nathan@acm.org>
414
415 PR c++/99285
416 * cp-tree.h (match_mergeable_specialization)
417 (add_mergeable_specialization): Adjust parms.
418 * module.cc (trees_in::decl_value): Adjust
419 add_mergeable_specialization calls.
420 (trees_out::key_mergeable): Adjust match_mergeable_specialization
421 calls.
422 (specialization_add): Likewise.
423 * pt.c (match_mergeable_specialization): Do not insert.
424 (add_mergeable_specialization): Add to hash table here.
425
0ad6a2e2
GA
4262021-03-06 Patrick Palka <ppalka@redhat.com>
427 Jakub Jelinek <jakub@redhat.com>
428
429 PR c++/99287
430 * constexpr.c (cxx_eval_increment_expression): Pass lval when
431 evaluating the MODIFY_EXPR, and update 'mod' with the result of
432 this evaluation. Check *non_constant_p afterwards. For prefix
433 ops, just return 'mod'.
434
4352021-03-06 Patrick Palka <ppalka@redhat.com>
436 Jakub Jelinek <jakub@redhat.com>
437
438 PR c++/96330
439 * pt.c (tsubst_copy) <case TEMPLATE_ID_EXPR>: Rename local
440 variable 'fn' to 'tmpl'. Handle a variable template-id by
441 calling lookup_template_variable.
442
4432021-03-06 Patrick Palka <ppalka@redhat.com>
444
445 PR c++/99365
446 * pt.c (unify) <case TEMPLATE_TYPE_PARM>: Pass targs as
447 outer_targs to do_auto_deduction.
448 (placeholder_type_constraint_dependent_p): Define.
449 (do_auto_deduction): When processing_template_decl != 0
450 and context is adc_unify and we have constraints, pretend the
451 constraints are satisfied instead of punting. Otherwise don't
452 punt unless placeholder_type_constraint_dependent_p holds.
453 Add some clarifying sanity checks. Add a hack to add missing
454 outermost template levels to outer_args before checking
455 satisfaction. Don't substitute outer_targs into type if it's
456 already been done.
457
ceae9533
GA
4582021-03-05 Marek Polacek <polacek@redhat.com>
459
460 PR c++/99374
461 * call.c (standard_conversion): When converting pointers to
462 member, don't return NULL when the bases are equivalent but
463 incomplete.
464
4652021-03-05 Marek Polacek <polacek@redhat.com>
466
467 PR c++/99120
468 * name-lookup.c (check_local_shadow): Check if the type of decl
469 is non-null before checking TYPE_PTR*.
470
4712021-03-05 Nathan Sidwell <nathan@acm.org>
472
473 PR c++/99245
474 * module.cc (module_state::write_cluster): Relax binding assert.
475
4762021-03-05 Nathan Sidwell <nathan@acm.org>
477
478 PR c++/99377
479 * pt.c (instantiate_decl): Call set_instantiating_module.
480
4812021-03-05 Iain Sandoe <iain@sandoe.co.uk>
482
483 PR c++/98118
484 * coroutines.cc (build_co_await): Use type_build_ctor_call()
485 to determine cases when a CTOR needs to be built.
486 (flatten_await_stmt): Likewise.
487 (morph_fn_to_coro): Likewise.
488
4892021-03-05 Iain Sandoe <iain@sandoe.co.uk>
490
491 PR c++/95616
492 * coroutines.cc (coro_diagnose_throwing_fn): New helper.
493 (coro_diagnose_throwing_final_aw_expr): New helper.
494 (build_co_await): Diagnose throwing final await expression
495 components.
496 (build_init_or_final_await): Diagnose a throwing promise
497 final_suspend() call.
498
4992021-03-05 Iain Sandoe <iain@sandoe.co.uk>
500
501 PR c++/95615
502 * coroutines.cc (struct param_info): Track parameter copies that need
503 a DTOR.
504 (coro_get_frame_dtor): New helper function factored from build_actor().
505 (build_actor_fn): Use coro_get_frame_dtor().
506 (morph_fn_to_coro): Track parameters that need DTORs on exception,
507 likewise the frame promise and the return object. On exception, run the
508 DTORs for these, destroy the frame and then rethrow the exception.
509
5102021-03-05 Nathan Sidwell <nathan@acm.org>
511
512 PR c++/99389
513 * pt.c (instantiate_class_template_1): Set instantiating module
514 here.
515
5162021-03-05 Tobias Burnus <tobias@codesourcery.com>
517
518 PR c/99137
519 * parser.c (cp_parser_oacc_clause_async): Reject comma expressions.
520
67f10d28
GA
5212021-03-04 Jakub Jelinek <jakub@redhat.com>
522
523 PR c++/88146
524 PR c++/99362
525 * cvt.c (convert_to_void): Revert 2019-10-17 changes. Clarify
526 comment.
527
5282021-03-04 Nathan Sidwell <nathan@acm.org>
529
530 PR c++/99170
531 * module.cc (class uintset): Delete.
532 (typedef attached_map_t): A hash map.
533 (attached_table): Use attached_map_t. Adjust uses ...
534 (trees_out::decl_value, trees_in::decl_value): ... here ...
535 (trees_out::key_mergeable): ... here ...
536 (trees_in::key_mergeable): ... here ...
537 (maybe_attach_decl): ... here ...
538 (direct_import): ... and here.
539
5402021-03-04 Nathan Sidwell <nathan@acm.org>
541
542 PR c++/99170
543 * cp-tree.h
544 * lex.c (cxx_dup_lang_specific_decl): Adjust for module_attached_p
545 rename.
546 * module.cc (class pending_key): New.
547 (default_hash_traits<pending_key>): New specialization.
548 (pending_map_t): New typedef.
549 (pending_table): Replace old table.
550 (trees_out::lang_decl_bools): Adjust.
551 (trees_in::lang_decl_bools): Adjust.
552 (trees_in::install_entity): Drop pending member and specialization
553 handling.
554 (find_pending_key): New.
555 (depset::hash::fiund_dependencies): Use it.
556 (pendset_lazy_load): Delete.
557 (module_state::write_cluster): Don't count pendings here. Bye
558 Duff's device-like thing.
559 (module_state::write_pendings): Reimplement.
560 (module_state::read_pendings): Reimplement.
561 (lazy_specializations_p): Delete.
562 (module_state::write): Adjust write_pendings call.
563 (lazy_load_pendings): New.
564 (lazy_load_specializations): Delete.
565 (lazy_load_members): Delete.
566 (init_modules): Adjust.
567 * name-lookup.c (maybe_lazily_declare): Call lazy_load_pendings
568 not lazy_load_members.
569 (note_pending_specializations): Delete.
570 (load_pending_specializations): Delete.
571 * name-lookup.h (BINDING_VECTR_PENDING_SPECIALIZATIONS_P): Delete.
572 (BINDING_VECTOR_PENDING_MEMBERS_P): Delete.
573 (BINDING_VECTR_PENDING_MEMBERS_P): Delete.
574 (note_pending_specializations): Delete.
575 (load_pending_specializations): Delete.
576 * pt.c (lookup_template_class_1): Call lazy_load_pendings not
577 lazy_load_specializations.
578 (instantiate_template_class_1): Likewise.
579 (instantiate_decl): Call lazy_load_pendings.
580 * typeck.c (complete_type): Likewise.
581
f3641ac7
GA
5822021-03-03 Nathan Sidwell <nathan@acm.org>
583
584 PR c++/99170
585 * module.cc (post_load_decls): New.
586 (lazy_snum, recursive_lazy): Move earlier.
587 (module_state::read_cluster): Push cloning onto post_load_decls.
588 (post_load_processing): New. Do the cloning here.
589 (module_state::read_inits): Call post_load_processing.
590 (module_state::read_language): Likewise.
591 (lazy_load_binding, lazy_load_specializations): Likewise
592 (lazy_load_members): Likewise
593
5942021-03-03 Nathan Sidwell <nathan@acm.org>
595
596 PR c++/99170
597 * module.cc (trees_out::decl_value): Stream specialization keys
598 after decl.
599 (trees_in::decl_value): Stream them back and insert after
600 completing the decl.
601 (trees_out::key_mergeable): Drop some streaming here ...
602 (trees_in::key_mergeable): ... and here. Don't insert into
603 specialization tables.
604
6052021-03-03 Patrick Palka <ppalka@redhat.com>
606
607 * constraint.cc (struct sat_info): Document the different
608 meanings of noisy() and diagnose_unsatisfaction_p() during
609 satisfaction and requires-expression evaluation.
610 (tsubst_valid_expression_requirement): Take a sat_info instead
611 of a subst_info. Perform the substitution quietly first. Fold
612 in error-replaying code from diagnose_valid_expression.
613 (tsubst_simple_requirement): Take a sat_info instead of a
614 subst_info.
615 (tsubst_type_requirement_1): New. Fold in error-replaying code
616 from diagnose_valid_type.
617 (tsubst_type_requirement): Use the above. Take a sat_info
618 instead of a subst_info.
619 (tsubst_compound_requirement): Likewise. Fold in
620 error-replaying code from diagnose_compound_requirement.
621 (tsubst_nested_requirement): Take a sat_info instead of a
622 subst_info. Fold in error-replaying code from
623 diagnose_nested_requirement.
624 (tsubst_requirement): Take a sat_info instead of a subst_info.
625 (tsubst_requires_expr): Split into two versions, one that takes
626 a sat_info argument and another that takes a complain and
627 in_decl argument. Remove outdated documentation. Document the
628 effects of the sat_info argument. Don't short-circuit
629 processing of requirements when diagnosing unsatisfaction,
630 mirroring diagnose_requires_expr.
631 (satisfy_nondeclaration_constraint) <case REQUIRES_EXPR>: Remove
632 assert, and se the three-parameter version of tsubst_requires_expr.
633 (diagnose_trait_expr): Make static. Take a template argument
634 vector instead of a parameter mapping.
635 (diagnose_valid_expression): Remove.
636 (diagnose_valid_type): Remove.
637 (diagnose_simple_requirement): Remove.
638 (diagnose_compound_requirement): Remove.
639 (diagnose_type_requirement): Remove.
640 (diagnose_nested_requirement): Remove.
641 (diagnose_requirement): Remove.
642 (diagnose_requires_expr): Remove.
643 (diagnose_atomic_constraint): Take a sat_info instead of a
644 subst_info. Adjust call to diagnose_trait_expr. Call
645 tsubst_requires_expr instead of diagnose_requires_expr.
646 (diagnose_constraints): Remove special casing of REQUIRES_EXPR
647 and just always call constraint_satisfaction_value.
648
6492021-03-03 Patrick Palka <ppalka@redhat.com>
650
651 * constexpr.c (cxx_eval_call_expression): Adjust call to
652 evaluate_concept_check.
653 (cxx_eval_constant_expression) <case REQUIRES_EXPR>: Use
654 evaluate_requires_expression instead of
655 satisfy_constraint_expression.
656 <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
657 * constraint.cc (struct sat_info): Adjust comment about which
658 satisfaction entrypoints use noisy-unsat.
659 (normalize_template_requirements): Remove (and adjust callers
660 appropriately).
661 (normalize_nontemplate_requirements): Likewise.
662 (tsubst_nested_requirement): Use constraint_satisfaction_value
663 instead of satisfy_constraint_expression, which'll do the
664 noisy replaying of ill-formed quiet satisfaction for us.
665 (decl_satisfied_cache): Adjust comment.
666 (satisfy_constraint): Rename to ...
667 (satisfy_normalized_constraints): ... this.
668 (satisfy_associated_constraints): Remove (and make its
669 callers check for dependent arguments).
670 (satisfy_constraint_expression): Rename to ...
671 (satisfy_nondeclaration_constraints): ... this. Assert that
672 'args' is empty when 't' is a concept-id. Removing handling
673 bare constraint-expressions, and handle REQUIRES_EXPRs
674 specially. Adjust comment accordingly.
675 (satisfy_declaration_constraints): Assert in the two-parameter
676 version that 't' is not a TEMPLATE_DECL. Adjust following
677 removal of normalize_(non)?template_requirements and
678 satisfy_asociated_constraints.
679 (constraint_satisfaction_value): Combine the two- and
680 three-parameter versions in the natural way.
681 (constraints_satisfied_p): Combine the one- and two-parameter
682 versions in the natural way. Improve documentation.
683 (evaluate_requires_expr): Define.
684 (evaluate_concept_check): Remove 'complain' parameter. Use
685 constraint_satisfaction_value instead of
686 satisfy_constraint_expression.
687 (diagnose_nested_requirement): Adjust following renaming of
688 satisfy_constraint_expression.
689 (diagnose_constraints): Handle REQUIRES_EXPR by going through
690 diagnose_requires_expr directly instead of treating it as a
691 constraint-expression. Improve documentation.
692 * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Adjust call
693 to evaluate_concept_check.
694 <case REQUIRES_EXPR>: Use evaluate_requires_expr instead of
695 constraints_satisfied_p.
696 <case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
697 * cp-tree.h (evaluate_requires_expr): Declare.
698 (evaluate_concept_check): Remove tsubst_flag_t parameter.
699 (satisfy_constraint_expression): Remove declaration.
700 (constraints_satisfied_p): Remove one-parameter declaration.
701 Add a default argument to the two-parameter declaration.
702 * cvt.c (convert_to_void): Adjust call to
703 evaluate_concept_check.
704
7052021-03-03 Jakub Jelinek <jakub@redhat.com>
706
707 PR c++/82959
708 * call.c (op_is_ordered): Handle TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR
709 and COMPOUND_EXPR.
710
7112021-03-03 Marek Polacek <polacek@redhat.com>
712
713 PR c++/97034
714 PR c++/99009
715 * pt.c (build_deduction_guide): Use INNERMOST_TEMPLATE_ARGS.
716 (maybe_aggr_guide): Use the original template type where needed. In
717 a class member template, partially instantiate the result of
718 collect_ctor_idx_types.
719 (do_class_deduction): Defer the deduction until the enclosing
720 scope is non-dependent.
721
7222021-03-03 Jason Merrill <jason@redhat.com>
723
724 PR c++/95675
725 * call.c (build_temp): Wrap a CALL_EXPR in a TARGET_EXPR
726 if it didn't get one before.
727
7282021-03-03 Nathan Sidwell <nathan@acm.org>
729
730 PR c++/99344
731 * module.cc (trees_out::decl_node): Small refactor.
732 (depset::hash::add_binding_entity): Return true on meeting an
733 import. Set namespace's import here.
734 (module_state:write_namespaces): Inform of purview too.
735 (module_state:read_namespaces): Adjust.
736 * name-lookup.c (implicitly_export_namespace): Delete.
737 (do_pushdecl): Don't call it.
738 (push_namespace): Likewise, set purview.
739 (add_imported_namespace): Reorder parms.
740 * name-lookup.h (add_imported_namespace): Alter param ordering.
741
d97a92dc
GA
7422021-03-02 Martin Sebor <msebor@redhat.com>
743
744 PR c++/99251
745 * class.c (build_base_path): Call build_if_nonnull.
746 * cp-tree.h (build_if_nonnull): Declare.
747 * rtti.c (ifnonnull): Rename...
748 (build_if_nonnull): ...to this. Set no-warning bit on COND_EXPR.
749 (build_dynamic_cast_1): Adjust to name change.
750
7512021-03-02 Patrick Palka <ppalka@redhat.com>
752
753 PR c++/96443
754 PR c++/96960
755 * constraint.cc (type_deducible_p): Don't substitute into the
756 constraints, and instead just pass 'args' to do_auto_deduction
757 as the outer template arguments.
758 (tsubst_parameter_mapping): Remove confused code for handling
759 placeholder type arguments.
760 (normalize_placeholder_type_constraint): Define.
761 (satisfy_constraint_expression): Use it to handle placeholder
762 'auto' types.
763 * cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Define.
764 (PLACEHOLDER_TYPE_CONSTRAINTS): Redefine in terms of the above.
765 * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: Use
766 PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
767 (make_constrained_placeholder_type): Set
768 PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
769 (do_auto_deduction): Clarify comments about the outer_targs
770 parameter. Rework satisfaction of a placeholder type constraint
771 to pass in the complete set of template arguments directly to
772 constraints_satisfied_p.
773 (splice_late_return_type): Use PLACEHOLDER_TYPE_CONSTRAINTS_INFO
774 instead. Also rebuild the the constraint info on the new auto.
775
7762021-03-02 Patrick Palka <ppalka@redhat.com>
777
778 * constraint.cc (build_parameter_mapping): Rely on the caller to
779 determine the in-scope template parameters.
780 (norm_info::norm_info): Delegate the tsubst_flags_t constructor
781 to the two-parameter constructor. In the two-parameter
782 constructor, fold in the definition of make_context, set
783 initial_parms appropriately, and don't set the now-removed
784 orig_decl member.
785 (norm_info::make_context): Remove, now that its only use is
786 inlined into the caller.
787 (norm_info::update_context): Adjust call to
788 build_parameter_mapping to pass in the relevant set of in-scope
789 template parameters.
790 (norm_info::ctx_parms): Define this member function.
791 (norm_info::context): Initialize to NULL_TREE.
792 (norm_info::orig_decl): Remove this data member.
793 (norm_info::initial_parms): Define this data member.
794 (normalize_atom): Adjust call to build_parameter_mapping to pass
795 in the relevant set of in-scope template parameters. Use
796 info.initial_parms instead of info.orig_decl.
797 (normalize_constraint_expression): Take a norm_info object
798 instead of a bool. Cache the result of normalization.
799 (tsubst_nested_requirement): Call satisfy_constraint_expression
800 instead of satisfy_constraint, so that we normalize on demand.
801 (satisfy_constraint_expression): Handle a NESTED_REQ argument.
802 Adjust call to normalize_constraint_expression.
803 (finish_nested_requirement): Set the TREE_TYPE of the NESTED_REQ
804 to current_template_parms.
805 (diagnose_nested_requirements): Go through
806 satisfy_constraint_expression, as with tsubst_nested_requirement.
807
8082021-03-02 Patrick Palka <ppalka@redhat.com>
809
810 * constraint.cc (tsubst_parameter_mapping): Canonicalize the
811 arguments of a substituted TYPE_ARGUMENT_PACK even if we've
812 started with a TYPE_ARGUMENT_PACK.
813 (finish_requires_expr): Don't set DECL_CONTEXT and
814 CONSTRAINT_VAR_P on each of the introduced parameters here.
815 * parser.c (cp_parser_requirement_parameter_list): Instead set
816 these fields earlier, here.
817 * pt.c (do_auto_deduction): Canonicalize the result of
818 do_auto_deduction. Pass 'complain' to finish_decltype_type.
819
8202021-03-02 Patrick Palka <ppalka@redhat.com>
821
822 * constraint.cc (tsubst_simple_requirement): Just return
823 boolean_true_node on success.
824 (tsubst_type_requirement): Likewise.
825 (tsubst_compound_requirement): Likewise.
826 (tsubst_nested_requirement): Likewise.
827 (tsubst_requirement_body): Remove.
828 (check_constaint_variables): Rename to ...
829 (check_constraint_variables): ... this.
830 (tsubst_constraint_variables): Adjust.
831 (tsubst_requires_expr): Fold tsubst_requirement_body into here.
832
88938886
GA
8332021-03-01 Nathan Sidwell <nathan@acm.org>
834
835 PR c++/99294
836 * class.c (fixup_type_variants): Propagate mode, precision,
837 alignment & emptiness.
838 * module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW.
839 (trees_in::tree_node): Rematerialize alignment here.
840
ec9dc4fa
GA
8412021-02-27 Jason Merrill <jason@redhat.com>
842
843 PR c++/90333
844 * parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes
845 between () and ->.
846
06a9f20f
GA
8472021-02-26 Jakub Jelinek <jakub@redhat.com>
848
849 * parser.c (cp_parser_lambda_declarator_opt): Implement
850 P1102R2 - Down with ()! Make ()s optional before lambda specifiers
851 for -std={c,gnu}++2b or with pedwarn in earlier versions.
852
8532021-02-26 Jakub Jelinek <jakub@redhat.com>
854
855 PR c++/95451
856 * lambda.c (is_lambda_ignored_entity): Before checking for
857 LAMBDA_FUNCTION_P, use OVL_FIRST. Drop FUNCTION_DECL check.
858
8592021-02-26 Jason Merrill <jason@redhat.com>
860
861 PR c++/98810
862 * pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const
863 to a class non-type template argument that needs it.
864
8652021-02-26 Patrick Palka <ppalka@redhat.com>
866
867 PR c++/98990
868 * pt.c (splice_late_return_type): Rebuild the entire return type
869 if we have to adjust the level of an auto within.
870 (type_uses_auto): Adjust call to find_type_usage.
871 * type-utils.h (find_type_usage): Revert r10-6571 change that
872 made this function return a pointer to the auto node.
873
daa68844
GA
8742021-02-25 Patrick Palka <ppalka@redhat.com>
875
876 PR c++/99213
877 PR c++/94521
878 * error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of
879 TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope.
880
8812021-02-25 Patrick Palka <ppalka@redhat.com>
882
883 PR c++/99103
884 * pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'.
885 (maybe_aggr_guide): Fix order of arguments to is_spec_or_derived.
886
8872021-02-25 Marek Polacek <polacek@redhat.com>
888
889 DR 1312
890 PR c++/99176
891 * constexpr.c (is_std_construct_at): New overload.
892 (is_std_allocator_allocate): New overload.
893 (cxx_eval_call_expression): Use the new overloads.
894 (cxx_eval_constant_expression): Reject casting
895 from void * as per DR 1312. Don't check can_convert.
896
8972021-02-25 Iain Sandoe <iain@sandoe.co.uk>
898
899 PR c++/97587
900 * coroutines.cc (struct param_info): Track rvalue refs.
901 (morph_fn_to_coro): Track rvalue refs, and call the promise
902 CTOR with the frame copy of passed parms.
903
9042021-02-25 Iain Sandoe <iain@sandoe.co.uk>
905
906 PR c++/95822
907 * coroutines.cc (morph_fn_to_coro): Unconditionally remove any
908 set throwing_cleanup marker.
909
9102021-02-25 Nathan Sidwell <nathan@acm.org>
911
912 PR c++/99166
913 * module.cc (module_state::inform_cmi_p): Renamed field.
914 (module_state::do_import): Adjust.
915 (init_modules, finish_module_processing): Likewise.
916 (handle_module_option): Likewise.
917
9182021-02-25 Nathan Sidwell <nathan@acm.org>
919
920 PR c++/98318
921 * mapper-client.cc (module_client::open_module_client): Fix typo
922 of fd init.
923
4028d01a
GA
9242021-02-24 Nathan Sidwell <nathan@acm.org>
925
926 PR c++/98718
927 * module.cc (ool): New indirection vector.
928 (loc_spans::maybe_propagate): Location is not optional.
929 (loc_spans::open): Likewise. Assert monotonically advancing.
930 (module_for_ordinary_loc): Use ool indirection vector.
931 (module_state::write_prepare_maps): Do not count empty macro
932 expansions. Elide empty spans.
933 (module_state::write_macro_maps): Skip empty expansions.
934 (ool_cmp): New qsort comparator.
935 (module_state::write): Create and destroy ool vector.
936 (name_pending_imports): Fix dump push/pop.
937 (preprocess_module): Likewise. Add more dumping.
938 (preprocessed_module): Likewise.
939
9402021-02-24 Iain Sandoe <iain@sandoe.co.uk>
941
942 PR c++/96251
943 * coroutines.cc (coro_common_keyword_context_valid_p): Suppress
944 error reporting when instantiating for a constexpr.
945
71e24b06
GA
9462021-02-23 Nathan Sidwell <nathan@acm.org>
947
948 PR c++/99208
949 * decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
950 identity.
951
9522021-02-23 Patrick Palka <ppalka@redhat.com>
953
954 PR c++/95468
955 * pt.c (tsubst_copy_and_build) <case BASELINK>: New case, copied
956 over from tsubst_copy.
957
9582021-02-23 Patrick Palka <ppalka@redhat.com>
959
960 * pt.c (instantiation_dependent_expression_p): Check
961 processing_template_decl before calling
962 potential_constant_expression.
963
2f5765cf
GA
9642021-02-22 Nathan Sidwell <nathan@acm.org>
965
966 PR c++/99174
967 * module.cc (struct module_state): Add visited_p flag.
968 (name_pending_imports): Use it to avoid duplicate requests.
969 (preprocess_module): Don't read preprocessor state if we failed to
970 load a module's config.
971
9722021-02-22 Nathan Sidwell <nathan@acm.org>
973
974 PR c++/99153
975 * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
976 to common-path.
977 * module.cc (set_defining_module): Add assert.
978
50352c6c
GA
9792021-02-19 Nathan Sidwell <nathan@acm.org>
980
981 PR c++/98741
982 * module.cc (pending_imports): New.
983 (declare_module): Adjust test condition.
984 (name_pending_imports): New.
985 (preprocess_module): Reimplement using pending_imports.
986 (preprocessed_module): Move name-getting to name_pending_imports.
987 * name-lookup.c (append_imported_binding_slot): Assert module
988 ordering is increasing.
989
9902021-02-19 Nathan Sidwell <nathan@acm.org>
991
992 * module.cc (note_cmis): New.
993 (struct module_state): Add inform_read_p bit.
994 (module_state::do_import): Inform of CMI location, if enabled.
995 (init_modules): Canonicalize note_cmis entries.
996 (handle_module_option): Handle -flang-info-module-read=FOO.
997
9982021-02-19 Jason Merrill <jason@redhat.com>
999
1000 PR c++/96926
1001 * call.c (perfect_conversion_p): Limit rvalueness
1002 test to reference bindings.
1003
10042021-02-19 Jason Merrill <jason@redhat.com>
1005
1006 PR c++/96926
1007 * call.c (perfect_conversion_p): New.
1008 (perfect_candidate_p): New.
1009 (add_candidates): Ignore templates after a perfect non-template.
1010
bf81237e
GA
10112021-02-18 Nathan Sidwell <nathan@acm.org>
1012
1013 PR c++/99023
1014 * module.cc (canonicalize_header_name): Use
1015 cpp_probe_header_unit.
1016 (maybe_translate_include): Fix note_includes comparison.
1017 (init_modules): Fix note_includes string termination.
1018
10192021-02-18 Jakub Jelinek <jakub@redhat.com>
1020
1021 PR c++/99132
1022 * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Use
1023 cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check
1024 for immediate function calls.
1025
acc0ee5c
GA
10262021-02-17 Nathan Sidwell <nathan@acm.org>
1027
1028 PR c++/99023
1029 * module.cc (struct macro_export): Add GTY markers.
1030 (macro_exports): Likewise, us a va_gc Vector.
1031
10322021-02-17 Jakub Jelinek <jakub@redhat.com>
1033
1034 PR sanitizer/99106
1035 * init.c (build_zero_init_1): For flexible array members just return
1036 NULL_TREE instead of returning empty CONSTRUCTOR with non-complete
1037 ARRAY_TYPE.
1038
10392021-02-17 Nathan Sidwell <nathan@acm.org>
1040
1041 PR c++/99116
1042 * name-lookup.c (do_pushdecl): Don't peek under template_parm
1043 bindings here ...
1044 (set_identifier_type_value_with_scope): ... or here.
1045 (do_pushtag): Only set_identifier_type_value_with_scope at
1046 non-class template parm scope, and use parent scope.
1047
10482021-02-17 Nathan Sidwell <nathan@acm.org>
1049
1050 PR c++/99071
1051 * name-lookup.c (maybe_record_mergeable_decl): Deref the correct
1052 pointer.
1053
10542021-02-17 Patrick Palka <ppalka@redhat.com>
1055
1056 PR debug/96997
1057 PR c++/94034
1058 * tree.c (build_aggr_init_expr): Revert r10-7718 change.
1059
fab095da
GA
10602021-02-12 Nathan Sidwell <nathan@acm.org>
1061
1062 * module.cc (module_state::write_cluster): Check bindings for
1063 imported using-decls.
1064
10652021-02-12 Nathan Sidwell <nathan@acm.org>
1066
1067 PR c++/99040
1068 * module.cc (trees_in::decl_value): Call add_module_namespace_decl
1069 for new namespace-scope entities.
1070 (module_state::read_cluster): Don't call add_module_decl here.
1071 * name-lookup.h (add_module_decl): Rename to ...
1072 (add_module_namespace_decl): ... this.
1073 * name-lookup.c (newbinding_bookkeeping): Move into ...
1074 (do_pushdecl): ... here. Its only remaining caller.
1075 (add_module_decl): Rename to ...
1076 (add_module_namespace_decl): ... here. Add checking-assert for
1077 circularity. Don't call newbinding_bookkeeping, just extern_c
1078 checking and incomplete var checking.
1079
10802021-02-12 Nathan Sidwell <nathan@acm.org>
1081
1082 PR c++/99039
1083 PR c++/99040
1084 * cp-tree.h (CPTI_GLOBAL_TYPE): Delete.
1085 (global_type_node): Delete.
1086 (IDENTIFIER_TYPE_VALUE): Delete.
1087 (IDENTIFIER_HAS_TYPE_VALUE): Delete.
1088 (get_type_value): Delete.
1089 * name-lookup.h (identifier_type_value): Delete.
1090 * name-lookup.c (check_module_override): Don't
1091 SET_IDENTIFIER_TYPE_VALUE here.
1092 (do_pushdecl): Nor here.
1093 (identifier_type_value_1, identifier_type_value): Delete.
1094 (set_identifier_type_value_with_scope): Only
1095 SET_IDENTIFIER_TYPE_VALUE for local and class scopes.
1096 (pushdecl_nanmespace_level): Remove shadow stack nadgering.
1097 (do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE.
1098 * call.c (check_dtor_name): Use lookup_name.
1099 * decl.c (cxx_init_decl_processing): Drop global_type_node.
1100 * decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE
1101 here.
1102 * init.c (get_type_value): Delete.
1103 * pt.c (instantiate_class_template_1): Don't call pushtag or
1104 SET_IDENTIFIER_TYPE_VALUE here.
1105 (tsubst): Assert never an identifier.
1106 (dependent_type_p): Drop global_type_node assert.
1107 * typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE
1108 to determine ctorness.
1109
11102021-02-12 Jakub Jelinek <jakub@redhat.com>
1111
1112 PR c++/97742
1113 * parser.c (cp_parser_requirement_seq): Stop iterating after reaching
1114 CPP_EOF.
1115
11162021-02-12 Jason Merrill <jason@redhat.com>
1117
1118 PR c++/97246
1119 PR c++/94546
1120 * pt.c (extract_fnparm_pack): Check DECL_PACK_P here.
1121 (register_parameter_specializations): Not here.
1122
0c5cdb31
GA
11232021-02-11 Marek Polacek <polacek@redhat.com>
1124
1125 PR c++/95888
1126 * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking
1127 for the partial instantiation.
1128
11292021-02-11 Jakub Jelinek <jakub@redhat.com>
1130
1131 PR c++/99033
1132 * init.c (build_zero_init_1): Handle zero initialiation of
1133 flexible array members like initialization of [0] arrays.
1134 Use integer_minus_onep instead of comparison to integer_minus_one_node
1135 and integer_zerop instead of comparison against size_zero_node.
1136 Formatting fixes.
1137
11382021-02-11 Marek Polacek <polacek@redhat.com>
1139
1140 PR c++/99063
1141 * semantics.c (finish_do_stmt): Check for unexpanded parameter packs.
1142
11432021-02-11 Patrick Palka <ppalka@redhat.com>
1144
1145 PR c++/97582
1146 * name-lookup.c (op_unqualified_lookup): Handle an ambiguous
1147 lookup result by discarding it if the first element is a
1148 class-scope declaration, otherwise return it.
1149 (push_operator_bindings): Handle an ambiguous lookup result by
1150 doing push_local_binding on each element in the list.
1151
11522021-02-11 Marek Polacek <polacek@redhat.com>
1153
1154 * parser.c (cp_parser_selection_statement): Use vec_free.
1155
4b37c3ea
GA
11562021-02-10 Jakub Jelinek <jakub@redhat.com>
1157
1158 PR c++/98988
1159 PR c++/99031
1160 * constexpr.c: Include cgraph.h.
1161 (cxx_eval_call_expression): Call varpool_node::finalize_decl on
1162 heap artificial vars.
1163 (cxx_eval_outermost_constant_expr): Remove varpool nodes for
1164 heap artificial vars.
1165
11662021-02-10 Nathan Sidwell <nathan@acm.org>
1167
1168 PR c++/99030
1169 * pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the
1170 answer if there's no local specialization.
1171
0a91b73e
GA
11722021-02-09 Nathan Sidwell <nathan@acm.org>
1173
1174 PR c++/98944
1175 * module.cc (module_state::is_rooted): Rename to ...
1176 (module_state::has_location): ... here. Adjust callers.
1177 (module_state::read_partitions): Adjust validity check.
1178 Don't overwrite a known location.
1179
11802021-02-09 Jason Merrill <jason@redhat.com>
1181
1182 PR c++/96905
1183 * pt.c (mark_decl_instantiated): Exit early if consteval.
1184
11852021-02-09 Jason Merrill <jason@redhat.com>
1186
1187 PR c++/98326
1188 PR c++/20408
1189 * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref
1190 parm.
1191
11922021-02-09 Jason Merrill <jason@redhat.com>
1193
1194 PR c++/98994
1195 PR c++/97566
1196 * constexpr.c (cxx_eval_store_expression): Only skip empty fields in
1197 RECORD_TYPE.
1198
2da7ce23
GA
11992021-02-08 Nathan Sidwell <nathan@acm.org>
1200
1201 * decl.c (start_cleanup_fn): Push function into
1202 namespace.
1203
12042021-02-08 Nathan Sidwell <nathan@acm.org>
1205
1206 PR c++/98531
1207 * cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare.
1208 * decl.c (push_abi_namespace, pop_abi_namespace): Moved
1209 from rtti.c, add default namespace arg.
1210 (check_redeclaration_exception_specification): Allow a lazy
1211 builtin's eh spec to differ from an lready-declared user
1212 declaration.
1213 (declare_global_var): Use push/pop_abi_namespace.
1214 (get_atexit_node): Push the fndecl into a namespace.
1215 * rtti.c (push_abi_namespace, pop_abi_namespace): Moved to
1216 decl.c.
1217
12182021-02-08 Marek Polacek <polacek@redhat.com>
1219
1220 * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo.
1221
1ed59127
GA
12222021-02-05 Marek Polacek <polacek@redhat.com>
1223
1224 PR c++/98947
1225 * call.c (build_conditional_expr_1): Don't call mark_lvalue_use
1226 on arg2/arg3.
1227 * expr.c (mark_use) <case MODIFY_EXPR>: Don't check read_p when
1228 issuing the -Wvolatile warning. Only set TREE_THIS_VOLATILE if
1229 a warning was emitted.
1230
12312021-02-05 Marek Polacek <polacek@redhat.com>
1232
1233 PR c++/96462
1234 * name-lookup.c (lookup_using_decl): Hoist the destructor check.
1235
12362021-02-05 Jakub Jelinek <jakub@redhat.com>
1237
1238 PR c++/97878
1239 * decl.c (check_array_initializer): For structured bindings, require
1240 the array type to be complete.
1241
a19dd5e6
GA
12422021-02-04 Jason Merrill <jason@redhat.com>
1243
1244 PR c++/98717
1245 * constraint.cc (build_concept_check_arguments): Remove assert.
1246 (build_concept_check): Allow empty args.
1247
12482021-02-04 Tom Greenslade (thomgree) <thomgree@cisco.com>
1249
1250 PR c++/90926
1251 * call.c (can_convert_array): Extend to handle all valid aggregate
1252 initializers of an array; including by string literals, not just by
1253 brace-init-list.
1254 (build_aggr_conv): Call can_convert_array more often, not just in
1255 brace-init-list case.
1256 * typeck2.c (array_string_literal_compatible_p): New function.
1257 (digest_init_r): call array_string_literal_compatible_p
1258 * cp-tree.h: (array_string_literal_compatible_p): Declare.
1259
12602021-02-04 Jason Merrill <jason@redhat.com>
1261
1262 PR c++/98802
1263 * pt.c (do_class_deduction): No aggregate guide if any_dguides_p.
1264
12652021-02-04 Jason Merrill <jason@redhat.com>
1266
1267 PR c++/95192
1268 * pt.c (tsubst_attribute): Handle error.
1269 (apply_late_template_attributes): Return false on error.
1270 (tsubst_function_decl): Check its return value.
1271 (tsubst_decl): Likewise.
1272 (push_template_decl): Assert current_template_parms.
1273 (tsubst_template_decl): Set current_template_parms.
1274
9faaa807
GA
12752021-02-03 Marek Polacek <polacek@redhat.com>
1276
1277 PR c++/98951
1278 * call.c (struct z_candidate): Mark rewritten and reversed as const.
1279 (struct NonPublicField): Mark operator() as const.
1280 (struct NonTrivialField): Likewise.
1281
12822021-02-03 Jason Merrill <jason@redhat.com>
1283
1284 PR c++/98926
1285 PR c++/98570
1286 * pt.c (spec_hasher::equal): Set processing_template_decl.
1287 * Make-lang.in (check-g++-strict-gc): Add --param
1288 hash-table-verification-limit=10000.
1289
12902021-02-03 Marek Polacek <polacek@redhat.com>
1291
1292 PR c++/98899
1293 * parser.c (cp_parser_class_specifier_1): Use any possible
1294 DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN.
1295 (cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS.
1296 * pt.c (tsubst_exception_specification): Stash new_specs into
1297 DEFPARSE_INSTANTIATIONS.
1298 * tree.c (fixup_deferred_exception_variants): Use
1299 UNPARSED_NOEXCEPT_SPEC_P.
1300
548b75d8
GA
13012021-02-02 Jason Merrill <jason@redhat.com>
1302
1303 PR c++/98929
1304 PR c++/96199
1305 * error.c (dump_expr): Ignore dummy object.
1306 * pt.c (tsubst_baselink): Handle dependent scope.
1307
f7884fb1
GA
13082021-02-01 Patrick Palka <ppalka@redhat.com>
1309
1310 PR c++/98295
1311 * constexpr.c (cxx_eval_array_reference): Also set
1312 new_ctx.object when setting new_ctx.ctor.
1313
13142021-02-01 Marek Polacek <polacek@redhat.com>
1315
1316 PR c++/98355
1317 * parser.c (cp_parser_has_attribute_expression): Use
1318 uses_template_parms instead of type_dependent_expression_p.
1319
13202021-02-01 Jason Merrill <jason@redhat.com>
1321
1322 PR c++/98570
1323 * cp-tree.h: Declare it.
1324 * pt.c (comparing_dependent_aliases): New flag.
1325 (template_args_equal, spec_hasher::equal): Set it.
1326 (dependent_alias_template_spec_p): Assert that we don't
1327 get non-types other than error_mark_node.
1328 (instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY
1329 on complex alias specializations. Set TYPE_DEPENDENT_P here.
1330 (tsubst_decl): Not here.
1331 * module.cc (module_state::read_cluster): Set
1332 comparing_dependent_aliases instead of
1333 comparing_specializations.
1334 * tree.c (cp_tree_equal): Remove comparing_specializations
1335 module handling.
1336 * typeck.c (structural_comptypes): Adjust.
1337 (comptypes): Remove comparing_specializations handling.
1338
2900f2f2
GA
13392021-01-29 Nathan Sidwell <nathan@acm.org>
1340
1341 PR c++/98843
1342 * module.cc (module_state_config): Add num_entities field.
1343 (module_state::read_entities): The entity_ary span is
1344 already allocated.
1345 (module_state::write_config): Write num_entities.
1346 (module_state::read_config): Read num_entities.
1347 (module_state::write): Set config's num_entities.
1348 (module_state::read_initial): Allocate the entity ary
1349 span here.
1350 (module_state::read_language): Do not set entity_lwm
1351 here.
1352
13532021-01-29 Marek Polacek <polacek@redhat.com>
1354
1355 PR c++/96137
1356 * parser.c (cp_parser_class_name): If parser->scope is
1357 error_mark_node, return it, otherwise continue.
1358
85d04a2e
GA
13592021-01-28 Jakub Jelinek <jakub@redhat.com>
1360
1361 PR c++/98841
1362 * typeck.c (build_x_indirect_ref): For *this, return current_class_ref.
1363
13642021-01-28 Jakub Jelinek <jakub@redhat.com>
1365
1366 PR c++/33661
1367 PR c++/98847
1368 * decl.c (cp_finish_decl): For register vars with asmspec in templates
1369 call set_user_assembler_name and set DECL_HARD_REGISTER.
1370 * pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars,
1371 pass asmspec_tree to cp_finish_decl.
1372
13732021-01-28 Nathan Sidwell <nathan@acm.org>
1374
1375 PR c++/98770
1376 * module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME
1377 check order.
1378 (trees_in::decl_value): Do typedef frobbing only when installing
1379 a new typedef, adjust is_matching_decl call. Swap is_typedef
1380 & TYPE_NAME check.
1381 (trees_in::is_matching_decl): Add is_typedef parm. Adjust variable
1382 names and deal with typedef checking.
1383
aa69f0a8
GA
13842021-01-27 Jason Merrill <jason@redhat.com>
1385
1386 PR c++/97874
1387 * name-lookup.c (lookup_using_decl): Clean up handling
1388 of dependency and inherited constructors.
1389 (finish_nonmember_using_decl): Handle DECL_DEPENDENT_P.
1390 * pt.c (tsubst_expr): Handle DECL_DEPENDENT_P.
1391
e62bb7f0
GA
13922021-01-26 Jason Merrill <jason@redhat.com>
1393
1394 PR c++/97474
1395 * call.c (type_passed_as): Don't mark invisiref restrict.
1396
13972021-01-26 Jason Merrill <jason@redhat.com>
1398
1399 PR c++/97566
1400 PR c++/98463
1401 * class.c (layout_class_type): An empty field gets size 0.
1402 (is_empty_field): New.
1403 (check_bases): Check it.
1404 * cp-tree.h (is_empty_field): Declare it.
1405 * constexpr.c (cxx_eval_store_expression): Check it.
1406 (cx_check_missing_mem_inits): Likewise.
1407 * init.c (perform_member_init): Likewise.
1408 * typeck2.c (process_init_constructor_record): Likewise.
1409
161e4c08
GA
14102021-01-25 Martin Sebor <msebor@redhat.com>
1411
1412 PR c++/98646
1413 * cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING.
1414
14152021-01-25 Jason Merrill <jason@redhat.com>
1416
1417 PR c++/98463
1418 * constexpr.c (get_or_insert_ctor_field): Add check.
1419 (cxx_eval_store_expression): Handle discontinuity of refs.
1420
6b163337
GA
14212021-01-23 Anthony Sharp <anthonysharp15@gmail.com>
1422
1423 * call.c (complain_about_access): Altered function.
1424 * cp-tree.h (complain_about_access): Changed parameters of function.
1425 (get_parent_with_private_access): Declared new function.
1426 * search.c (get_parent_with_private_access): Defined new function.
1427 * semantics.c (enforce_access): Modified function.
1428 * typeck.c (complain_about_unrecognized_member): Updated function
1429 arguments in complain_about_access.
1430
14312021-01-23 Patrick Palka <ppalka@redhat.com>
1432
1433 PR c++/97399
1434 * cp-tree.h (shared_member_p): Adjust declaration.
1435 * parser.c (cp_parser_init_declarator): If the storage class
1436 specifier is sc_static, pass true for static_p to
1437 cp_parser_declarator.
1438 (cp_parser_direct_declarator): Don't do inject_this_parm when
1439 the declarator is a friend.
1440 * search.c (shared_member_p): Change return type to bool and
1441 adjust function body accordingly. Return false for a dependent
1442 USING_DECL instead of aborting.
1443 * semantics.c (finish_qualified_id_expr): Rely on shared_member_p
1444 even when type-dependent.
1445
8502e23d
GA
14462021-01-22 Marek Polacek <polacek@redhat.com>
1447
1448 PR c++/96623
1449 * parser.c (inject_parm_decls): Remove a redundant assignment.
1450 (cp_parser_class_specifier_1): Clear current_class_{ptr,ref}
1451 before calling inject_parm_decls.
1452
14532021-01-22 Jason Merrill <jason@redhat.com>
1454
1455 PR c++/98744
1456 * call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P.
1457
14582021-01-22 Jakub Jelinek <jakub@redhat.com>
1459
1460 PR sanitizer/95693
1461 * init.c (build_zero_init_1): Revert the 2018-03-06 change to
1462 return build_zero_cst for reference types.
1463 * typeck2.c (process_init_constructor_record): Instead call
1464 build_zero_cst here during error recovery instead of build_zero_init.
1465
14662021-01-22 Marek Polacek <polacek@redhat.com>
1467
1468 PR c++/98545
1469 * mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses
1470 warnings regardless of abi_version_at_least.
1471 (write_expression): When the expression is a dependent name
1472 and an operator name, write "on" before writing its name.
1473
14742021-01-22 Marek Polacek <polacek@redhat.com>
1475
1476 PR c++/97966
1477 * pt.c (instantiate_class_template_1): Instantiate members
1478 marked with attribute used only after we're done instantiating
1479 the class.
1480
7559d465
GA
14812021-01-21 Patrick Palka <ppalka@redhat.com>
1482
1483 PR c++/71879
1484 * semantics.c (finish_decltype_type): Set up a cp_unevaluated
1485 sentinel at the start of the function. Remove a now-redundant
1486 manual adjustment of cp_unevaluated_operand.
1487
14882021-01-21 Nathan Sidwell <nathan@acm.org>
1489
1490 PR c++/98624
1491 * module.cc (depset::hash::find_dependencies): Add
1492 module arg.
1493 (trees_out::core_vals): Check state before calling
1494 write_location.
1495 (sort_cluster, module_state::write): Adjust
1496 find_dependencies call.
1497
14982021-01-21 Jakub Jelinek <jakub@redhat.com>
1499
1500 PR c++/98672
1501 * constexpr.c (check_for_return_continue_data): Add break_stmt member.
1502 (check_for_return_continue): Also look for BREAK_STMT. Handle
1503 SWITCH_STMT by ignoring break_stmt from its body.
1504 (potential_constant_expression_1) <case FOR_STMT>,
1505 <case WHILE_STMT>: If the condition isn't constant true, check if
1506 the loop body can contain a return stmt.
1507 <case SWITCH_STMT>: Adjust check_for_return_continue_data initializer.
1508 <case IF_STMT>: If recursion with tf_none is successful,
1509 merge *jump_target from the branches - returns with highest priority,
1510 breaks or continues lower. If then branch is potentially constant and
1511 doesn't return, check the else branch if it could return, break or
1512 continue.
1513
15142021-01-21 Nathan Sidwell <nathan@acm.org>
1515
1516 PR c++/98530
1517 * name-lookup.c (lookup_class_binding): Rearrange a stat-hack.
1518
b93d0e36
GA
15192021-01-20 Nathan Sidwell <nathan@acm.org>
1520
1521 * module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of
1522 signed type.
1523
15242021-01-20 Patrick Palka <ppalka@redhat.com>
1525
1526 PR c++/95434
1527 * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: If tsubsting
1528 CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM,
1529 adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
1530
15312021-01-20 Patrick Palka <ppalka@redhat.com>
1532
1533 PR c++/82613
1534 * parser.c (cp_parser_class_head): Defer access checking when
1535 parsing the base-clause until all bases are seen and attached
1536 to the class type.
1537 * pt.c (instantiate_class_template): Likewise when substituting
1538 into dependent bases.
1539
15402021-01-20 Jakub Jelinek <jakub@redhat.com>
1541
1542 PR c++/98742
1543 * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_DETACH>: If
1544 error_operand_p, remove clause without further checking. Check
1545 for non-NULL TYPE_NAME.
1546
f35a4f96
GA
15472021-01-19 Marek Polacek <polacek@redhat.com>
1548
1549 PR c++/98659
1550 * pt.c (maybe_instantiate_noexcept): Return false if FN is
1551 error_mark_node.
1552
15532021-01-19 Marek Polacek <polacek@redhat.com>
1554
1555 PR c++/98687
1556 * name-lookup.c (push_using_decl_bindings): New, broken out of...
1557 (finish_nonmember_using_decl): ...here.
1558 * name-lookup.h (push_using_decl_bindings): Update declaration.
1559 * pt.c (tsubst_expr): Update the call to push_using_decl_bindings.
1560
15612021-01-19 Patrick Palka <ppalka@redhat.com>
1562
1563 PR c++/41437
1564 PR c++/58993
1565 * search.c (friend_accessible_p): If scope is a hidden friend
1566 defined inside a dependent class, consider access from the
1567 class.
1568 * parser.c (cp_parser_late_parsing_for_member): Don't push a
1569 dk_no_check access state.
1570
15712021-01-19 Marek Polacek <polacek@redhat.com>
1572
1573 PR c++/98333
1574 * parser.c (cp_parser_class_specifier_1): Perform late-parsing
1575 of NSDMIs before late-parsing of noexcept-specifiers.
1576
15772021-01-19 Nathan Sidwell <nathan@acm.org>
1578
1579 * module.cc (identifier): Merge overloads.
1580
15812021-01-19 Nathan Sidwell <nathan@acm.org>
1582
1583 PR c++/98624
1584 * module.cc (trees_out::write_location): Make static.
1585
59cf67d1
GA
15862021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
1587
1588 * parser.c (cp_parser_omp_clause_detach): New.
1589 (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH.
1590 (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
1591 * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
1592 * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
1593 Prevent use of detach with mergeable and overriding the data sharing
1594 mode of the event handle.
1595
2f7f0d32
GA
15962021-01-15 Nathan Sidwell <nathan@acm.org>
1597
1598 PR c++/98538
1599 * tree.c (cp_build_qualified_type_real): Propagate an array's
1600 dependentness to the copy, if known.
1601
16022021-01-15 Jason Merrill <jason@redhat.com>
1603
1604 PR c++/98642
1605 * call.c (unsafe_return_slot_p): Return int.
1606 (init_by_return_slot_p): Split out from...
1607 (unsafe_copy_elision_p): ...here.
1608 (unsafe_copy_elision_p_opt): New name for old meaning.
1609 (build_over_call): Adjust.
1610 (make_safe_copy_elision): New.
1611 * typeck2.c (split_nonconstant_init_1): Elide copy from safe
1612 list-initialization.
1613 * cp-tree.h: Adjust.
1614
16152021-01-15 Jason Merrill <jason@redhat.com>
1616
1617 * call.c (base_ctor_for, make_base_init_ok): New.
1618 (build_over_call): Use make_base_init_ok.
1619
16202021-01-15 Jason Merrill <jason@redhat.com>
1621
1622 PR c++/63707
1623 * tree.c (build_vec_init_expr): Don't call build_vec_init_elt
1624 if we got a CONSTRUCTOR.
1625
16262021-01-15 Nathan Sidwell <nathan@acm.org>
1627
1628 PR c++/98591
1629 * lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only.
1630
5fff80fd
GA
16312021-01-14 Jason Merrill <jason@redhat.com>
1632
1633 * typeck2.c (process_init_constructor_record): Use fldtype
1634 variable consistently.
1635
16362021-01-14 Nathan Sidwell <nathan@acm.org>
1637
1638 PR c++/98372
1639 * tree.c (cp_tree_equal): Correct map_context logic.
1640
be0851b8
GA
16412021-01-13 Marek Polacek <polacek@redhat.com>
1642
1643 PR c++/98231
1644 * name-lookup.c (push_using_decl_bindings): New.
1645 * name-lookup.h (push_using_decl_bindings): Declare.
1646 * pt.c (tsubst_expr): Call push_using_decl_bindings.
1647
16482021-01-13 Nathan Sidwell <nathan@acm.org>
1649
1650 PR c++/98626
1651 * module.cc (module_add_import_initializers): Pass a
1652 zero-element argument vector.
1653
6851dda2
GA
16542021-01-12 Patrick Palka <ppalka@redhat.com>
1655
1656 PR c++/98611
1657 * tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit
1658 the template of a CTAD placeholder.
1659
16602021-01-12 Marek Polacek <polacek@redhat.com>
1661
1662 PR c++/98620
1663 * typeck2.c (process_init_constructor_record): Don't emit
1664 -Wmissing-field-initializers warnings in unevaluated contexts.
1665
67fbb7f0
GA
16662021-01-11 Jakub Jelinek <jakub@redhat.com>
1667
1668 PR c++/98481
1669 * class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1
1670 for types.
1671 (mark_abi_tags_r): Likewise.
1672 * decl2.c (min_vis_r): Likewise.
1673 * tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through
1674 typedefs.
1675
bf5cbb9e
GA
16762021-01-08 Patrick Palka <ppalka@redhat.com>
1677
1678 PR c++/98551
1679 * constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P
1680 instead of AGGREGATE_TYPE_P before calling replace_result_decl.
1681
16822021-01-08 Patrick Palka <ppalka@redhat.com>
1683
1684 PR c++/98515
1685 * semantics.c (check_accessibility_of_qualified_id): Punt if
1686 we're checking access of a scoped non-static member inside a
1687 class template.
1688
7d187e4f
GA
16892021-01-07 Jakub Jelinek <jakub@redhat.com>
1690
1691 PR c++/98329
1692 * pt.c (tsubst_copy) <case BIT_CAST_EXPR>: Don't call
1693 cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set
1694 its location.
1695 (tsubst_copy_and_build): Handle BIT_CAST_EXPR.
1696
16972021-01-07 Marek Polacek <polacek@redhat.com>
1698
1699 PR c++/98441
1700 * decl.c (grokdeclarator): Move the !funcdecl_p check inside the
1701 !late_return_type block.
1702
17032021-01-07 Jason Merrill <jason@redhat.com>
1704
1705 * constexpr.c (cxx_bind_parameters_in_call): Add comment.
1706 (cxx_eval_store_expression): Add comment.
1707
17082021-01-07 Jason Merrill <jason@redhat.com>
1709
1710 * call.c (has_next): Factor out from...
1711 (next_conversion): ...here.
1712 (strip_standard_conversion): And here.
1713 (is_subseq): And here.
1714 (build_conv): Check it.
1715 (standard_conversion): Don't call build_conv
1716 for ck_identity.
1717
942ae5be
GA
17182021-01-06 Martin Sebor <msebor@redhat.com>
1719
1720 PR c++/95768
1721 * error.c (dump_expr): Call c_pretty_printer::unary_expression.
1722
651b8a50
GA
17232021-01-05 Patrick Palka <ppalka@redhat.com>
1724
1725 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: After walking into
1726 the type of the NTTP, substitute into the type again. If the
1727 type is still dependent, don't unify the NTTP.
1728
17292021-01-05 Jakub Jelinek <jakub@redhat.com>
1730
1731 * Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add
1732 $(CODYLIB) after $(BACKEND).
1733
17342021-01-05 Jakub Jelinek <jakub@redhat.com>
1735
1736 PR c++/98469
1737 * constexpr.c (cxx_eval_constant_expression) <case BIT_CAST_EXPR>:
1738 Punt if lval is true.
1739 * semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on
1740 the result if it has a class type.
1741
17422021-01-05 Marek Polacek <polacek@redhat.com>
1743
1744 PR c++/82099
1745 * pt.c (resolve_overloaded_unification): Call
1746 maybe_instantiate_noexcept after instantiating the function
1747 decl.
1748
17492021-01-05 Nathan Sidwell <nathan@acm.org>
1750
1751 * parser.c (cp_parser_module_declaration): Alter diagnostic
1752 text to say where is permissable.
1753
17542021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1755
1756 PR c++/98316
1757 * Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS).
1758
2eacfdbd
GA
17592021-01-02 Jan Hubicka <jh@suse.cz>
1760
1761 * cp-tree.h (cp_tree_c_finish_parsing): Declare.
1762 * decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing.
1763 * tree.c (cp_tree_c_finish_parsing): New function.
1764
b6dd195a
GA
17652021-01-01 Jakub Jelinek <jakub@redhat.com>
1766
1767 * ChangeLog-2020: Rotate ChangeLog. New file.
1768
ad41bd84 1769\f
618e665a 1770Copyright (C) 2021 Free Software Foundation, Inc.
ad41bd84
JM
1771
1772Copying and distribution of this file, with or without modification,
1773are permitted in any medium without royalty provided the copyright
1774notice and this notice are preserved.
This page took 3.820895 seconds and 5 git commands to generate.