]>
Commit | Line | Data |
---|---|---|
2f5765cf GA |
1 | 2021-02-22 Nathan Sidwell <nathan@acm.org> |
2 | ||
3 | PR c++/99174 | |
4 | * module.cc (struct module_state): Add visited_p flag. | |
5 | (name_pending_imports): Use it to avoid duplicate requests. | |
6 | (preprocess_module): Don't read preprocessor state if we failed to | |
7 | load a module's config. | |
8 | ||
9 | 2021-02-22 Nathan Sidwell <nathan@acm.org> | |
10 | ||
11 | PR c++/99153 | |
12 | * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation | |
13 | to common-path. | |
14 | * module.cc (set_defining_module): Add assert. | |
15 | ||
50352c6c GA |
16 | 2021-02-19 Nathan Sidwell <nathan@acm.org> |
17 | ||
18 | PR c++/98741 | |
19 | * module.cc (pending_imports): New. | |
20 | (declare_module): Adjust test condition. | |
21 | (name_pending_imports): New. | |
22 | (preprocess_module): Reimplement using pending_imports. | |
23 | (preprocessed_module): Move name-getting to name_pending_imports. | |
24 | * name-lookup.c (append_imported_binding_slot): Assert module | |
25 | ordering is increasing. | |
26 | ||
27 | 2021-02-19 Nathan Sidwell <nathan@acm.org> | |
28 | ||
29 | * module.cc (note_cmis): New. | |
30 | (struct module_state): Add inform_read_p bit. | |
31 | (module_state::do_import): Inform of CMI location, if enabled. | |
32 | (init_modules): Canonicalize note_cmis entries. | |
33 | (handle_module_option): Handle -flang-info-module-read=FOO. | |
34 | ||
35 | 2021-02-19 Jason Merrill <jason@redhat.com> | |
36 | ||
37 | PR c++/96926 | |
38 | * call.c (perfect_conversion_p): Limit rvalueness | |
39 | test to reference bindings. | |
40 | ||
41 | 2021-02-19 Jason Merrill <jason@redhat.com> | |
42 | ||
43 | PR c++/96926 | |
44 | * call.c (perfect_conversion_p): New. | |
45 | (perfect_candidate_p): New. | |
46 | (add_candidates): Ignore templates after a perfect non-template. | |
47 | ||
bf81237e GA |
48 | 2021-02-18 Nathan Sidwell <nathan@acm.org> |
49 | ||
50 | PR c++/99023 | |
51 | * module.cc (canonicalize_header_name): Use | |
52 | cpp_probe_header_unit. | |
53 | (maybe_translate_include): Fix note_includes comparison. | |
54 | (init_modules): Fix note_includes string termination. | |
55 | ||
56 | 2021-02-18 Jakub Jelinek <jakub@redhat.com> | |
57 | ||
58 | PR c++/99132 | |
59 | * cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Use | |
60 | cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check | |
61 | for immediate function calls. | |
62 | ||
acc0ee5c GA |
63 | 2021-02-17 Nathan Sidwell <nathan@acm.org> |
64 | ||
65 | PR c++/99023 | |
66 | * module.cc (struct macro_export): Add GTY markers. | |
67 | (macro_exports): Likewise, us a va_gc Vector. | |
68 | ||
69 | 2021-02-17 Jakub Jelinek <jakub@redhat.com> | |
70 | ||
71 | PR sanitizer/99106 | |
72 | * init.c (build_zero_init_1): For flexible array members just return | |
73 | NULL_TREE instead of returning empty CONSTRUCTOR with non-complete | |
74 | ARRAY_TYPE. | |
75 | ||
76 | 2021-02-17 Nathan Sidwell <nathan@acm.org> | |
77 | ||
78 | PR c++/99116 | |
79 | * name-lookup.c (do_pushdecl): Don't peek under template_parm | |
80 | bindings here ... | |
81 | (set_identifier_type_value_with_scope): ... or here. | |
82 | (do_pushtag): Only set_identifier_type_value_with_scope at | |
83 | non-class template parm scope, and use parent scope. | |
84 | ||
85 | 2021-02-17 Nathan Sidwell <nathan@acm.org> | |
86 | ||
87 | PR c++/99071 | |
88 | * name-lookup.c (maybe_record_mergeable_decl): Deref the correct | |
89 | pointer. | |
90 | ||
91 | 2021-02-17 Patrick Palka <ppalka@redhat.com> | |
92 | ||
93 | PR debug/96997 | |
94 | PR c++/94034 | |
95 | * tree.c (build_aggr_init_expr): Revert r10-7718 change. | |
96 | ||
fab095da GA |
97 | 2021-02-12 Nathan Sidwell <nathan@acm.org> |
98 | ||
99 | * module.cc (module_state::write_cluster): Check bindings for | |
100 | imported using-decls. | |
101 | ||
102 | 2021-02-12 Nathan Sidwell <nathan@acm.org> | |
103 | ||
104 | PR c++/99040 | |
105 | * module.cc (trees_in::decl_value): Call add_module_namespace_decl | |
106 | for new namespace-scope entities. | |
107 | (module_state::read_cluster): Don't call add_module_decl here. | |
108 | * name-lookup.h (add_module_decl): Rename to ... | |
109 | (add_module_namespace_decl): ... this. | |
110 | * name-lookup.c (newbinding_bookkeeping): Move into ... | |
111 | (do_pushdecl): ... here. Its only remaining caller. | |
112 | (add_module_decl): Rename to ... | |
113 | (add_module_namespace_decl): ... here. Add checking-assert for | |
114 | circularity. Don't call newbinding_bookkeeping, just extern_c | |
115 | checking and incomplete var checking. | |
116 | ||
117 | 2021-02-12 Nathan Sidwell <nathan@acm.org> | |
118 | ||
119 | PR c++/99039 | |
120 | PR c++/99040 | |
121 | * cp-tree.h (CPTI_GLOBAL_TYPE): Delete. | |
122 | (global_type_node): Delete. | |
123 | (IDENTIFIER_TYPE_VALUE): Delete. | |
124 | (IDENTIFIER_HAS_TYPE_VALUE): Delete. | |
125 | (get_type_value): Delete. | |
126 | * name-lookup.h (identifier_type_value): Delete. | |
127 | * name-lookup.c (check_module_override): Don't | |
128 | SET_IDENTIFIER_TYPE_VALUE here. | |
129 | (do_pushdecl): Nor here. | |
130 | (identifier_type_value_1, identifier_type_value): Delete. | |
131 | (set_identifier_type_value_with_scope): Only | |
132 | SET_IDENTIFIER_TYPE_VALUE for local and class scopes. | |
133 | (pushdecl_nanmespace_level): Remove shadow stack nadgering. | |
134 | (do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE. | |
135 | * call.c (check_dtor_name): Use lookup_name. | |
136 | * decl.c (cxx_init_decl_processing): Drop global_type_node. | |
137 | * decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE | |
138 | here. | |
139 | * init.c (get_type_value): Delete. | |
140 | * pt.c (instantiate_class_template_1): Don't call pushtag or | |
141 | SET_IDENTIFIER_TYPE_VALUE here. | |
142 | (tsubst): Assert never an identifier. | |
143 | (dependent_type_p): Drop global_type_node assert. | |
144 | * typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE | |
145 | to determine ctorness. | |
146 | ||
147 | 2021-02-12 Jakub Jelinek <jakub@redhat.com> | |
148 | ||
149 | PR c++/97742 | |
150 | * parser.c (cp_parser_requirement_seq): Stop iterating after reaching | |
151 | CPP_EOF. | |
152 | ||
153 | 2021-02-12 Jason Merrill <jason@redhat.com> | |
154 | ||
155 | PR c++/97246 | |
156 | PR c++/94546 | |
157 | * pt.c (extract_fnparm_pack): Check DECL_PACK_P here. | |
158 | (register_parameter_specializations): Not here. | |
159 | ||
0c5cdb31 GA |
160 | 2021-02-11 Marek Polacek <polacek@redhat.com> |
161 | ||
162 | PR c++/95888 | |
163 | * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking | |
164 | for the partial instantiation. | |
165 | ||
166 | 2021-02-11 Jakub Jelinek <jakub@redhat.com> | |
167 | ||
168 | PR c++/99033 | |
169 | * init.c (build_zero_init_1): Handle zero initialiation of | |
170 | flexible array members like initialization of [0] arrays. | |
171 | Use integer_minus_onep instead of comparison to integer_minus_one_node | |
172 | and integer_zerop instead of comparison against size_zero_node. | |
173 | Formatting fixes. | |
174 | ||
175 | 2021-02-11 Marek Polacek <polacek@redhat.com> | |
176 | ||
177 | PR c++/99063 | |
178 | * semantics.c (finish_do_stmt): Check for unexpanded parameter packs. | |
179 | ||
180 | 2021-02-11 Patrick Palka <ppalka@redhat.com> | |
181 | ||
182 | PR c++/97582 | |
183 | * name-lookup.c (op_unqualified_lookup): Handle an ambiguous | |
184 | lookup result by discarding it if the first element is a | |
185 | class-scope declaration, otherwise return it. | |
186 | (push_operator_bindings): Handle an ambiguous lookup result by | |
187 | doing push_local_binding on each element in the list. | |
188 | ||
189 | 2021-02-11 Marek Polacek <polacek@redhat.com> | |
190 | ||
191 | * parser.c (cp_parser_selection_statement): Use vec_free. | |
192 | ||
4b37c3ea GA |
193 | 2021-02-10 Jakub Jelinek <jakub@redhat.com> |
194 | ||
195 | PR c++/98988 | |
196 | PR c++/99031 | |
197 | * constexpr.c: Include cgraph.h. | |
198 | (cxx_eval_call_expression): Call varpool_node::finalize_decl on | |
199 | heap artificial vars. | |
200 | (cxx_eval_outermost_constant_expr): Remove varpool nodes for | |
201 | heap artificial vars. | |
202 | ||
203 | 2021-02-10 Nathan Sidwell <nathan@acm.org> | |
204 | ||
205 | PR c++/99030 | |
206 | * pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the | |
207 | answer if there's no local specialization. | |
208 | ||
0a91b73e GA |
209 | 2021-02-09 Nathan Sidwell <nathan@acm.org> |
210 | ||
211 | PR c++/98944 | |
212 | * module.cc (module_state::is_rooted): Rename to ... | |
213 | (module_state::has_location): ... here. Adjust callers. | |
214 | (module_state::read_partitions): Adjust validity check. | |
215 | Don't overwrite a known location. | |
216 | ||
217 | 2021-02-09 Jason Merrill <jason@redhat.com> | |
218 | ||
219 | PR c++/96905 | |
220 | * pt.c (mark_decl_instantiated): Exit early if consteval. | |
221 | ||
222 | 2021-02-09 Jason Merrill <jason@redhat.com> | |
223 | ||
224 | PR c++/98326 | |
225 | PR c++/20408 | |
226 | * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref | |
227 | parm. | |
228 | ||
229 | 2021-02-09 Jason Merrill <jason@redhat.com> | |
230 | ||
231 | PR c++/98994 | |
232 | PR c++/97566 | |
233 | * constexpr.c (cxx_eval_store_expression): Only skip empty fields in | |
234 | RECORD_TYPE. | |
235 | ||
2da7ce23 GA |
236 | 2021-02-08 Nathan Sidwell <nathan@acm.org> |
237 | ||
238 | * decl.c (start_cleanup_fn): Push function into | |
239 | namespace. | |
240 | ||
241 | 2021-02-08 Nathan Sidwell <nathan@acm.org> | |
242 | ||
243 | PR c++/98531 | |
244 | * cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare. | |
245 | * decl.c (push_abi_namespace, pop_abi_namespace): Moved | |
246 | from rtti.c, add default namespace arg. | |
247 | (check_redeclaration_exception_specification): Allow a lazy | |
248 | builtin's eh spec to differ from an lready-declared user | |
249 | declaration. | |
250 | (declare_global_var): Use push/pop_abi_namespace. | |
251 | (get_atexit_node): Push the fndecl into a namespace. | |
252 | * rtti.c (push_abi_namespace, pop_abi_namespace): Moved to | |
253 | decl.c. | |
254 | ||
255 | 2021-02-08 Marek Polacek <polacek@redhat.com> | |
256 | ||
257 | * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo. | |
258 | ||
1ed59127 GA |
259 | 2021-02-05 Marek Polacek <polacek@redhat.com> |
260 | ||
261 | PR c++/98947 | |
262 | * call.c (build_conditional_expr_1): Don't call mark_lvalue_use | |
263 | on arg2/arg3. | |
264 | * expr.c (mark_use) <case MODIFY_EXPR>: Don't check read_p when | |
265 | issuing the -Wvolatile warning. Only set TREE_THIS_VOLATILE if | |
266 | a warning was emitted. | |
267 | ||
268 | 2021-02-05 Marek Polacek <polacek@redhat.com> | |
269 | ||
270 | PR c++/96462 | |
271 | * name-lookup.c (lookup_using_decl): Hoist the destructor check. | |
272 | ||
273 | 2021-02-05 Jakub Jelinek <jakub@redhat.com> | |
274 | ||
275 | PR c++/97878 | |
276 | * decl.c (check_array_initializer): For structured bindings, require | |
277 | the array type to be complete. | |
278 | ||
a19dd5e6 GA |
279 | 2021-02-04 Jason Merrill <jason@redhat.com> |
280 | ||
281 | PR c++/98717 | |
282 | * constraint.cc (build_concept_check_arguments): Remove assert. | |
283 | (build_concept_check): Allow empty args. | |
284 | ||
285 | 2021-02-04 Tom Greenslade (thomgree) <thomgree@cisco.com> | |
286 | ||
287 | PR c++/90926 | |
288 | * call.c (can_convert_array): Extend to handle all valid aggregate | |
289 | initializers of an array; including by string literals, not just by | |
290 | brace-init-list. | |
291 | (build_aggr_conv): Call can_convert_array more often, not just in | |
292 | brace-init-list case. | |
293 | * typeck2.c (array_string_literal_compatible_p): New function. | |
294 | (digest_init_r): call array_string_literal_compatible_p | |
295 | * cp-tree.h: (array_string_literal_compatible_p): Declare. | |
296 | ||
297 | 2021-02-04 Jason Merrill <jason@redhat.com> | |
298 | ||
299 | PR c++/98802 | |
300 | * pt.c (do_class_deduction): No aggregate guide if any_dguides_p. | |
301 | ||
302 | 2021-02-04 Jason Merrill <jason@redhat.com> | |
303 | ||
304 | PR c++/95192 | |
305 | * pt.c (tsubst_attribute): Handle error. | |
306 | (apply_late_template_attributes): Return false on error. | |
307 | (tsubst_function_decl): Check its return value. | |
308 | (tsubst_decl): Likewise. | |
309 | (push_template_decl): Assert current_template_parms. | |
310 | (tsubst_template_decl): Set current_template_parms. | |
311 | ||
9faaa807 GA |
312 | 2021-02-03 Marek Polacek <polacek@redhat.com> |
313 | ||
314 | PR c++/98951 | |
315 | * call.c (struct z_candidate): Mark rewritten and reversed as const. | |
316 | (struct NonPublicField): Mark operator() as const. | |
317 | (struct NonTrivialField): Likewise. | |
318 | ||
319 | 2021-02-03 Jason Merrill <jason@redhat.com> | |
320 | ||
321 | PR c++/98926 | |
322 | PR c++/98570 | |
323 | * pt.c (spec_hasher::equal): Set processing_template_decl. | |
324 | * Make-lang.in (check-g++-strict-gc): Add --param | |
325 | hash-table-verification-limit=10000. | |
326 | ||
327 | 2021-02-03 Marek Polacek <polacek@redhat.com> | |
328 | ||
329 | PR c++/98899 | |
330 | * parser.c (cp_parser_class_specifier_1): Use any possible | |
331 | DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN. | |
332 | (cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS. | |
333 | * pt.c (tsubst_exception_specification): Stash new_specs into | |
334 | DEFPARSE_INSTANTIATIONS. | |
335 | * tree.c (fixup_deferred_exception_variants): Use | |
336 | UNPARSED_NOEXCEPT_SPEC_P. | |
337 | ||
548b75d8 GA |
338 | 2021-02-02 Jason Merrill <jason@redhat.com> |
339 | ||
340 | PR c++/98929 | |
341 | PR c++/96199 | |
342 | * error.c (dump_expr): Ignore dummy object. | |
343 | * pt.c (tsubst_baselink): Handle dependent scope. | |
344 | ||
f7884fb1 GA |
345 | 2021-02-01 Patrick Palka <ppalka@redhat.com> |
346 | ||
347 | PR c++/98295 | |
348 | * constexpr.c (cxx_eval_array_reference): Also set | |
349 | new_ctx.object when setting new_ctx.ctor. | |
350 | ||
351 | 2021-02-01 Marek Polacek <polacek@redhat.com> | |
352 | ||
353 | PR c++/98355 | |
354 | * parser.c (cp_parser_has_attribute_expression): Use | |
355 | uses_template_parms instead of type_dependent_expression_p. | |
356 | ||
357 | 2021-02-01 Jason Merrill <jason@redhat.com> | |
358 | ||
359 | PR c++/98570 | |
360 | * cp-tree.h: Declare it. | |
361 | * pt.c (comparing_dependent_aliases): New flag. | |
362 | (template_args_equal, spec_hasher::equal): Set it. | |
363 | (dependent_alias_template_spec_p): Assert that we don't | |
364 | get non-types other than error_mark_node. | |
365 | (instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY | |
366 | on complex alias specializations. Set TYPE_DEPENDENT_P here. | |
367 | (tsubst_decl): Not here. | |
368 | * module.cc (module_state::read_cluster): Set | |
369 | comparing_dependent_aliases instead of | |
370 | comparing_specializations. | |
371 | * tree.c (cp_tree_equal): Remove comparing_specializations | |
372 | module handling. | |
373 | * typeck.c (structural_comptypes): Adjust. | |
374 | (comptypes): Remove comparing_specializations handling. | |
375 | ||
2900f2f2 GA |
376 | 2021-01-29 Nathan Sidwell <nathan@acm.org> |
377 | ||
378 | PR c++/98843 | |
379 | * module.cc (module_state_config): Add num_entities field. | |
380 | (module_state::read_entities): The entity_ary span is | |
381 | already allocated. | |
382 | (module_state::write_config): Write num_entities. | |
383 | (module_state::read_config): Read num_entities. | |
384 | (module_state::write): Set config's num_entities. | |
385 | (module_state::read_initial): Allocate the entity ary | |
386 | span here. | |
387 | (module_state::read_language): Do not set entity_lwm | |
388 | here. | |
389 | ||
390 | 2021-01-29 Marek Polacek <polacek@redhat.com> | |
391 | ||
392 | PR c++/96137 | |
393 | * parser.c (cp_parser_class_name): If parser->scope is | |
394 | error_mark_node, return it, otherwise continue. | |
395 | ||
85d04a2e GA |
396 | 2021-01-28 Jakub Jelinek <jakub@redhat.com> |
397 | ||
398 | PR c++/98841 | |
399 | * typeck.c (build_x_indirect_ref): For *this, return current_class_ref. | |
400 | ||
401 | 2021-01-28 Jakub Jelinek <jakub@redhat.com> | |
402 | ||
403 | PR c++/33661 | |
404 | PR c++/98847 | |
405 | * decl.c (cp_finish_decl): For register vars with asmspec in templates | |
406 | call set_user_assembler_name and set DECL_HARD_REGISTER. | |
407 | * pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars, | |
408 | pass asmspec_tree to cp_finish_decl. | |
409 | ||
410 | 2021-01-28 Nathan Sidwell <nathan@acm.org> | |
411 | ||
412 | PR c++/98770 | |
413 | * module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME | |
414 | check order. | |
415 | (trees_in::decl_value): Do typedef frobbing only when installing | |
416 | a new typedef, adjust is_matching_decl call. Swap is_typedef | |
417 | & TYPE_NAME check. | |
418 | (trees_in::is_matching_decl): Add is_typedef parm. Adjust variable | |
419 | names and deal with typedef checking. | |
420 | ||
aa69f0a8 GA |
421 | 2021-01-27 Jason Merrill <jason@redhat.com> |
422 | ||
423 | PR c++/97874 | |
424 | * name-lookup.c (lookup_using_decl): Clean up handling | |
425 | of dependency and inherited constructors. | |
426 | (finish_nonmember_using_decl): Handle DECL_DEPENDENT_P. | |
427 | * pt.c (tsubst_expr): Handle DECL_DEPENDENT_P. | |
428 | ||
e62bb7f0 GA |
429 | 2021-01-26 Jason Merrill <jason@redhat.com> |
430 | ||
431 | PR c++/97474 | |
432 | * call.c (type_passed_as): Don't mark invisiref restrict. | |
433 | ||
434 | 2021-01-26 Jason Merrill <jason@redhat.com> | |
435 | ||
436 | PR c++/97566 | |
437 | PR c++/98463 | |
438 | * class.c (layout_class_type): An empty field gets size 0. | |
439 | (is_empty_field): New. | |
440 | (check_bases): Check it. | |
441 | * cp-tree.h (is_empty_field): Declare it. | |
442 | * constexpr.c (cxx_eval_store_expression): Check it. | |
443 | (cx_check_missing_mem_inits): Likewise. | |
444 | * init.c (perform_member_init): Likewise. | |
445 | * typeck2.c (process_init_constructor_record): Likewise. | |
446 | ||
161e4c08 GA |
447 | 2021-01-25 Martin Sebor <msebor@redhat.com> |
448 | ||
449 | PR c++/98646 | |
450 | * cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING. | |
451 | ||
452 | 2021-01-25 Jason Merrill <jason@redhat.com> | |
453 | ||
454 | PR c++/98463 | |
455 | * constexpr.c (get_or_insert_ctor_field): Add check. | |
456 | (cxx_eval_store_expression): Handle discontinuity of refs. | |
457 | ||
6b163337 GA |
458 | 2021-01-23 Anthony Sharp <anthonysharp15@gmail.com> |
459 | ||
460 | * call.c (complain_about_access): Altered function. | |
461 | * cp-tree.h (complain_about_access): Changed parameters of function. | |
462 | (get_parent_with_private_access): Declared new function. | |
463 | * search.c (get_parent_with_private_access): Defined new function. | |
464 | * semantics.c (enforce_access): Modified function. | |
465 | * typeck.c (complain_about_unrecognized_member): Updated function | |
466 | arguments in complain_about_access. | |
467 | ||
468 | 2021-01-23 Patrick Palka <ppalka@redhat.com> | |
469 | ||
470 | PR c++/97399 | |
471 | * cp-tree.h (shared_member_p): Adjust declaration. | |
472 | * parser.c (cp_parser_init_declarator): If the storage class | |
473 | specifier is sc_static, pass true for static_p to | |
474 | cp_parser_declarator. | |
475 | (cp_parser_direct_declarator): Don't do inject_this_parm when | |
476 | the declarator is a friend. | |
477 | * search.c (shared_member_p): Change return type to bool and | |
478 | adjust function body accordingly. Return false for a dependent | |
479 | USING_DECL instead of aborting. | |
480 | * semantics.c (finish_qualified_id_expr): Rely on shared_member_p | |
481 | even when type-dependent. | |
482 | ||
8502e23d GA |
483 | 2021-01-22 Marek Polacek <polacek@redhat.com> |
484 | ||
485 | PR c++/96623 | |
486 | * parser.c (inject_parm_decls): Remove a redundant assignment. | |
487 | (cp_parser_class_specifier_1): Clear current_class_{ptr,ref} | |
488 | before calling inject_parm_decls. | |
489 | ||
490 | 2021-01-22 Jason Merrill <jason@redhat.com> | |
491 | ||
492 | PR c++/98744 | |
493 | * call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P. | |
494 | ||
495 | 2021-01-22 Jakub Jelinek <jakub@redhat.com> | |
496 | ||
497 | PR sanitizer/95693 | |
498 | * init.c (build_zero_init_1): Revert the 2018-03-06 change to | |
499 | return build_zero_cst for reference types. | |
500 | * typeck2.c (process_init_constructor_record): Instead call | |
501 | build_zero_cst here during error recovery instead of build_zero_init. | |
502 | ||
503 | 2021-01-22 Marek Polacek <polacek@redhat.com> | |
504 | ||
505 | PR c++/98545 | |
506 | * mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses | |
507 | warnings regardless of abi_version_at_least. | |
508 | (write_expression): When the expression is a dependent name | |
509 | and an operator name, write "on" before writing its name. | |
510 | ||
511 | 2021-01-22 Marek Polacek <polacek@redhat.com> | |
512 | ||
513 | PR c++/97966 | |
514 | * pt.c (instantiate_class_template_1): Instantiate members | |
515 | marked with attribute used only after we're done instantiating | |
516 | the class. | |
517 | ||
7559d465 GA |
518 | 2021-01-21 Patrick Palka <ppalka@redhat.com> |
519 | ||
520 | PR c++/71879 | |
521 | * semantics.c (finish_decltype_type): Set up a cp_unevaluated | |
522 | sentinel at the start of the function. Remove a now-redundant | |
523 | manual adjustment of cp_unevaluated_operand. | |
524 | ||
525 | 2021-01-21 Nathan Sidwell <nathan@acm.org> | |
526 | ||
527 | PR c++/98624 | |
528 | * module.cc (depset::hash::find_dependencies): Add | |
529 | module arg. | |
530 | (trees_out::core_vals): Check state before calling | |
531 | write_location. | |
532 | (sort_cluster, module_state::write): Adjust | |
533 | find_dependencies call. | |
534 | ||
535 | 2021-01-21 Jakub Jelinek <jakub@redhat.com> | |
536 | ||
537 | PR c++/98672 | |
538 | * constexpr.c (check_for_return_continue_data): Add break_stmt member. | |
539 | (check_for_return_continue): Also look for BREAK_STMT. Handle | |
540 | SWITCH_STMT by ignoring break_stmt from its body. | |
541 | (potential_constant_expression_1) <case FOR_STMT>, | |
542 | <case WHILE_STMT>: If the condition isn't constant true, check if | |
543 | the loop body can contain a return stmt. | |
544 | <case SWITCH_STMT>: Adjust check_for_return_continue_data initializer. | |
545 | <case IF_STMT>: If recursion with tf_none is successful, | |
546 | merge *jump_target from the branches - returns with highest priority, | |
547 | breaks or continues lower. If then branch is potentially constant and | |
548 | doesn't return, check the else branch if it could return, break or | |
549 | continue. | |
550 | ||
551 | 2021-01-21 Nathan Sidwell <nathan@acm.org> | |
552 | ||
553 | PR c++/98530 | |
554 | * name-lookup.c (lookup_class_binding): Rearrange a stat-hack. | |
555 | ||
b93d0e36 GA |
556 | 2021-01-20 Nathan Sidwell <nathan@acm.org> |
557 | ||
558 | * module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of | |
559 | signed type. | |
560 | ||
561 | 2021-01-20 Patrick Palka <ppalka@redhat.com> | |
562 | ||
563 | PR c++/95434 | |
564 | * pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: If tsubsting | |
565 | CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM, | |
566 | adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. | |
567 | ||
568 | 2021-01-20 Patrick Palka <ppalka@redhat.com> | |
569 | ||
570 | PR c++/82613 | |
571 | * parser.c (cp_parser_class_head): Defer access checking when | |
572 | parsing the base-clause until all bases are seen and attached | |
573 | to the class type. | |
574 | * pt.c (instantiate_class_template): Likewise when substituting | |
575 | into dependent bases. | |
576 | ||
577 | 2021-01-20 Jakub Jelinek <jakub@redhat.com> | |
578 | ||
579 | PR c++/98742 | |
580 | * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_DETACH>: If | |
581 | error_operand_p, remove clause without further checking. Check | |
582 | for non-NULL TYPE_NAME. | |
583 | ||
f35a4f96 GA |
584 | 2021-01-19 Marek Polacek <polacek@redhat.com> |
585 | ||
586 | PR c++/98659 | |
587 | * pt.c (maybe_instantiate_noexcept): Return false if FN is | |
588 | error_mark_node. | |
589 | ||
590 | 2021-01-19 Marek Polacek <polacek@redhat.com> | |
591 | ||
592 | PR c++/98687 | |
593 | * name-lookup.c (push_using_decl_bindings): New, broken out of... | |
594 | (finish_nonmember_using_decl): ...here. | |
595 | * name-lookup.h (push_using_decl_bindings): Update declaration. | |
596 | * pt.c (tsubst_expr): Update the call to push_using_decl_bindings. | |
597 | ||
598 | 2021-01-19 Patrick Palka <ppalka@redhat.com> | |
599 | ||
600 | PR c++/41437 | |
601 | PR c++/58993 | |
602 | * search.c (friend_accessible_p): If scope is a hidden friend | |
603 | defined inside a dependent class, consider access from the | |
604 | class. | |
605 | * parser.c (cp_parser_late_parsing_for_member): Don't push a | |
606 | dk_no_check access state. | |
607 | ||
608 | 2021-01-19 Marek Polacek <polacek@redhat.com> | |
609 | ||
610 | PR c++/98333 | |
611 | * parser.c (cp_parser_class_specifier_1): Perform late-parsing | |
612 | of NSDMIs before late-parsing of noexcept-specifiers. | |
613 | ||
614 | 2021-01-19 Nathan Sidwell <nathan@acm.org> | |
615 | ||
616 | * module.cc (identifier): Merge overloads. | |
617 | ||
618 | 2021-01-19 Nathan Sidwell <nathan@acm.org> | |
619 | ||
620 | PR c++/98624 | |
621 | * module.cc (trees_out::write_location): Make static. | |
622 | ||
59cf67d1 GA |
623 | 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com> |
624 | ||
625 | * parser.c (cp_parser_omp_clause_detach): New. | |
626 | (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH. | |
627 | (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH. | |
628 | * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause. | |
629 | * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause. | |
630 | Prevent use of detach with mergeable and overriding the data sharing | |
631 | mode of the event handle. | |
632 | ||
2f7f0d32 GA |
633 | 2021-01-15 Nathan Sidwell <nathan@acm.org> |
634 | ||
635 | PR c++/98538 | |
636 | * tree.c (cp_build_qualified_type_real): Propagate an array's | |
637 | dependentness to the copy, if known. | |
638 | ||
639 | 2021-01-15 Jason Merrill <jason@redhat.com> | |
640 | ||
641 | PR c++/98642 | |
642 | * call.c (unsafe_return_slot_p): Return int. | |
643 | (init_by_return_slot_p): Split out from... | |
644 | (unsafe_copy_elision_p): ...here. | |
645 | (unsafe_copy_elision_p_opt): New name for old meaning. | |
646 | (build_over_call): Adjust. | |
647 | (make_safe_copy_elision): New. | |
648 | * typeck2.c (split_nonconstant_init_1): Elide copy from safe | |
649 | list-initialization. | |
650 | * cp-tree.h: Adjust. | |
651 | ||
652 | 2021-01-15 Jason Merrill <jason@redhat.com> | |
653 | ||
654 | * call.c (base_ctor_for, make_base_init_ok): New. | |
655 | (build_over_call): Use make_base_init_ok. | |
656 | ||
657 | 2021-01-15 Jason Merrill <jason@redhat.com> | |
658 | ||
659 | PR c++/63707 | |
660 | * tree.c (build_vec_init_expr): Don't call build_vec_init_elt | |
661 | if we got a CONSTRUCTOR. | |
662 | ||
663 | 2021-01-15 Nathan Sidwell <nathan@acm.org> | |
664 | ||
665 | PR c++/98591 | |
666 | * lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only. | |
667 | ||
5fff80fd GA |
668 | 2021-01-14 Jason Merrill <jason@redhat.com> |
669 | ||
670 | * typeck2.c (process_init_constructor_record): Use fldtype | |
671 | variable consistently. | |
672 | ||
673 | 2021-01-14 Nathan Sidwell <nathan@acm.org> | |
674 | ||
675 | PR c++/98372 | |
676 | * tree.c (cp_tree_equal): Correct map_context logic. | |
677 | ||
be0851b8 GA |
678 | 2021-01-13 Marek Polacek <polacek@redhat.com> |
679 | ||
680 | PR c++/98231 | |
681 | * name-lookup.c (push_using_decl_bindings): New. | |
682 | * name-lookup.h (push_using_decl_bindings): Declare. | |
683 | * pt.c (tsubst_expr): Call push_using_decl_bindings. | |
684 | ||
685 | 2021-01-13 Nathan Sidwell <nathan@acm.org> | |
686 | ||
687 | PR c++/98626 | |
688 | * module.cc (module_add_import_initializers): Pass a | |
689 | zero-element argument vector. | |
690 | ||
6851dda2 GA |
691 | 2021-01-12 Patrick Palka <ppalka@redhat.com> |
692 | ||
693 | PR c++/98611 | |
694 | * tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit | |
695 | the template of a CTAD placeholder. | |
696 | ||
697 | 2021-01-12 Marek Polacek <polacek@redhat.com> | |
698 | ||
699 | PR c++/98620 | |
700 | * typeck2.c (process_init_constructor_record): Don't emit | |
701 | -Wmissing-field-initializers warnings in unevaluated contexts. | |
702 | ||
67fbb7f0 GA |
703 | 2021-01-11 Jakub Jelinek <jakub@redhat.com> |
704 | ||
705 | PR c++/98481 | |
706 | * class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1 | |
707 | for types. | |
708 | (mark_abi_tags_r): Likewise. | |
709 | * decl2.c (min_vis_r): Likewise. | |
710 | * tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through | |
711 | typedefs. | |
712 | ||
bf5cbb9e GA |
713 | 2021-01-08 Patrick Palka <ppalka@redhat.com> |
714 | ||
715 | PR c++/98551 | |
716 | * constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P | |
717 | instead of AGGREGATE_TYPE_P before calling replace_result_decl. | |
718 | ||
719 | 2021-01-08 Patrick Palka <ppalka@redhat.com> | |
720 | ||
721 | PR c++/98515 | |
722 | * semantics.c (check_accessibility_of_qualified_id): Punt if | |
723 | we're checking access of a scoped non-static member inside a | |
724 | class template. | |
725 | ||
7d187e4f GA |
726 | 2021-01-07 Jakub Jelinek <jakub@redhat.com> |
727 | ||
728 | PR c++/98329 | |
729 | * pt.c (tsubst_copy) <case BIT_CAST_EXPR>: Don't call | |
730 | cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set | |
731 | its location. | |
732 | (tsubst_copy_and_build): Handle BIT_CAST_EXPR. | |
733 | ||
734 | 2021-01-07 Marek Polacek <polacek@redhat.com> | |
735 | ||
736 | PR c++/98441 | |
737 | * decl.c (grokdeclarator): Move the !funcdecl_p check inside the | |
738 | !late_return_type block. | |
739 | ||
740 | 2021-01-07 Jason Merrill <jason@redhat.com> | |
741 | ||
742 | * constexpr.c (cxx_bind_parameters_in_call): Add comment. | |
743 | (cxx_eval_store_expression): Add comment. | |
744 | ||
745 | 2021-01-07 Jason Merrill <jason@redhat.com> | |
746 | ||
747 | * call.c (has_next): Factor out from... | |
748 | (next_conversion): ...here. | |
749 | (strip_standard_conversion): And here. | |
750 | (is_subseq): And here. | |
751 | (build_conv): Check it. | |
752 | (standard_conversion): Don't call build_conv | |
753 | for ck_identity. | |
754 | ||
942ae5be GA |
755 | 2021-01-06 Martin Sebor <msebor@redhat.com> |
756 | ||
757 | PR c++/95768 | |
758 | * error.c (dump_expr): Call c_pretty_printer::unary_expression. | |
759 | ||
651b8a50 GA |
760 | 2021-01-05 Patrick Palka <ppalka@redhat.com> |
761 | ||
762 | * pt.c (unify) <case TEMPLATE_PARM_INDEX>: After walking into | |
763 | the type of the NTTP, substitute into the type again. If the | |
764 | type is still dependent, don't unify the NTTP. | |
765 | ||
766 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
767 | ||
768 | * Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add | |
769 | $(CODYLIB) after $(BACKEND). | |
770 | ||
771 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
772 | ||
773 | PR c++/98469 | |
774 | * constexpr.c (cxx_eval_constant_expression) <case BIT_CAST_EXPR>: | |
775 | Punt if lval is true. | |
776 | * semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on | |
777 | the result if it has a class type. | |
778 | ||
779 | 2021-01-05 Marek Polacek <polacek@redhat.com> | |
780 | ||
781 | PR c++/82099 | |
782 | * pt.c (resolve_overloaded_unification): Call | |
783 | maybe_instantiate_noexcept after instantiating the function | |
784 | decl. | |
785 | ||
786 | 2021-01-05 Nathan Sidwell <nathan@acm.org> | |
787 | ||
788 | * parser.c (cp_parser_module_declaration): Alter diagnostic | |
789 | text to say where is permissable. | |
790 | ||
791 | 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
792 | ||
793 | PR c++/98316 | |
794 | * Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS). | |
795 | ||
2eacfdbd GA |
796 | 2021-01-02 Jan Hubicka <jh@suse.cz> |
797 | ||
798 | * cp-tree.h (cp_tree_c_finish_parsing): Declare. | |
799 | * decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing. | |
800 | * tree.c (cp_tree_c_finish_parsing): New function. | |
801 | ||
b6dd195a GA |
802 | 2021-01-01 Jakub Jelinek <jakub@redhat.com> |
803 | ||
804 | * ChangeLog-2020: Rotate ChangeLog. New file. | |
805 | ||
ad41bd84 | 806 | \f |
618e665a | 807 | Copyright (C) 2021 Free Software Foundation, Inc. |
ad41bd84 JM |
808 | |
809 | Copying and distribution of this file, with or without modification, | |
810 | are permitted in any medium without royalty provided the copyright | |
811 | notice and this notice are preserved. |