https://gcc.gnu.org/g:65db613b6ef6ea81eb662820d815dfaa36d86187
commit r16-4811-g65db613b6ef6ea81eb662820d815dfaa36d86187 Author: Pierre-Emmanuel Patry <[email protected]> Date: Fri Aug 22 12:35:58 2025 +0200 gccrs: Add fn pointer implementation test gcc/testsuite/ChangeLog: * rust/compile/impl_fnptr.rs: New test. Signed-off-by: Pierre-Emmanuel Patry <[email protected]> Diff: --- gcc/testsuite/rust/compile/impl_fnptr.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gcc/testsuite/rust/compile/impl_fnptr.rs b/gcc/testsuite/rust/compile/impl_fnptr.rs new file mode 100644 index 000000000000..20c9d88dc1ad --- /dev/null +++ b/gcc/testsuite/rust/compile/impl_fnptr.rs @@ -0,0 +1,18 @@ +#[lang = "sized"] +pub trait Sized {} + +#[lang = "eq"] +pub trait PartialEq<Rhs: ?Sized = Self> { + fn eq(&self, other: &Rhs) -> bool; + + fn ne(&self, other: &Rhs) -> bool { + !self.eq(other) + } +} + +impl<Ret> PartialEq for extern "C" fn() -> Ret { + #[inline] + fn eq(&self, other: &Self) -> bool { + *self as usize == *other as usize + } +}
