diff options
| author | bors <bors@rust-lang.org> | 2018-11-29 00:06:20 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-11-29 00:06:20 +0000 |
| commit | 5f387a6032ee7c5e575e06c596328ff556a1675d (patch) | |
| tree | af6389b3adbcc170ed00cfdfa3b9262bf185539c /src/test/codegen | |
| parent | b68fc18c45350e1cdcd83cecf0f12e294e55af56 (diff) | |
| parent | d8190afbcb9b15eb8e04d3860a5bd018568a3980 (diff) | |
| download | rust-5f387a6032ee7c5e575e06c596328ff556a1675d.tar.gz rust-5f387a6032ee7c5e575e06c596328ff556a1675d.zip | |
Auto merge of #56300 - nikic:issue-56267, r=eddyb
Fix alignment of stores to scalar pair The alignment for the second element of a scalar pair is not the same as for the first element, make sure it is calculated correctly. This fixes #56267. r? @eddyb
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/issue-56267.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/codegen/issue-56267.rs b/src/test/codegen/issue-56267.rs new file mode 100644 index 00000000000..2c33f558931 --- /dev/null +++ b/src/test/codegen/issue-56267.rs @@ -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 store writing to bar.1 should have alignment 4. Not checking +// other stores here, as the alignment will be platform-dependent. + +// CHECK: store i32 [[TMP1:%.+]], i32* [[TMP2:%.+]], align 4 +#[no_mangle] +pub fn test(x: (i32, i32)) -> Foo<(i32, i32)> { + Foo { foo: 0, bar: x } +} |
