]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
2a9637b2
GA
12024-01-24 Patrick Palka <ppalka@redhat.com>
2
3 PR c++/113529
4 * call.cc (add_operator_candidates): Propagate error_mark_node
5 result after recursing to find rewritten candidates.
6
3128786c
GA
72024-01-23 Marek Polacek <polacek@redhat.com>
8
9 PR c++/113256
10 PR c++/111607
11 PR c++/109640
12 * call.cc (do_warn_dangling_reference): Don't warn if the temporary
13 is of lambda type.
14
152024-01-23 Nathaniel Shead <nathanieloshead@gmail.com>
16
17 PR c++/112820
18 PR c++/102607
19 * module.cc (trees_out::lang_type_bools): Write interface_only
20 and interface_unknown.
21 (trees_in::lang_type_bools): Read the above flags.
22 (trees_in::decl_value): Reset CLASSTYPE_INTERFACE_* except for
23 extern templates.
24 (trees_in::read_class_def): Remove buggy extern template
25 handling.
26
c2544854
GA
272024-01-19 Jason Merrill <jason@redhat.com>
28
29 PR c++/113498
30 * pt.cc (decl_template_info): New fn.
31 (get_template_info): Use it.
32
332024-01-19 Jason Merrill <jason@redhat.com>
34
35 PR c++/112632
36 PR c++/112594
37 PR c++/111357
38 PR c++/104594
39 PR c++/67898
40 * cp-tree.h (IMPLICIT_CONV_EXPR_FORCED): New.
41 * pt.cc (expand_integer_pack): Remove 111357 workaround.
42 (maybe_convert_nontype_argument): Add force parm.
43 (convert_template_argument): Handle alias template args
44 specially.
45 (tsubst_expr): Don't ignore IMPLICIT_CONV_EXPR_NONTYPE_ARG.
46 * error.cc (dump_expr) [CASE_CONVERT]: Handle null optype.
47
bb0f96ab
GA
482024-01-18 Marek Polacek <polacek@redhat.com>
49
50 PR c++/113389
51 * decl.cc (grokdeclarator) <case cdk_function>: Set TREE_PURPOSE to
52 NULL_TREE when emitting an error.
53
2c213ac9
GA
542024-01-17 Nathaniel Shead <nathanieloshead@gmail.com>
55
56 PR c++/112588
57 * module.cc (trees_in::read_function_def): Don't overwrite
58 arguments.
59
602024-01-17 Patrick Palka <ppalka@redhat.com>
61
62 PR c++/113242
63 PR c++/99493
64 * pt.cc (invalid_tparm_referent_p) <case ADDR_EXPR>: Suppress
65 DECL_ARTIFICIAL rejection test for class NTTP objects.
66
1a177974
GA
672024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
68
69 PR c++/113292
70 * decl2.cc (get_tls_wrapper_fn): Set DECL_CONTEXT.
71 (c_parse_final_cleanups): Suppress warning for no definition of
72 TLS wrapper functions in header modules.
73 * module.cc (trees_out::lang_decl_vals): Write wrapped variable
74 for TLS wrapper functions.
75 (trees_in::lang_decl_vals): Read it.
76 (trees_out::decl_value): Write TLS model for thread-local vars.
77 (trees_in::decl_value): Read it for new decls. Remember to emit
78 definitions of TLS wrapper functions later.
79
802024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
81
82 * name-lookup.h (enum scope_kind): Add 'sk_count'.
83 * name-lookup.cc (cp_binding_level_descriptor): Add missing
84 scope kinds. Add assertion that the list is up to date. Fix
85 handling of explicit_spec_p.
86
872024-01-16 Marek Polacek <polacek@redhat.com>
88
89 * decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic
90 messages.
91
922024-01-16 Marek Polacek <polacek@redhat.com>
93
94 PR c++/113340
95 * decl.cc (grokdeclarator) <case cdk_function>: Clear
96 is_xobj_member_function in case of an error.
97
982024-01-16 waffl3x <waffl3x@protonmail.com>
99
100 PR c++/113307
101 * parser.cc (cp_parser_parameter_declaration): Reject packs
102 on xobj params.
103
be035ec4
GA
1042024-01-15 Marek Polacek <polacek@redhat.com>
105
106 PR c++/110065
107 * parser.cc (cp_parser_template_type_arg): Add auto checking.
108
1092024-01-15 Patrick Palka <ppalka@redhat.com>
110
111 * parser.cc (cp_parser_check_access_in_redeclaration): Don't
112 check access for a partial or explicit specialization.
113 * pt.cc (maybe_new_partial_specialization): Don't set TREE_PRIVATE
114 or TREE_PROTECTED on the newly created partial specialization.
115
1162024-01-15 Patrick Palka <ppalka@redhat.com>
117
118 PR c++/104634
119 * pt.cc (maybe_new_partial_specialization): Propagate TREE_PUBLIC
120 to the newly created partial specialization.
121
1222024-01-15 Patrick Palka <ppalka@redhat.com>
123
124 PR c++/109899
125 * init.cc (build_vec_delete_1): Assume expr_noexcept_p returns
126 false in a template context.
127
ed5bf208
GA
1282024-01-13 Jakub Jelinek <jakub@redhat.com>
129
130 * mangle.cc (write_nested_name): Mangle explicit object
131 member functions with H as per
132 https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal.
133
444a31f3
GA
1342024-01-12 Jason Merrill <jason@redhat.com>
135
136 PR c++/113038
137 * name-lookup.cc (lookup_elaborated_type): Look for bindings
138 in the global namespace in the ABI namespace.
139
1402024-01-12 Jason Merrill <jason@redhat.com>
141
142 * call.cc (reversed_match): New.
143 (enum class pmatch): New enum.
144 (cand_parms_match): Add match_kind parm.
145 (object_parms_correspond): Add fn parms.
146 (joust): Adjust.
147 * class.cc (xobj_iobj_parameters_correspond): Rename to...
148 (iobj_parm_corresponds_to): ...this. Take the other
149 type instead of a second function.
150 (object_parms_correspond): Adjust.
151 * cp-tree.h (iobj_parm_corresponds_to): Declare.
152
1a80e955
GA
1532024-01-11 Jason Merrill <jason@redhat.com>
154
155 PR c++/113191
156 * class.cc (xobj_iobj_parameters_correspond): Add context parm.
157 (object_parms_correspond): Factor out of...
158 (add_method): ...here.
159 * method.cc (defaulted_late_check): Use it.
160 * call.cc (class_of_implicit_object): New.
161 (object_parms_correspond): Overload taking two candidates.
162 (cand_parms_match): Use it.
163 (joust): Check reversed before comparing constraints.
164 * cp-tree.h (object_parms_correspond): Declare.
165
45af8962
GA
1662024-01-10 Tamar Christina <tamar.christina@arm.com>
167
168 * parser.cc (cp_parser_pragma): Initialize to false.
169
73ce73fc
GA
1702024-01-09 Jason Merrill <jason@redhat.com>
171
172 * semantics.cc (is_object_parameter): New.
173 * cp-tree.h (is_object_parameter): Declare.
174 * call.cc (maybe_warn_class_memaccess): Use it.
175 * search.cc (field_access_p): Use it.
176 (class_of_object_parm): New.
177 (field_accessor_p): Adjust for explicit object parms.
178
1792024-01-09 Jason Merrill <jason@redhat.com>
180
181 * call.cc (build_over_call): Refactor handle_arg lambda.
182 * class.cc (xobj_iobj_parameters_correspond): Fix FIXME.
183 * method.cc (defaulted_late_check): Adjust comments.
184
1852024-01-09 waffl3x <waffl3x@protonmail.com>
186
187 PR c++/102609
188 PR c++/102609
189 C++23 P0847R7 (deducing this) - CWG2586.
190 * decl.cc (copy_fn_p): Accept xobj copy assignment functions.
191 (move_signature_fn_p): Accept xobj move assignment functions.
192 * method.cc (do_build_copy_assign): Handle defaulted xobj member
193 functions.
194 (defaulted_late_check): Comment.
195 (defaultable_fn_check): Comment.
196
1972024-01-09 waffl3x <waffl3x@protonmail.com>
198
199 PR c++/102609
200 PR c++/102609
201 C++23 P0847R7 (deducing this) - xobj lambdas.
202 * lambda.cc (build_capture_proxy): Don't fold direct object types.
203 * parser.cc (cp_parser_lambda_declarator_opt): Handle xobj lambdas,
204 diagnostics. Comments also updated.
205 * pt.cc (tsubst_function_decl): Handle xobj lambdas. Check object
206 type of xobj lambda call operator, diagnose incorrect types.
207 (tsubst_lambda_expr): Update comment.
208 * semantics.cc (finish_decltype_type): Also consider by-value object
209 parameter qualifications.
210
2112024-01-09 waffl3x <waffl3x@protonmail.com>
212
213 PR c++/102609
214 PR c++/102609
215 C++23 P0847R7 (deducing this) - diagnostics.
216 * class.cc (resolve_address_of_overloaded_function): Diagnostics.
217 * cp-tree.h (TFF_XOBJ_FUNC): Define.
218 * decl.cc (grokfndecl): Diagnostics.
219 (grokdeclarator): Diagnostics.
220 * error.cc (dump_aggr_type): Pass TFF_XOBJ_FUNC.
221 (dump_lambda_function): Formatting for xobj lambda.
222 (dump_function_decl): Pass TFF_XOBJ_FUNC.
223 (dump_parameters): Formatting for xobj member functions.
224 (function_category): Formatting for xobj member functions.
225 * parser.cc (cp_parser_decl_specifier_seq): Diagnostics.
226 (cp_parser_parameter_declaration): Diagnostics.
227 * search.cc (look_for_overrides_here): Make xobj member functions
228 override.
229 (look_for_overrides_r): Reject an overriding xobj member function
230 and diagnose it.
231 * semantics.cc (finish_this_expr): Diagnostics.
232 * typeck.cc (cp_build_addr_expr_1): Diagnostics.
233
2342024-01-09 waffl3x <waffl3x@protonmail.com>
235
236 PR c++/102609
237 PR c++/102609
238 C++23 P0847R7 (deducing this) - initial functionality.
239 * class.cc (xobj_iobj_parameters_correspond): New function, checks
240 for corresponding object parameters between xobj and iobj member
241 functions.
242 (add_method): Handle object parameters of xobj member functions, use
243 xobj_iobj_parameters_correspond.
244 * call.cc (build_over_call): Refactor, handle xobj member functions.
245 (cand_parms_match): Handle object parameters of xobj and iobj member
246 functions, use xobj_iobj_parameters_correspond.
247 * cp-tree.h (enum cp_decl_spec): Add ds_this, add comments.
248 * decl.cc (grokfndecl): Add xobj_func_p parameter. For xobj member
249 functions, Set xobj_flag, don't set static_function flag.
250 (grokdeclarator): Handle xobj member functions, tell grokfndecl.
251 (grok_op_properties): Don't error for xobj operators.
252 * parser.cc (cp_parser_decl_specifier_seq): Handle this specifier.
253 (cp_parser_parameter_declaration): Set default argument to
254 "this_identifier" for xobj parameters.
255 (set_and_check_decl_spec_loc): Add "this", add comments.
256 * tree.cc (build_min_non_dep_op_overload): Handle xobj operators.
257 * typeck.cc (cp_build_addr_expr_1): Handle address-of xobj member
258 functions.
259
2602024-01-09 waffl3x <waffl3x@protonmail.com>
261 Jason Merrill <jason@redhat.com>
262
263 PR c++/102609
264 * cp-tree.h (struct lang_decl_fn): New data member.
265 (DECL_NONSTATIC_MEMBER_FUNCTION_P): Poison.
266 (DECL_IOBJ_MEMBER_FUNCTION_P): Define.
267 (DECL_FUNCTION_XOBJ_FLAG): Define.
268 (DECL_XOBJ_MEMBER_FUNCTION_P): Define.
269 (DECL_OBJECT_MEMBER_FUNCTION_P): Define.
270 (DECL_FUNCTION_MEMBER_P): Don't use
271 DECL_NONSTATIC_MEMBER_FUNCTION_P.
272 (DECL_CONST_MEMFUNC_P): Likewise.
273 (DECL_VOLATILE_MEMFUNC_P): Likewise.
274 (DECL_NONSTATIC_MEMBER_P): Likewise.
275 * module.cc (trees_out::lang_decl_bools): Handle xobj_flag.
276 (trees_in::lang_decl_bools): Handle xobj_flag.
277 * call.cc (build_this_conversion)
278 (add_function_candidate)
279 (add_template_candidate_real)
280 (add_candidates)
281 (maybe_warn_class_memaccess)
282 (cand_parms_match)
283 (joust)
284 (do_warn_dangling_reference)
285 * class.cc (finalize_literal_type_property)
286 (finish_struct)
287 (resolve_address_of_overloaded_function)
288 * constexpr.cc (is_valid_constexpr_fn)
289 (cxx_bind_parameters_in_call)
290 * contracts.cc (build_contract_condition_function)
291 * cp-objcp-common.cc (cp_decl_dwarf_attribute)
292 * cxx-pretty-print.cc (cxx_pretty_printer::postfix_expression)
293 (cxx_pretty_printer::declaration_specifiers)
294 (cxx_pretty_printer::direct_declarator)
295 * decl.cc (cp_finish_decl)
296 (grok_special_member_properties)
297 (start_preparsed_function)
298 (record_key_method_defined)
299 * decl2.cc (cp_handle_deprecated_or_unavailable)
300 * init.cc (find_uninit_fields_r)
301 (build_offset_ref)
302 * lambda.cc (lambda_expr_this_capture)
303 (maybe_generic_this_capture)
304 (nonlambda_method_basetype)
305 * mangle.cc (write_nested_name)
306 * method.cc (early_check_defaulted_comparison)
307 (skip_artificial_parms_for)
308 (num_artificial_parms_for)
309 * pt.cc (is_specialization_of_friend)
310 (determine_specialization)
311 (copy_default_args_to_explicit_spec)
312 (check_explicit_specialization)
313 (tsubst_contract_attribute)
314 (check_non_deducible_conversions)
315 (more_specialized_fn)
316 (maybe_instantiate_noexcept)
317 (register_parameter_specializations)
318 (value_dependent_expression_p)
319 * search.cc (shared_member_p)
320 (lookup_member)
321 (field_access_p)
322 * semantics.cc (finish_omp_declare_simd_methods)
323 * tree.cc (lvalue_kind)
324 * typeck.cc (invalid_nonstatic_memfn_p): Don't use
325 DECL_NONSTATIC_MEMBER_FUNCTION_P.
326
3272024-01-09 Julian Brown <julian@codesourcery.com>
328
329 * constexpr.cc (potential_consant_expression_1): Handle
330 OMP_ARRAY_SECTION.
331 * cp-tree.h (grok_omp_array_section, build_omp_array_section): Add
332 prototypes.
333 * decl2.cc (grok_omp_array_section): New function.
334 * error.cc (dump_expr): Handle OMP_ARRAY_SECTION.
335 * parser.cc (cp_parser_new): Initialize parser->omp_array_section_p.
336 (cp_parser_statement_expr): Disallow array sections.
337 (cp_parser_postfix_open_square_expression): Support OMP_ARRAY_SECTION
338 parsing.
339 (cp_parser_parenthesized_expression_list, cp_parser_lambda_expression,
340 cp_parser_braced_list): Disallow array sections.
341 (cp_parser_omp_var_list_no_open): Remove ALLOW_DEREF parameter, add
342 MAP_LVALUE in its place. Support generalised lvalue parsing for
343 OpenMP map, to and from clauses. Use OMP_ARRAY_SECTION
344 code instead of TREE_LIST to represent OpenMP array sections.
345 (cp_parser_omp_var_list): Remove ALLOW_DEREF parameter, add MAP_LVALUE.
346 Pass to cp_parser_omp_var_list_no_open.
347 (cp_parser_oacc_data_clause): Update call to cp_parser_omp_var_list.
348 (cp_parser_omp_clause_map): Add sk_omp scope around
349 cp_parser_omp_var_list_no_open call.
350 * parser.h (cp_parser): Add omp_array_section_p field.
351 * pt.cc (tsubst, tsubst_copy, tsubst_omp_clause_decl,
352 tsubst_copy_and_build): Add OMP_ARRAY_SECTION support.
353 * semantics.cc (handle_omp_array_sections_1, handle_omp_array_sections,
354 cp_oacc_check_attachments, finish_omp_clauses): Use OMP_ARRAY_SECTION
355 instead of TREE_LIST where appropriate. Handle more types of map
356 expression.
357 * typeck.cc (build_omp_array_section): New function.
358
59e0c218
GA
3592024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
360
361 * module.cc (trees_out::write_var_def): Only write initializers
362 in header modules.
363
3642024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
365
366 PR c++/109679
367 * module.cc (depset::hash::add_binding_entity): Don't skip names
368 in the GMF if they've been exported with a using declaration.
369
3702024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
371
372 PR c++/110808
373 * parser.cc (cp_parser_module_name): Rewrite to handle
374 module-names and module-partitions independently.
375 (cp_parser_module_partition): New function.
376 (cp_parser_module_declaration): Parse module partitions
377 explicitly. Don't change state if parsing module decl failed.
378 (cp_parser_import_declaration): Handle different kinds of
379 import-declarations locally.
380
eb84e8d3
GA
3812024-01-03 Patrick Palka <ppalka@redhat.com>
382
383 PR c++/113064
384 * call.cc (reference_binding): Still try a conversion via a
385 temporary if a direct conversion was bad.
386
3872024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
388
389 * parser.cc (cp_parser_omp_clause_name): Move handling of indirect
390 clause to correspond to alphabetical order.
391
ad41bd84 392\f
8c22aed4 393Copyright (C) 2024 Free Software Foundation, Inc.
ad41bd84
JM
394
395Copying and distribution of this file, with or without modification,
396are permitted in any medium without royalty provided the copyright
397notice and this notice are preserved.