Skip to content

Commit 6a19279

Browse files
committed
Make fpreg_t an union
1 parent d96d311 commit 6a19279

File tree

2 files changed

+3
-21
lines changed

2 files changed

+3
-21
lines changed

libc-test/build.rs

-2
Original file line numberDiff line numberDiff line change
@@ -4427,8 +4427,6 @@ fn test_linux(target: &str) {
44274427
cfg.skip_roundtrip(move |s| match s {
44284428
// FIXME:
44294429
"mcontext_t" if s390x => true,
4430-
// FIXME: This is actually a union.
4431-
"fpreg_t" if s390x => true,
44324430

44334431
// The test doesn't work on some env:
44344432
"ipv6_mreq"

src/unix/linux_like/linux/gnu/b64/s390x.rs

+3-19
Original file line numberDiff line numberDiff line change
@@ -212,33 +212,17 @@ s! {
212212
}
213213

214214
s_no_extra_traits! {
215-
// FIXME: This is actually a union.
216-
pub struct fpreg_t {
215+
pub union fpreg_t {
217216
pub d: ::c_double,
218-
// f: ::c_float,
217+
pub f: ::c_float,
219218
}
220219
}
221220

222221
cfg_if! {
223222
if #[cfg(feature = "extra_traits")] {
224-
impl PartialEq for fpreg_t {
225-
fn eq(&self, other: &fpreg_t) -> bool {
226-
self.d == other.d
227-
}
228-
}
229-
230-
impl Eq for fpreg_t {}
231-
232223
impl ::fmt::Debug for fpreg_t {
233224
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
234-
f.debug_struct("fpreg_t").field("d", &self.d).finish()
235-
}
236-
}
237-
238-
impl ::hash::Hash for fpreg_t {
239-
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
240-
let d: u64 = unsafe { ::mem::transmute(self.d) };
241-
d.hash(state);
225+
f.finish_non_exhaustive()
242226
}
243227
}
244228
}

0 commit comments

Comments
 (0)