rustc_codegen_llvm: don't overalign loads of pair operands.

This commit is contained in:
Eduard-Mihai Burtescu 2018-11-29 00:37:38 +02:00
parent b68fc18c45
commit 51cf4e9e91
2 changed files with 27 additions and 3 deletions

View file

@ -0,0 +1,18 @@
// compile-flags: -C no-prepopulate-passes
#![crate_type="rlib"]
#[allow(dead_code)]
pub struct Foo<T> {
foo: u64,
bar: T,
}
// The load from bar.1 should have alignment 4. Not checking
// other loads here, as the alignment will be platform-dependent.
// CHECK: %{{.+}} = load i32, i32* %{{.+}}, align 4
#[no_mangle]
pub fn test(x: Foo<(i32, i32)>) -> (i32, i32) {
x.bar
}