]> git.proxmox.com Git - rustc.git/blame - src/test/run-pass/nullable-pointer-size.rs
New upstream version 1.37.0+dfsg1
[rustc.git] / src / test / run-pass / nullable-pointer-size.rs
CommitLineData
0bf4aa26 1#![allow(dead_code)]
c34b1796 2
1a4d82fc 3use std::mem;
970d7e83 4
c34b1796
AL
5enum E<T> { Thing(isize, T), Nothing((), ((), ()), [i8; 0]) }
6struct S<T>(isize, T);
970d7e83
LB
7
8// These are macros so we get useful assert messages.
9
10macro_rules! check_option {
11 ($T:ty) => {
1a4d82fc 12 assert_eq!(mem::size_of::<Option<$T>>(), mem::size_of::<$T>());
970d7e83
LB
13 }
14}
15
16macro_rules! check_fancy {
17 ($T:ty) => {
1a4d82fc 18 assert_eq!(mem::size_of::<E<$T>>(), mem::size_of::<S<$T>>());
970d7e83
LB
19 }
20}
21
22macro_rules! check_type {
23 ($T:ty) => {{
24 check_option!($T);
25 check_fancy!($T);
26 }}
27}
28
29pub fn main() {
c34b1796
AL
30 check_type!(&'static isize);
31 check_type!(Box<isize>);
970d7e83
LB
32 check_type!(extern fn());
33}