2024-06-08 04:26:56 -05:00
|
|
|
//@run-pass
|
2024-07-29 11:50:12 -05:00
|
|
|
#![feature(offset_of_slice)]
|
2024-06-08 04:26:56 -05:00
|
|
|
|
|
|
|
use std::mem::offset_of;
|
|
|
|
|
|
|
|
#[repr(C)]
|
|
|
|
struct S {
|
|
|
|
a: u8,
|
|
|
|
b: (u8, u8),
|
|
|
|
c: [i32],
|
|
|
|
}
|
|
|
|
|
|
|
|
#[repr(C)]
|
|
|
|
struct T {
|
|
|
|
x: i8,
|
|
|
|
y: S,
|
|
|
|
}
|
|
|
|
|
|
|
|
type Tup = (i16, [i32]);
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
assert_eq!(offset_of!(S, c), 4);
|
|
|
|
assert_eq!(offset_of!(T, y), 4);
|
|
|
|
assert_eq!(offset_of!(T, y.c), 8);
|
|
|
|
assert_eq!(offset_of!(Tup, 1), 4);
|
|
|
|
}
|