about summary refs log tree commit diff
path: root/src/test/codegen/align-struct.rs
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2017-12-10 17:35:23 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2017-12-15 11:35:32 +0200
commit8a26e0422dc55b82577de3027800ca29a4d522b7 (patch)
treef4cb8515aa88a8a56777ea300ff081f9f69c50e0 /src/test/codegen/align-struct.rs
parent84feab34e455722061bb55260eafd1eb02a538fa (diff)
downloadrust-8a26e0422dc55b82577de3027800ca29a4d522b7.tar.gz
rust-8a26e0422dc55b82577de3027800ca29a4d522b7.zip
rustc_trans: approximate ABI alignment for padding/union fillers.
Diffstat (limited to 'src/test/codegen/align-struct.rs')
-rw-r--r--src/test/codegen/align-struct.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/codegen/align-struct.rs b/src/test/codegen/align-struct.rs
index ba81e2d6046..3b720dc30d3 100644
--- a/src/test/codegen/align-struct.rs
+++ b/src/test/codegen/align-struct.rs
@@ -9,6 +9,8 @@
 // except according to those terms.
 
 // compile-flags: -C no-prepopulate-passes
+// ignore-tidy-linelength
+
 #![crate_type = "lib"]
 
 #![feature(attr_literals)]
@@ -16,6 +18,7 @@
 
 #[repr(align(64))]
 pub struct Align64(i32);
+// CHECK: %Align64 = type { [0 x i32], i32, [15 x i32] }
 
 pub struct Nested64 {
     a: Align64,
@@ -23,11 +26,20 @@ pub struct Nested64 {
     c: i32,
     d: i8,
 }
+// CHECK: %Nested64 = type { [0 x i64], %Align64, [0 x i32], i32, [0 x i32], i32, [0 x i8], i8, [55 x i8] }
+
+pub enum Enum4 {
+    A(i32),
+    B(i32),
+}
+// CHECK: %Enum4 = type { [2 x i32] }
 
 pub enum Enum64 {
     A(Align64),
     B(i32),
 }
+// CHECK: %Enum64 = type { [16 x i64] }
+// CHECK: %"Enum64::A" = type { [8 x i64], %Align64, [0 x i64] }
 
 // CHECK-LABEL: @align64
 #[no_mangle]
@@ -46,6 +58,14 @@ pub fn nested64(a: Align64, b: i32, c: i32, d: i8) -> Nested64 {
     n64
 }
 
+// CHECK-LABEL: @enum4
+#[no_mangle]
+pub fn enum4(a: i32) -> Enum4 {
+// CHECK: %e4 = alloca %Enum4, align 4
+    let e4 = Enum4::A(a);
+    e4
+}
+
 // CHECK-LABEL: @enum64
 #[no_mangle]
 pub fn enum64(a: Align64) -> Enum64 {