From 4da1f71e4be9f9105f504f9a303d05b69ab8971d Mon Sep 17 00:00:00 2001 From: varkor Date: Tue, 1 May 2018 18:52:27 +0100 Subject: [PATCH] Add repr(u8) to the test --- src/test/run-pass/repr_c_int_align.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/run-pass/repr_c_int_align.rs b/src/test/run-pass/repr_c_int_align.rs index 32d015c3ca2..af4eb615302 100644 --- a/src/test/run-pass/repr_c_int_align.rs +++ b/src/test/run-pass/repr_c_int_align.rs @@ -18,6 +18,12 @@ enum ReprCu8 { B, } +#[repr(u8)] +enum Repru8 { + A(u16), + B, +} + #[repr(C)] struct ReprC { tag: u8, @@ -26,6 +32,7 @@ struct ReprC { } fn main() { + // Test `repr(C, u8)`. let r1 = ReprC { tag: 0, padding: 0, payload: 0 }; let r2 = ReprC { tag: 0, padding: 1, payload: 1 }; @@ -36,4 +43,13 @@ fn main() { (ReprCu8::A(_), ReprCu8::A(_)) => (), _ => assert!(false) }; + + // Test `repr(u8)`. + let t1: &Repru8 = unsafe { std::mem::transmute(&r1) }; + let t2: &Repru8 = unsafe { std::mem::transmute(&r2) }; + + match (t1, t2) { + (Repru8::A(_), Repru8::A(_)) => (), + _ => assert!(false) + }; }