https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120529
Bug ID: 120529 Summary: __reference_{converts,constructs}_from_temporary ignore access control Product: gcc Version: 16.0 Status: UNCONFIRMED Keywords: accepts-invalid, rejects-valid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: de34 at live dot cn Target Milestone: --- Currently, GCC accepts the following code snippet (https://godbolt.org/z/sdesq8s5K). But it should be rejected, because the conversion function is not public, which makes the corresponding reference binding fail. ``` class Dst {}; class Src { private: operator Dst() const; }; static_assert(__reference_converts_from_temporary(Dst&&, Src)); static_assert(__reference_constructs_from_temporary(Dst&&, Src)); ```