aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog189
1 files changed, 189 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 945ac62..a666b3b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,192 @@
+2024-01-09 Jason Merrill <jason@redhat.com>
+
+ * semantics.cc (is_object_parameter): New.
+ * cp-tree.h (is_object_parameter): Declare.
+ * call.cc (maybe_warn_class_memaccess): Use it.
+ * search.cc (field_access_p): Use it.
+ (class_of_object_parm): New.
+ (field_accessor_p): Adjust for explicit object parms.
+
+2024-01-09 Jason Merrill <jason@redhat.com>
+
+ * call.cc (build_over_call): Refactor handle_arg lambda.
+ * class.cc (xobj_iobj_parameters_correspond): Fix FIXME.
+ * method.cc (defaulted_late_check): Adjust comments.
+
+2024-01-09 waffl3x <waffl3x@protonmail.com>
+
+ PR c++/102609
+ PR c++/102609
+ C++23 P0847R7 (deducing this) - CWG2586.
+ * decl.cc (copy_fn_p): Accept xobj copy assignment functions.
+ (move_signature_fn_p): Accept xobj move assignment functions.
+ * method.cc (do_build_copy_assign): Handle defaulted xobj member
+ functions.
+ (defaulted_late_check): Comment.
+ (defaultable_fn_check): Comment.
+
+2024-01-09 waffl3x <waffl3x@protonmail.com>
+
+ PR c++/102609
+ PR c++/102609
+ C++23 P0847R7 (deducing this) - xobj lambdas.
+ * lambda.cc (build_capture_proxy): Don't fold direct object types.
+ * parser.cc (cp_parser_lambda_declarator_opt): Handle xobj lambdas,
+ diagnostics. Comments also updated.
+ * pt.cc (tsubst_function_decl): Handle xobj lambdas. Check object
+ type of xobj lambda call operator, diagnose incorrect types.
+ (tsubst_lambda_expr): Update comment.
+ * semantics.cc (finish_decltype_type): Also consider by-value object
+ parameter qualifications.
+
+2024-01-09 waffl3x <waffl3x@protonmail.com>
+
+ PR c++/102609
+ PR c++/102609
+ C++23 P0847R7 (deducing this) - diagnostics.
+ * class.cc (resolve_address_of_overloaded_function): Diagnostics.
+ * cp-tree.h (TFF_XOBJ_FUNC): Define.
+ * decl.cc (grokfndecl): Diagnostics.
+ (grokdeclarator): Diagnostics.
+ * error.cc (dump_aggr_type): Pass TFF_XOBJ_FUNC.
+ (dump_lambda_function): Formatting for xobj lambda.
+ (dump_function_decl): Pass TFF_XOBJ_FUNC.
+ (dump_parameters): Formatting for xobj member functions.
+ (function_category): Formatting for xobj member functions.
+ * parser.cc (cp_parser_decl_specifier_seq): Diagnostics.
+ (cp_parser_parameter_declaration): Diagnostics.
+ * search.cc (look_for_overrides_here): Make xobj member functions
+ override.
+ (look_for_overrides_r): Reject an overriding xobj member function
+ and diagnose it.
+ * semantics.cc (finish_this_expr): Diagnostics.
+ * typeck.cc (cp_build_addr_expr_1): Diagnostics.
+
+2024-01-09 waffl3x <waffl3x@protonmail.com>
+
+ PR c++/102609
+ PR c++/102609
+ C++23 P0847R7 (deducing this) - initial functionality.
+ * class.cc (xobj_iobj_parameters_correspond): New function, checks
+ for corresponding object parameters between xobj and iobj member
+ functions.
+ (add_method): Handle object parameters of xobj member functions, use
+ xobj_iobj_parameters_correspond.
+ * call.cc (build_over_call): Refactor, handle xobj member functions.
+ (cand_parms_match): Handle object parameters of xobj and iobj member
+ functions, use xobj_iobj_parameters_correspond.
+ * cp-tree.h (enum cp_decl_spec): Add ds_this, add comments.
+ * decl.cc (grokfndecl): Add xobj_func_p parameter. For xobj member
+ functions, Set xobj_flag, don't set static_function flag.
+ (grokdeclarator): Handle xobj member functions, tell grokfndecl.
+ (grok_op_properties): Don't error for xobj operators.
+ * parser.cc (cp_parser_decl_specifier_seq): Handle this specifier.
+ (cp_parser_parameter_declaration): Set default argument to
+ "this_identifier" for xobj parameters.
+ (set_and_check_decl_spec_loc): Add "this", add comments.
+ * tree.cc (build_min_non_dep_op_overload): Handle xobj operators.
+ * typeck.cc (cp_build_addr_expr_1): Handle address-of xobj member
+ functions.
+
+2024-01-09 waffl3x <waffl3x@protonmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ PR c++/102609
+ * cp-tree.h (struct lang_decl_fn): New data member.
+ (DECL_NONSTATIC_MEMBER_FUNCTION_P): Poison.
+ (DECL_IOBJ_MEMBER_FUNCTION_P): Define.
+ (DECL_FUNCTION_XOBJ_FLAG): Define.
+ (DECL_XOBJ_MEMBER_FUNCTION_P): Define.
+ (DECL_OBJECT_MEMBER_FUNCTION_P): Define.
+ (DECL_FUNCTION_MEMBER_P): Don't use
+ DECL_NONSTATIC_MEMBER_FUNCTION_P.
+ (DECL_CONST_MEMFUNC_P): Likewise.
+ (DECL_VOLATILE_MEMFUNC_P): Likewise.
+ (DECL_NONSTATIC_MEMBER_P): Likewise.
+ * module.cc (trees_out::lang_decl_bools): Handle xobj_flag.
+ (trees_in::lang_decl_bools): Handle xobj_flag.
+ * call.cc (build_this_conversion)
+ (add_function_candidate)
+ (add_template_candidate_real)
+ (add_candidates)
+ (maybe_warn_class_memaccess)
+ (cand_parms_match)
+ (joust)
+ (do_warn_dangling_reference)
+ * class.cc (finalize_literal_type_property)
+ (finish_struct)
+ (resolve_address_of_overloaded_function)
+ * constexpr.cc (is_valid_constexpr_fn)
+ (cxx_bind_parameters_in_call)
+ * contracts.cc (build_contract_condition_function)
+ * cp-objcp-common.cc (cp_decl_dwarf_attribute)
+ * cxx-pretty-print.cc (cxx_pretty_printer::postfix_expression)
+ (cxx_pretty_printer::declaration_specifiers)
+ (cxx_pretty_printer::direct_declarator)
+ * decl.cc (cp_finish_decl)
+ (grok_special_member_properties)
+ (start_preparsed_function)
+ (record_key_method_defined)
+ * decl2.cc (cp_handle_deprecated_or_unavailable)
+ * init.cc (find_uninit_fields_r)
+ (build_offset_ref)
+ * lambda.cc (lambda_expr_this_capture)
+ (maybe_generic_this_capture)
+ (nonlambda_method_basetype)
+ * mangle.cc (write_nested_name)
+ * method.cc (early_check_defaulted_comparison)
+ (skip_artificial_parms_for)
+ (num_artificial_parms_for)
+ * pt.cc (is_specialization_of_friend)
+ (determine_specialization)
+ (copy_default_args_to_explicit_spec)
+ (check_explicit_specialization)
+ (tsubst_contract_attribute)
+ (check_non_deducible_conversions)
+ (more_specialized_fn)
+ (maybe_instantiate_noexcept)
+ (register_parameter_specializations)
+ (value_dependent_expression_p)
+ * search.cc (shared_member_p)
+ (lookup_member)
+ (field_access_p)
+ * semantics.cc (finish_omp_declare_simd_methods)
+ * tree.cc (lvalue_kind)
+ * typeck.cc (invalid_nonstatic_memfn_p): Don't use
+ DECL_NONSTATIC_MEMBER_FUNCTION_P.
+
+2024-01-09 Julian Brown <julian@codesourcery.com>
+
+ * constexpr.cc (potential_consant_expression_1): Handle
+ OMP_ARRAY_SECTION.
+ * cp-tree.h (grok_omp_array_section, build_omp_array_section): Add
+ prototypes.
+ * decl2.cc (grok_omp_array_section): New function.
+ * error.cc (dump_expr): Handle OMP_ARRAY_SECTION.
+ * parser.cc (cp_parser_new): Initialize parser->omp_array_section_p.
+ (cp_parser_statement_expr): Disallow array sections.
+ (cp_parser_postfix_open_square_expression): Support OMP_ARRAY_SECTION
+ parsing.
+ (cp_parser_parenthesized_expression_list, cp_parser_lambda_expression,
+ cp_parser_braced_list): Disallow array sections.
+ (cp_parser_omp_var_list_no_open): Remove ALLOW_DEREF parameter, add
+ MAP_LVALUE in its place. Support generalised lvalue parsing for
+ OpenMP map, to and from clauses. Use OMP_ARRAY_SECTION
+ code instead of TREE_LIST to represent OpenMP array sections.
+ (cp_parser_omp_var_list): Remove ALLOW_DEREF parameter, add MAP_LVALUE.
+ Pass to cp_parser_omp_var_list_no_open.
+ (cp_parser_oacc_data_clause): Update call to cp_parser_omp_var_list.
+ (cp_parser_omp_clause_map): Add sk_omp scope around
+ cp_parser_omp_var_list_no_open call.
+ * parser.h (cp_parser): Add omp_array_section_p field.
+ * pt.cc (tsubst, tsubst_copy, tsubst_omp_clause_decl,
+ tsubst_copy_and_build): Add OMP_ARRAY_SECTION support.
+ * semantics.cc (handle_omp_array_sections_1, handle_omp_array_sections,
+ cp_oacc_check_attachments, finish_omp_clauses): Use OMP_ARRAY_SECTION
+ instead of TREE_LIST where appropriate. Handle more types of map
+ expression.
+ * typeck.cc (build_omp_array_section): New function.
+
2024-01-07 Nathaniel Shead <nathanieloshead@gmail.com>
* module.cc (trees_out::write_var_def): Only write initializers