https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102609

--- Comment #20 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:f9fbf93dc82525a0f54a2293b7ec92d65776bf19

commit r14-7074-gf9fbf93dc82525a0f54a2293b7ec92d65776bf19
Author: waffl3x <waff...@protonmail.com>
Date:   Sun Jan 7 00:00:10 2024 +0000

    c++: P0847R7 (deducing this) - prerequisite changes. [PR102609]

    Adds the xobj_flag member to lang_decl_fn and a corresponding member access
    macro and predicate to support the addition of explicit object member
    functions. Additionally, since explicit object member functions are also
    non-static member functions, we need to change uses of
    DECL_NONSTATIC_MEMBER_FUNCTION_P to clarify whether they intend to include
    or exclude them.

            PR c++/102609

    gcc/cp/ChangeLog:

            * 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.

    libcc1/ChangeLog:

            * libcp1plugin.cc (plugin_pragma_push_user_expression): Don't use
            DECL_NONSTATIC_MEMBER_FUNCTION_P.

    Signed-off-by: Waffl3x <waff...@protonmail.com>
    Co-authored-by: Jason Merrill <ja...@redhat.com>

Reply via email to