// run-pass #![allow(dead_code)] // Test that pointers to extern types can be cast from/to usize, // despite being !Sized. #![feature(extern_types)] extern "C" { type A; } struct Foo { x: u8, tail: A, } struct Bar { x: u8, tail: T, } #[cfg(target_pointer_width = "32")] const MAGIC: usize = 0xdeadbeef; #[cfg(target_pointer_width = "64")] const MAGIC: usize = 0x12345678deadbeef; fn main() { assert_eq!((MAGIC as *const A) as usize, MAGIC); assert_eq!((MAGIC as *const Foo) as usize, MAGIC); assert_eq!((MAGIC as *const Bar) as usize, MAGIC); assert_eq!((MAGIC as *const Bar>) as usize, MAGIC); }