]>
Commit | Line | Data |
---|---|---|
2a9637b2 GA |
1 | 2024-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 |
7 | 2024-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 | ||
15 | 2024-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 |
27 | 2024-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 | ||
33 | 2024-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 |
48 | 2024-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 |
54 | 2024-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 | ||
60 | 2024-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 |
67 | 2024-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 | ||
80 | 2024-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 | ||
87 | 2024-01-16 Marek Polacek <polacek@redhat.com> | |
88 | ||
89 | * decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic | |
90 | messages. | |
91 | ||
92 | 2024-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 | ||
98 | 2024-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 |
104 | 2024-01-15 Marek Polacek <polacek@redhat.com> |
105 | ||
106 | PR c++/110065 | |
107 | * parser.cc (cp_parser_template_type_arg): Add auto checking. | |
108 | ||
109 | 2024-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 | ||
116 | 2024-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 | ||
122 | 2024-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 |
128 | 2024-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 |
134 | 2024-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 | ||
140 | 2024-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 |
153 | 2024-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 |
166 | 2024-01-10 Tamar Christina <tamar.christina@arm.com> |
167 | ||
168 | * parser.cc (cp_parser_pragma): Initialize to false. | |
169 | ||
73ce73fc GA |
170 | 2024-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 | ||
179 | 2024-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 | ||
185 | 2024-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 | ||
197 | 2024-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 | ||
211 | 2024-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 | ||
234 | 2024-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 | ||
260 | 2024-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 | ||
327 | 2024-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 |
359 | 2024-01-07 Nathaniel Shead <nathanieloshead@gmail.com> |
360 | ||
361 | * module.cc (trees_out::write_var_def): Only write initializers | |
362 | in header modules. | |
363 | ||
364 | 2024-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 | ||
370 | 2024-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 |
381 | 2024-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 | ||
387 | 2024-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 | 393 | Copyright (C) 2024 Free Software Foundation, Inc. |
ad41bd84 JM |
394 | |
395 | Copying and distribution of this file, with or without modification, | |
396 | are permitted in any medium without royalty provided the copyright | |
397 | notice and this notice are preserved. |