]>
Commit | Line | Data |
---|---|---|
5c389a5c GA |
1 | 2023-03-16 Jason Merrill <jason@redhat.com> |
2 | ||
3 | PR c++/105809 | |
4 | * init.cc (get_nsdmi): Split out... | |
5 | (maybe_instantiate_nsdmi_init): ...this function. | |
6 | * cp-tree.h: Declare it. | |
7 | * pt.cc (tsubst_expr): Use it. | |
8 | ||
9 | 2023-03-16 Jason Merrill <jason@redhat.com> | |
10 | ||
11 | PR c++/108242 | |
12 | * pt.cc (tsubst_expr) [TAG_DEFN]: Handle partial instantiation. | |
13 | ||
14 | 2023-03-16 Jason Merrill <jason@redhat.com> | |
15 | ||
16 | PR c++/101869 | |
17 | * semantics.cc (finish_qualified_id_expr): Don't try to build a | |
18 | pointer-to-member if the scope is an enumeration. | |
19 | ||
20 | 2023-03-16 Patrick Palka <ppalka@redhat.com> | |
21 | ||
22 | PR c++/109030 | |
23 | * constexpr.cc (maybe_constant_init_1): For an unevaluated | |
24 | non-manifestly-constant operand, don't constant evaluate | |
25 | and instead call fold_to_constant as in maybe_constant_value. | |
26 | ||
27 | 2023-03-16 Patrick Palka <ppalka@redhat.com> | |
28 | ||
29 | PR c++/100288 | |
30 | * constraint.cc (satisfaction_cache::get): Relax overly strict | |
31 | checking assert in the constraint recursion case. | |
32 | ||
33 | 2023-03-16 Jason Merrill <jason@redhat.com> | |
34 | ||
35 | PR c++/105406 | |
36 | * coroutines.cc (build_co_await): Handle lvalue 'o'. | |
37 | ||
39b1814c GA |
38 | 2023-03-15 Jason Merrill <jason@redhat.com> |
39 | ||
40 | PR c++/103871 | |
41 | PR c++/98056 | |
42 | * typeck.cc (cp_build_modify_expr): Allow array initialization of | |
43 | DECL_ARTIFICIAL variable. | |
44 | ||
45 | 2023-03-15 Marek Polacek <polacek@redhat.com> | |
46 | ||
47 | PR c++/107280 | |
48 | * constexpr.cc (cxx_eval_store_expression): Strip location wrappers. | |
49 | ||
50 | 2023-03-15 Jason Merrill <jason@redhat.com> | |
51 | ||
52 | PR c++/58538 | |
53 | * semantics.cc (check_template_template_default_arg): Check | |
54 | maybe_get_template_decl_from_type_decl. | |
55 | ||
56 | 2023-03-15 Jason Merrill <jason@redhat.com> | |
57 | ||
58 | PR c++/108179 | |
59 | PR c++/104107 | |
60 | PR c++/95036 | |
61 | * pt.cc (coerce_template_template_parms): Use args from | |
62 | DECL_CONTEXT (arg_tmpl) instead of outer_args. | |
63 | ||
64 | 2023-03-15 Jason Merrill <jason@redhat.com> | |
65 | ||
66 | PR c++/108179 | |
67 | * pt.cc (coerce_template_template_parms): Take the arg and parm | |
68 | templates directly. | |
69 | (coerce_template_template_parm): Adjust. | |
70 | (template_template_parm_bindings_ok_p): Adjust. | |
71 | (convert_template_argument): Adjust. | |
72 | ||
fd42a8fa GA |
73 | 2023-03-14 Patrick Palka <ppalka@redhat.com> |
74 | ||
75 | PR c++/96830 | |
76 | * pt.cc (push_inline_template_parms_recursive): Set | |
77 | TEMPLATE_PARMS_CONSTRAINTS. | |
78 | (push_template_decl): For an out-of-line declaration, verify | |
79 | constraints for each enclosing template scope match those of the | |
80 | original template declaratation. | |
81 | ||
82 | 2023-03-14 Patrick Palka <ppalka@redhat.com> | |
83 | ||
84 | PR c++/96830 | |
85 | * pt.cc (redeclare_class_template): Add missing "of" in | |
86 | constraint mismatch diagnostic. | |
87 | (tsubst_friend_class): For an already declared class template, | |
88 | substitute and pass the friend declaration's constraints to | |
89 | redeclare_class_template instead of passing the existing | |
90 | template's constraints. | |
91 | ||
92 | 2023-03-14 Jason Merrill <jason@redhat.com> | |
93 | ||
94 | PR c++/108468 | |
95 | * pt.cc (unify_pack_expansion): Check that TPARMS_PRIMARY_TEMPLATE | |
96 | is non-null. | |
97 | ||
98 | 2023-03-14 Jason Merrill <jason@redhat.com> | |
99 | ||
100 | PR c++/107310 | |
101 | * cp-gimplify.cc (genericize_if_stmt): Restore folding | |
102 | of constant conditions. | |
103 | ||
104 | 2023-03-14 Jakub Jelinek <jakub@redhat.com> | |
105 | ||
106 | PR c++/109096 | |
107 | * tree.cc (record_has_unique_obj_representations): Ignore unnamed | |
108 | bitfields. | |
109 | ||
a9835599 GA |
110 | 2023-03-13 Jason Merrill <jason@redhat.com> |
111 | ||
112 | PR c++/107128 | |
113 | * parser.cc (cp_parser_set_decl_spec_type): Use | |
114 | redefined_builtin_type for extended_float_type_p. | |
115 | ||
116 | 2023-03-13 Marek Polacek <polacek@redhat.com> | |
117 | ||
118 | PR c++/107532 | |
119 | * call.cc (reference_like_class_p): Check for std::span. | |
120 | ||
c8065441 GA |
121 | 2023-03-10 Jakub Jelinek <jakub@redhat.com> |
122 | ||
123 | PR c++/107558 | |
124 | * decl.cc (cp_finish_decl): Don't clear TREE_READONLY on | |
125 | automatic non-aggregate variables just because of | |
126 | -fmerge-all-constants. | |
127 | ||
128 | 2023-03-10 Jakub Jelinek <jakub@redhat.com> | |
129 | ||
130 | PR c++/109039 | |
131 | * class.cc (end_of_class): For bit-fields, instead of computing | |
132 | offset as sum of byte_position (field) and DECL_SIZE_UNIT (field), | |
133 | compute it as sum of bit_position (field) and DECL_SIZE (field) | |
134 | divided by BITS_PER_UNIT rounded up. | |
135 | ||
136 | 2023-03-10 Jason Merrill <jason@redhat.com> | |
137 | ||
138 | PR c++/108972 | |
139 | * lambda.cc (compare_lambda_template_head): Check more | |
140 | for error_mark_node. | |
141 | ||
142 | 2023-03-10 Jason Merrill <jason@redhat.com> | |
143 | ||
144 | PR c++/108566 | |
145 | * mangle.cc (anon_aggr_naming_decl): New. | |
146 | (write_unqualified_name): Use it. | |
147 | ||
148 | 2023-03-10 Jakub Jelinek <jakub@redhat.com> | |
149 | ||
150 | PR c/108079 | |
151 | * decl.cc (poplevel): Suppress OPT_Wunused_variable warning | |
152 | after diagnosing it. | |
153 | ||
154 | 2023-03-10 Jason Merrill <jason@redhat.com> | |
155 | ||
156 | PR c++/108099 | |
157 | * decl.cc (grokdeclarator): Handle non-typedef typedef_decl. | |
158 | ||
159 | 2023-03-10 Jason Merrill <jason@redhat.com> | |
160 | ||
161 | PR c++/108542 | |
162 | * class.cc (instantiate_type): Strip location wrapper. | |
163 | ||
da2b9c6e GA |
164 | 2023-03-09 Jason Merrill <jason@redhat.com> |
165 | ||
166 | PR c++/108773 | |
167 | * init.cc (find_allocator_temps_r): New. | |
168 | (combine_allocator_temps): Replace find_allocator_temp. | |
169 | (build_vec_init): Adjust. | |
170 | ||
171 | 2023-03-09 Jason Merrill <jason@redhat.com> | |
172 | ||
173 | DR 2664 | |
174 | PR c++/102529 | |
175 | * pt.cc (alias_ctad_tweaks): Continue after deduction failure. | |
176 | ||
177 | 2023-03-09 Jason Merrill <jason@redhat.com> | |
178 | Michael Spertus <mike@spertus.com> | |
179 | ||
180 | PR c++/105841 | |
181 | * pt.cc (corresponding_template_parameter_list): Split out... | |
182 | (corresponding_template_parameter): ...from here. | |
183 | (find_template_parameters): Factor out... | |
184 | (find_template_parameter_info::find_in): ...this function. | |
185 | (find_template_parameter_info::find_in_recursive): New. | |
186 | (find_template_parameter_info::found): New. | |
187 | (alias_ctad_tweaks): Only add parms used in the deduced args. | |
188 | ||
189 | 2023-03-09 Jason Merrill <jason@redhat.com> | |
190 | ||
191 | * cp-trait.def (IS_DEDUCIBLE): Add space to name. | |
192 | ||
193 | 2023-03-09 Jason Merrill <jason@redhat.com> | |
194 | ||
195 | PR c++/105841 | |
196 | * cp-trait.def (IS_DEDUCIBLE): New. | |
197 | * cxx-pretty-print.cc (pp_cxx_trait): Handle non-type. | |
198 | * parser.cc (cp_parser_trait): Likewise. | |
199 | * tree.cc (cp_tree_equal): Likewise. | |
200 | * pt.cc (tsubst_copy_and_build): Likewise. | |
201 | (type_targs_deducible_from): New. | |
202 | (alias_ctad_tweaks): Use it. | |
203 | * semantics.cc (trait_expr_value): Handle CPTK_IS_DEDUCIBLE. | |
204 | (finish_trait_expr): Likewise. | |
205 | * constraint.cc (diagnose_trait_expr): Likewise. | |
206 | * cp-tree.h (type_targs_deducible_from): Declare. | |
207 | ||
af320a16 GA |
208 | 2023-03-07 Jason Merrill <jason@redhat.com> |
209 | ||
210 | PR c++/108526 | |
211 | PR c++/106651 | |
212 | * pt.cc (tsubst_function_decl): Don't replace the closure | |
213 | parameter if DECL_STATIC_FUNCTION_P. | |
214 | ||
215 | 2023-03-07 Marek Polacek <polacek@redhat.com> | |
216 | ||
217 | PR c++/107532 | |
218 | * call.cc (reference_like_class_p): New. | |
219 | (do_warn_dangling_reference): Add new bool parameter. See through | |
220 | reference_like_class_p. | |
221 | ||
222 | 2023-03-07 Jakub Jelinek <jakub@redhat.com> | |
223 | ||
224 | PR c++/109042 | |
225 | * rtti.cc (emit_support_tinfo_1): Don't assert that last | |
226 | unemitted_tinfo_decls element is tinfo, instead pop from it only in | |
227 | that case. | |
228 | * decl2.cc (c_parse_final_cleanups): Don't call emit_tinfo_decl | |
229 | for unemitted_tinfO_decls which have already non-NULL DECL_INITIAL. | |
230 | ||
231 | 2023-03-07 Marek Polacek <polacek@redhat.com> | |
232 | ||
233 | PR c++/109030 | |
234 | * constexpr.cc (cxx_eval_call_expression): Relax assert. | |
235 | ||
236 | 2023-03-07 Marek Polacek <polacek@redhat.com> | |
237 | ||
238 | PR c++/107939 | |
239 | * constexpr.cc (potential_constant_expression_1) <case CALL_EXPR>: Pass | |
240 | 'any' when recursing on a VAR_DECL and not a pointer to function. | |
241 | ||
2858bf16 GA |
242 | 2023-03-04 Jakub Jelinek <jakub@redhat.com> |
243 | ||
244 | PR c++/108702 | |
245 | * constexpr.cc: Include toplev.h. | |
246 | (cxx_eval_constant_expression) <case DECL_EXPR>: When seeing a local | |
247 | static initialized by constant expression outside of a constexpr | |
248 | function which has been deferred by make_rtl_for_nonlocal_decl, | |
249 | call rest_of_decl_compilation on it. | |
250 | ||
2aa6673e GA |
251 | 2023-03-03 Patrick Palka <ppalka@redhat.com> |
252 | ||
253 | PR c++/108998 | |
254 | * pt.cc (el_data::skipped_trees): New data member. | |
255 | (extract_locals_r): Push to skipped_trees any unevaluated | |
256 | contexts that we skipped over. | |
257 | (extract_local_specs): For the second walk, start from each | |
258 | tree in skipped_trees. | |
259 | ||
260 | 2023-03-03 Alexandre Oliva <oliva@adacore.com> | |
261 | ||
262 | * typeck.cc (cp_build_binary_op): Suppress redundant warning | |
263 | for pfn null test in pmfn test with vbit-in-delta. | |
264 | ||
14db9ed5 GA |
265 | 2023-03-02 Jakub Jelinek <jakub@redhat.com> |
266 | ||
267 | PR target/108883 | |
268 | * cp-tree.h (enum cp_tree_index): Remove CPTI_FALLBACK_DFLOAT*_TYPE | |
269 | enumerators. | |
270 | (fallback_dfloat32_type, fallback_dfloat64_type, | |
271 | fallback_dfloat128_type): Remove. | |
272 | * rtti.cc (emit_support_tinfo_1): If not emitted already, call | |
273 | emit_tinfo_decl and remove from unemitted_tinfo_decls right away. | |
274 | (emit_support_tinfos): Move &dfloat*_type_node from fundamentals array | |
275 | into new fundamentals_with_fallback array. Call emit_support_tinfo_1 | |
276 | on elements of that array too, with the difference that if | |
277 | the type is NULL, use a fallback REAL_TYPE for it temporarily. | |
278 | Drop the !targetm.decimal_float_supported_p () handling. Call | |
279 | targetm.emit_support_tinfos at the end. | |
280 | * mangle.cc (write_builtin_type): Remove references to | |
281 | fallback_dfloat*_type. Handle bfloat16_type_node mangling. | |
282 | ||
283 | 2023-03-02 Patrick Palka <ppalka@redhat.com> | |
284 | ||
285 | PR c++/108243 | |
286 | PR c++/97553 | |
287 | * cp-gimplify.cc (cp_fully_fold): Add an internal overload that | |
288 | additionally takes and propagate an mce_value parameter, and | |
289 | define the existing public overload in terms of it. | |
290 | (cp_fully_fold_init): Pass mce_false to cp_fully_fold. | |
291 | ||
292 | 2023-03-02 Patrick Palka <ppalka@redhat.com> | |
293 | ||
294 | PR c++/108243 | |
295 | * constexpr.cc (maybe_constant_init_1): Override | |
296 | manifestly_const_eval to true if is_static. | |
297 | ||
298 | 2023-03-02 Jakub Jelinek <jakub@redhat.com> | |
299 | ||
300 | PR debug/108716 | |
301 | * cp-gimplify.cc (cp_genericize_r) <case USING_STMT>: Set | |
302 | DECL_SOURCE_LOCATION on IMPORTED_DECL to expression location | |
303 | of USING_STMT or input_location. | |
304 | ||
305 | 2023-03-02 Marek Polacek <polacek@redhat.com> | |
306 | ||
307 | PR c++/106259 | |
308 | * parser.cc (class_decl_loc_t::diag_mismatched_tags): If the first | |
309 | lookup of SPEC didn't find anything, try to look for | |
310 | most_general_template. | |
311 | ||
312 | 2023-03-02 Jakub Jelinek <jakub@redhat.com> | |
313 | ||
314 | PR c++/105839 | |
315 | * parser.cc (cp_convert_omp_range_for): Allow in assert | |
316 | decomp_first_name without DECL_HAS_VALUE_EXPR_P if it has | |
317 | error_mark_node type. | |
318 | (cp_finish_omp_range_for): Don't set DECL_HAS_VALUE_EXPR_P back | |
319 | on decls which have error_mark_node type. | |
320 | ||
c88a7c63 GA |
321 | 2023-03-01 Marek Polacek <polacek@redhat.com> |
322 | ||
323 | PR c++/107574 | |
324 | * constexpr.cc (cxx_eval_constant_expression): Emit an error when | |
325 | a PTRMEM_CST cannot be evaluated. | |
326 | ||
327 | 2023-03-01 Patrick Palka <ppalka@redhat.com> | |
328 | ||
329 | * pt.cc (tsubst_scope): Define. | |
330 | (tsubst_decl) <case USING_DECL>: Call tsubst_scope instead of | |
331 | calling tsubst_scope with tf_qualifying_scope set. | |
332 | (tsubst_qualified_id): Call tsubst_scope instead of | |
333 | calling tsubst with tf_qualifying_scope set. | |
334 | (tsubst_copy): Immediately delegate to tsubst for all TYPE_P | |
335 | trees. Remove tf_qualifying_scope manipulation. | |
336 | <case SCOPE_REF>: Call tsubst_scope instead of calling | |
337 | tsubst with tf_qualifying_scope set. | |
338 | ||
339 | 2023-03-01 Patrick Palka <ppalka@redhat.com> | |
340 | Jason Merrill <jason@redhat.com> | |
341 | ||
342 | PR c++/108219 | |
343 | PR c++/108218 | |
344 | * constexpr.cc (fold_to_constant): Define. | |
345 | (maybe_constant_value): Move up early exit test for unevaluated | |
346 | operands. Try reducing an unevaluated operand to a constant via | |
347 | fold_to_constant. | |
348 | (fold_non_dependent_expr_template): Add early exit test for | |
349 | CONSTANT_CLASS_P nodes. Try reducing an unevaluated operand | |
350 | to a constant via fold_to_constant. | |
351 | * cp-tree.h (fold_to_constant): Declare. | |
352 | ||
353 | 2023-03-01 Jakub Jelinek <jakub@redhat.com> | |
354 | ||
355 | PR c++/108606 | |
356 | * constexpr.cc (potential_constant_expression_1) <case DECL_EXPR>: | |
357 | Only recurse on DECL_INITIAL (tmp) if tmp is a VAR_DECL, otherwise | |
358 | just return true. | |
359 | ||
6f9e2f14 GA |
360 | 2023-02-28 Patrick Palka <ppalka@redhat.com> |
361 | ||
362 | PR c++/108848 | |
363 | * pt.cc (finish_template_variable): Move dependence check | |
364 | to here from ... | |
365 | (lookup_and_finish_template_variable): ... here. | |
366 | * semantics.cc (finish_id_expression_1): Call | |
367 | finish_template_variable sooner, before (and regardless of) the | |
368 | type_dependent_expression_p test. | |
369 | ||
370 | 2023-02-28 Marek Polacek <polacek@redhat.com> | |
371 | ||
372 | PR c++/108550 | |
373 | * pt.cc (lookup_and_finish_template_variable): Clear tf_partial. | |
374 | ||
65c64105 GA |
375 | 2023-02-20 Marek Polacek <polacek@redhat.com> |
376 | ||
377 | PR c++/101073 | |
378 | * constexpr.cc (cxx_eval_call_expression): Replace shortcutting trivial | |
379 | constructor/op= with a checking assert. | |
380 | ||
381 | 2023-02-20 Marek Polacek <polacek@redhat.com> | |
382 | ||
383 | PR c++/108829 | |
384 | * pt.cc (prepend_one_capture): Set LAMBDA_CAPTURE_EXPLICIT_P. | |
385 | (tsubst_lambda_expr): Pass LAMBDA_CAPTURE_EXPLICIT_P to | |
386 | prepend_one_capture. | |
387 | ||
0263e9d5 GA |
388 | 2023-02-18 Jason Merrill <jason@redhat.com> |
389 | ||
390 | DR 2518 | |
391 | PR c++/52809 | |
392 | PR c++/53638 | |
393 | PR c++/87389 | |
394 | PR c++/89741 | |
395 | PR c++/92099 | |
396 | PR c++/104041 | |
397 | PR c++/104691 | |
398 | * semantics.cc (finish_static_assert): Don't diagnose in | |
399 | template context. | |
400 | ||
7814ce44 GA |
401 | 2023-02-17 Patrick Palka <ppalka@redhat.com> |
402 | ||
403 | PR c++/108243 | |
404 | PR c++/97553 | |
405 | * cp-gimplify.cc (enum fold_flags): Define. | |
406 | (fold_flags_t): Declare. | |
407 | (cp_fold_data::genericize): Replace this data member with ... | |
408 | (cp_fold_data::fold_flags): ... this. | |
409 | (cp_fold_r): Adjust use of cp_fold_data and calls to cp_fold. | |
410 | (cp_fold_function): Likewise. | |
411 | (cp_fold_maybe_rvalue): Add an internal overload that | |
412 | additionally takes and propagates a fold_flags_t parameter, and | |
413 | define the existing public overload in terms of it. | |
414 | (cp_fold_rvalue): Likewise. | |
415 | (cp_fully_fold_init): Adjust use of cp_fold_data. | |
416 | (fold_cache): Replace with ... | |
417 | (fold_caches): ... this 2-element array of caches. | |
418 | (get_fold_cache): Define. | |
419 | (clear_fold_cache): Adjust. | |
420 | (cp_fold): Add fold_flags_t parameter. Use get_fold_cache. | |
421 | Pass flags to calls to cp_fold, cp_fold_rvalue and | |
422 | cp_fold_maybe_rvalue. | |
423 | <case CALL_EXPR>: If ff_mce_false is set, fold | |
424 | __builtin_is_constant_evaluated to false and pass mce_false to | |
425 | maybe_constant_value. | |
426 | ||
427 | 2023-02-17 Patrick Palka <ppalka@redhat.com> | |
428 | ||
429 | * constexpr.cc (constexpr_call::manifestly_const_eval): Give | |
430 | it type int instead of bool. | |
431 | (constexpr_ctx::manifestly_const_eval): Give it type mce_value | |
432 | instead of bool. | |
433 | (cxx_eval_builtin_function_call): Adjust after making | |
434 | manifestly_const_eval tri-state. | |
435 | (cxx_eval_call_expression): Likewise. | |
436 | (cxx_eval_binary_expression): Likewise. | |
437 | (cxx_eval_conditional_expression): Likewise. | |
438 | (cxx_eval_constant_expression): Likewise. | |
439 | (cxx_eval_outermost_constant_expr): Likewise. | |
440 | (cxx_constant_value): Likewise. | |
441 | (cxx_constant_dtor): Likewise. | |
442 | (maybe_constant_value): Give manifestly_const_eval parameter | |
443 | type mce_value instead of bool and adjust accordingly. | |
444 | (fold_non_dependent_expr_template): Adjust call | |
445 | to cxx_eval_outermost_constant_expr. | |
446 | (fold_non_dependent_expr): Likewise. | |
447 | (maybe_constant_init_1): Likewise. | |
448 | * constraint.cc (satisfy_atom): Adjust call to | |
449 | maybe_constant_value. | |
450 | * cp-tree.h (enum class mce_value): Define. | |
451 | (maybe_constant_value): Adjust manifestly_const_eval parameter | |
452 | type and default argument. | |
453 | * decl.cc (compute_array_index_type_loc): Adjust call to | |
454 | maybe_constant_value. | |
455 | * pt.cc (convert_nontype_argument): Likewise. | |
456 | ||
88cc4495 GA |
457 | 2023-02-16 Patrick Palka <ppalka@redhat.com> |
458 | ||
459 | PR c++/107773 | |
460 | * cp-tree.h (enum tsubst_flags): New flag tf_qualifying_scope. | |
461 | * decl.cc (make_typename_type): Use lookup_member instead of | |
462 | lookup_field. If tf_qualifying_scope is set, pass want_type=true | |
463 | instead of =false to lookup_member. Generalize format specifier | |
464 | in diagnostic to handle both type and non-type bindings. | |
465 | * pt.cc (tsubst_aggr_type_1): Clear tf_qualifying_scope. Tidy | |
466 | the function. | |
467 | (tsubst_decl) <case USING_DECL>: Set tf_qualifying_scope when | |
468 | substituting USING_DECL_SCOPE. | |
469 | (tsubst): Clear tf_qualifying_scope right away and remember if | |
470 | it was set. Do the same for tf_tst_ok sooner. | |
471 | <case TYPENAME_TYPE>: Set tf_qualifying_scope when substituting | |
472 | TYPE_CONTEXT. Pass tf_qualifying_scope to make_typename_type | |
473 | if it was set. | |
474 | (tsubst_qualified_id): Set tf_qualifying_scope when substituting | |
475 | the scope. | |
476 | (tsubst_copy): Clear tf_qualifying_scope and remember if it was | |
477 | set. | |
478 | <case SCOPE_REF>: Set tf_qualifying_scope when substituting the | |
479 | scope. | |
480 | <case *_TYPE>: Pass tf_qualifying_scope to tsubst if it was set. | |
481 | * search.cc (lookup_member): Document default argument. | |
482 | ||
483 | 2023-02-16 Patrick Palka <ppalka@redhat.com> | |
484 | ||
485 | * cp-tree.h: Mechanically drop static from static inline | |
486 | functions via s/^static inline/inline/g. | |
487 | ||
05467d08 GA |
488 | 2023-02-15 Marek Polacek <polacek@redhat.com> |
489 | ||
490 | PR c++/106675 | |
491 | * call.cc (joust_maybe_elide_copy): Return false for ck_ambig. | |
492 | ||
e92e2c96 GA |
493 | 2023-02-10 Marek Polacek <polacek@redhat.com> |
494 | ||
495 | PR c++/107079 | |
496 | * call.cc (set_up_extended_ref_temp): Pass var to maybe_constant_init. | |
497 | ||
498 | 2023-02-09 Tobias Burnus <tobias@codesourcery.com> | |
499 | ||
500 | * parser.cc (cp_parser_omp_allocate): Parse align | |
501 | clause and check for restrictions. | |
502 | ||
503 | 2023-02-09 Jakub Jelinek <jakub@redhat.com> | |
504 | ||
505 | PR c++/108698 | |
506 | * mangle.cc (write_expression, write_template_arg): Handle | |
507 | EXCESS_PRECISION_EXPR with REAL_CST operand as | |
508 | write_template_arg_literal on fold_convert of the REAL_CST | |
509 | to EXCESS_PRECISION_EXPR type. | |
510 | ||
f0e73dd0 GA |
511 | 2023-02-06 Patrick Palka <ppalka@redhat.com> |
512 | ||
513 | PR c++/107461 | |
514 | * cp-tree.h (call_expr_dependent_name): Declare. | |
515 | * pt.cc (iterative_hash_template_arg) <case CALL_EXPR>: Use | |
516 | call_expr_dependent_name instead of dependent_name. | |
517 | * tree.cc (call_expr_dependent_name): Define. | |
518 | (called_fns_equal): Adjust to take two CALL_EXPRs instead of | |
519 | CALL_EXPR_FNs thereof. Use call_expr_dependent_name instead | |
520 | of dependent_name. | |
521 | (cp_tree_equal) <case CALL_EXPR>: Adjust call to called_fns_equal. | |
522 | ||
49e52115 GA |
523 | 2023-02-03 Marek Polacek <polacek@redhat.com> |
524 | ||
525 | PR c++/108158 | |
526 | * constexpr.cc (cxx_eval_array_reference): Don't replace | |
527 | new_ctx.object. | |
528 | ||
529 | 2023-02-03 Patrick Palka <ppalka@redhat.com> | |
530 | ||
531 | PR c++/107461 | |
532 | * semantics.cc (finish_call_expr): Strip ADDR_EXPR from | |
533 | the selected callee during overload set pruning. | |
534 | ||
535 | 2023-02-03 Patrick Palka <ppalka@redhat.com> | |
536 | ||
537 | PR c++/96745 | |
538 | * class.cc (check_methods): Diagnose an unviable OVERLOAD | |
539 | set for CLASSTYPE_DESTRUCTOR differently from an ambiguous one. | |
540 | Then prune the OVERLOAD to a single function. | |
541 | (check_bases_and_members): Handle CLASSTYPE_DESTRUCTOR being | |
542 | an OVERLOAD when calling deduce_noexcept_on_destructor. | |
543 | Document why it has to be called before check_methods. | |
544 | ||
545 | 2023-02-03 Patrick Palka <ppalka@redhat.com> | |
546 | ||
547 | PR c++/108579 | |
548 | * class.cc (check_methods): Swap order of constraints_satisfied_p | |
549 | and copy/move_fn_p tests. | |
550 | ||
0a251e74 GA |
551 | 2023-02-01 Marek Polacek <polacek@redhat.com> |
552 | ||
553 | PR c++/107755 | |
554 | * call.cc (build_new_op): Don't call warn_logical_operator when | |
555 | processing a template. | |
556 | ||
557 | 2023-02-01 Jakub Jelinek <jakub@redhat.com> | |
558 | ||
559 | PR c++/108607 | |
560 | * constexpr.cc (cxx_eval_constant_expression): Handle OMP_* | |
561 | and OACC_* constructs as non-constant. | |
562 | (potential_constant_expression_1): Handle OMP_SCAN and OMP_SCOPE. | |
563 | ||
564 | 2023-02-01 Jason Merrill <jason@redhat.com> | |
565 | ||
566 | * class.cc (note_name_declared_in_class): Change from permerror to | |
567 | -Wchanges-meaning pedwarn, forcing -pedantic-errors for most cases. | |
568 | ||
317525b0 GA |
569 | 2023-01-31 Jason Merrill <jason@redhat.com> |
570 | ||
571 | PR c++/108559 | |
572 | * cp-gimplify.cc (any_non_eliding_target_exprs): New. | |
573 | (cp_genericize_init): Check it. | |
574 | ||
575 | 2023-01-31 Marek Polacek <polacek@redhat.com> | |
576 | ||
577 | PR c++/107593 | |
578 | PR c++/108597 | |
579 | * cp-tree.h (instantiation_dependent_expression_p): Don't | |
580 | declare here. | |
581 | ||
2371d100 GA |
582 | 2023-01-26 Marek Polacek <polacek@redhat.com> |
583 | ||
584 | PR c++/105300 | |
585 | * parser.cc: Remove unnecessary forward declarations. | |
586 | (cp_parser_string_literal): New wrapper. | |
587 | (cp_parser_string_literal_common): Renamed from | |
588 | cp_parser_string_literal. Add a bool parameter. Give an error when | |
589 | UDLs are not permitted. | |
590 | (cp_parser_userdef_string_literal): New wrapper. | |
591 | (finish_userdef_string_literal): Renamed from | |
592 | cp_parser_userdef_string_literal. | |
593 | (cp_parser_primary_expression): Call cp_parser_userdef_string_literal | |
594 | instead of cp_parser_string_literal. | |
595 | (cp_parser_linkage_specification): Move a variable declaration closer | |
596 | to its first use. | |
597 | (cp_parser_static_assert): Likewise. | |
598 | (cp_parser_operator): Call cp_parser_userdef_string_literal instead of | |
599 | cp_parser_string_literal. | |
600 | (cp_parser_asm_definition): Move a variable declaration closer to its | |
601 | first use. | |
602 | (cp_parser_asm_specification_opt): Move variable declarations closer to | |
603 | their first use. | |
604 | (cp_parser_asm_operand_list): Likewise. | |
605 | (cp_parser_asm_clobber_list): Likewise. | |
606 | ||
607 | 2023-01-26 Jakub Jelinek <jakub@redhat.com> | |
608 | ||
609 | PR c++/108503 | |
610 | * parser.cc (cp_convert_omp_range_for): If cp_finish_decomp has been | |
611 | called in !processing_template_decl with processing_template_decl | |
612 | temporarily set, clear DECL_HAS_VALUE_EXPR_P on the vars temporarily. | |
613 | (cp_finish_omp_range_for): And set it back again here. | |
614 | ||
9bb6515b GA |
615 | 2023-01-25 Jakub Jelinek <jakub@redhat.com> |
616 | ||
617 | PR c++/108525 | |
618 | * mangle.cc (write_closure_type_name): Don't assume all | |
619 | lambda operator() fns are methods. | |
620 | ||
0fa22168 GA |
621 | 2023-01-24 Jason Merrill <jason@redhat.com> |
622 | ||
623 | PR c++/108504 | |
624 | * parser.cc (cp_lexer_new_main): Pass C_LEX_STRING_NO_JOIN for first | |
625 | token, too. | |
626 | ||
627 | 2023-01-24 Jason Merrill <jason@redhat.com> | |
628 | ||
629 | PR c++/108526 | |
630 | * pt.cc (tsubst_function_decl): Handle static lambda. | |
631 | ||
632 | 2023-01-24 Jakub Jelinek <jakub@redhat.com> | |
633 | ||
634 | PR c++/108474 | |
635 | * cp-gimplify.cc (cp_fold_r): Revert 2023-01-19 changes. | |
636 | ||
637 | 2023-01-24 Jason Merrill <jason@redhat.com> | |
638 | ||
639 | PR c++/107303 | |
640 | PR c++/107329 | |
641 | * cp-gimplify.cc (cp_fold_r) [TARGET_EXPR]: In case of double | |
642 | TARGET_EXPR, keep the outer one instead of the inner one. | |
643 | (maybe_replace_decl): New. | |
644 | ||
607f278a GA |
645 | 2023-01-23 Jason Merrill <jason@redhat.com> |
646 | ||
647 | PR c++/107267 | |
648 | * cp-gimplify.cc (cp_gimplify_init_expr): Allow unexpected elision | |
649 | of trivial types. | |
650 | ||
651 | 2023-01-23 Marek Polacek <polacek@redhat.com> | |
652 | ||
653 | PR c++/107797 | |
654 | * cvt.cc (ocp_convert): copy_warning when creating a new | |
655 | COMPOUND_EXPR. | |
656 | * init.cc (build_new_1): Suppress -Wunused-value on | |
657 | compiler-generated COMPOUND_EXPRs. | |
658 | ||
659 | 2023-01-23 Jason Merrill <jason@redhat.com> | |
660 | ||
661 | PR c++/108195 | |
662 | * call.cc (build_user_type_conversion_1): Check whether the | |
663 | iterators also find a list ctor. | |
664 | ||
665 | 2023-01-23 Jason Merrill <jason@redhat.com> | |
666 | ||
667 | PR c++/108496 | |
668 | * decl.cc (grokdeclarator): Check whether DECL_RESULT is already | |
669 | set. | |
670 | ||
671 | 2023-01-23 Jason Merrill <jason@redhat.com> | |
672 | ||
673 | PR c++/53288 | |
674 | DR 1299 | |
675 | * call.cc (extend_ref_init_temps_1): Handle ptrmem expression. | |
676 | ||
0846336d GA |
677 | 2023-01-19 Jakub Jelinek <jakub@redhat.com> |
678 | ||
679 | PR c++/108437 | |
680 | * cp-tree.h (keep_unused_object_arg): Declare. | |
681 | * call.cc (keep_unused_object_arg): No longer static. | |
682 | * tree.cc (build_min_non_dep_op_overload): Handle ARRAY_REF | |
683 | with overload being static member function. | |
684 | ||
685 | 2023-01-19 Jakub Jelinek <jakub@redhat.com> | |
686 | ||
687 | PR c++/53932 | |
688 | * cp-gimplify.cc (cp_fold_r): During cp_fully_fold_init replace | |
689 | DECL_ANON_UNION_VAR_P VAR_DECLs with their corresponding | |
690 | DECL_VALUE_EXPR. | |
691 | ||
f457a62e GA |
692 | 2023-01-16 Jakub Jelinek <jakub@redhat.com> |
693 | ||
694 | PR c++/105593 | |
695 | * decl.cc (cp_finish_decl): Check warning_enabled_at | |
696 | at the DECL_SOURCE_LOCATION (decl) for OPT_Winit_self instead | |
697 | of warn_init_self. | |
698 | ||
5013c3bb GA |
699 | 2023-01-14 Jakub Jelinek <jakub@redhat.com> |
700 | ||
701 | PR c++/108365 | |
702 | * typeck.cc (cp_build_binary_op): Use may_shorten_divmod for integral | |
703 | division or modulo. | |
704 | ||
705 | 2023-01-13 Jakub Jelinek <jakub@redhat.com> | |
706 | ||
707 | PR c++/108285 | |
708 | * cvt.cc (cp_convert_and_check): For EXCESS_PRECISION_EXPR | |
709 | use its operand except that for warning purposes use the original | |
710 | EXCESS_PRECISION_EXPR. | |
711 | * call.cc (convert_like_internal): Only look through | |
712 | EXCESS_PRECISION_EXPR when calling cp_convert, not when calling | |
713 | cp_convert_and_check. | |
714 | ||
84723aca GA |
715 | 2023-01-09 Jakub Jelinek <jakub@redhat.com> |
716 | ||
717 | PR c++/105838 | |
718 | PR c++/108047 | |
719 | PR c++/108266 | |
720 | * call.cc (maybe_init_list_as_range): Always return NULL_TREE if | |
721 | processing_template_decl. | |
722 | ||
53ef7c1d GA |
723 | 2023-01-05 Patrick Palka <ppalka@redhat.com> |
724 | ||
725 | PR c++/108275 | |
726 | * parser.cc (cp_parser_class_head): Use dk_deferred instead of | |
727 | dk_no_check when parsing the class name. | |
728 | ||
729 | 2023-01-05 Jakub Jelinek <jakub@redhat.com> | |
730 | ||
731 | PR c++/108286 | |
732 | * semantics.cc (finish_omp_target_clauses): Ignore clauses other than | |
733 | OMP_CLAUSE_MAP. | |
734 | ||
faccda27 GA |
735 | 2023-01-04 Patrick Palka <ppalka@redhat.com> |
736 | ||
737 | PR c++/108282 | |
738 | * decl2.cc (mark_single_function): Ignore mark_used failure | |
739 | only in a non-SFINAE context rather than in a SFINAE one. | |
740 | ||
741 | 2023-01-04 Jakub Jelinek <jakub@redhat.com> | |
742 | ||
743 | PR c++/108206 | |
744 | * decl.cc (merge_default_template_args): Return false if either | |
745 | new_parm or old_parm are erroneous. | |
746 | ||
ad41bd84 | 747 | \f |
d64f8779 | 748 | Copyright (C) 2023 Free Software Foundation, Inc. |
ad41bd84 JM |
749 | |
750 | Copying and distribution of this file, with or without modification, | |
751 | are permitted in any medium without royalty provided the copyright | |
752 | notice and this notice are preserved. |