diff options
| author | varkor <github@varkor.com> | 2018-05-01 20:25:30 +0100 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2018-05-01 20:25:30 +0100 |
| commit | 2d0d73ea5a004158e07ec6169b517c7ca6cbe3b0 (patch) | |
| tree | 725bb75e68db56e4d27c0dffcf7d2883b0333e3e /src/test | |
| parent | 4da1f71e4be9f9105f504f9a303d05b69ab8971d (diff) | |
| download | rust-2d0d73ea5a004158e07ec6169b517c7ca6cbe3b0.tar.gz rust-2d0d73ea5a004158e07ec6169b517c7ca6cbe3b0.zip | |
Add a print_types_sizes regression test
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/print_type_sizes/repr_int_c.rs | 35 | ||||
| -rw-r--r-- | src/test/ui/print_type_sizes/repr_int_c.stdout | 12 |
2 files changed, 47 insertions, 0 deletions
diff --git a/src/test/ui/print_type_sizes/repr_int_c.rs b/src/test/ui/print_type_sizes/repr_int_c.rs new file mode 100644 index 00000000000..04bb2ab26f3 --- /dev/null +++ b/src/test/ui/print_type_sizes/repr_int_c.rs @@ -0,0 +1,35 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// compile-flags: -Z print-type-sizes +// compile-pass + +// This test makes sure that the tag is not grown for `repr(C)` or `repr(u8)` +// variants (see https://github.com/rust-lang/rust/issues/50098 for the original bug). + +#![feature(start)] +#![allow(dead_code)] + +#[repr(C, u8)] +enum ReprCu8 { + A(u16), + B, +} + +#[repr(u8)] +enum Repru8 { + A(u16), + B, +} + +#[start] +fn start(_: isize, _: *const *const u8) -> isize { + 0 +} diff --git a/src/test/ui/print_type_sizes/repr_int_c.stdout b/src/test/ui/print_type_sizes/repr_int_c.stdout new file mode 100644 index 00000000000..254b3c7a853 --- /dev/null +++ b/src/test/ui/print_type_sizes/repr_int_c.stdout @@ -0,0 +1,12 @@ +print-type-size type: `ReprCu8`: 4 bytes, alignment: 2 bytes +print-type-size discriminant: 1 bytes +print-type-size variant `A`: 3 bytes +print-type-size padding: 1 bytes +print-type-size field `.0`: 2 bytes, alignment: 2 bytes +print-type-size variant `B`: 1 bytes +print-type-size type: `Repru8`: 4 bytes, alignment: 2 bytes +print-type-size discriminant: 1 bytes +print-type-size variant `A`: 3 bytes +print-type-size padding: 1 bytes +print-type-size field `.0`: 2 bytes, alignment: 2 bytes +print-type-size variant `B`: 0 bytes |
