diff options
| author | Erik Desjardins <erikdesjardins@users.noreply.github.com> | 2020-08-16 20:38:57 -0400 |
|---|---|---|
| committer | Erik Desjardins <erikdesjardins@users.noreply.github.com> | 2020-08-30 14:58:03 -0400 |
| commit | e9bc3ddb073f2261ac46832d985efe8db863ed6a (patch) | |
| tree | 7a7281a8915f870e16bbc865daedfb0a7dbe81c4 /src | |
| parent | e5d85f917b8965a5e62513c17cbb887366b152bc (diff) | |
test that we do not change the offset of ZST tuple fields when unsizing
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/dynamically-sized-types/dst-tuple-zst-offsets.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/ui/dynamically-sized-types/dst-tuple-zst-offsets.rs b/src/test/ui/dynamically-sized-types/dst-tuple-zst-offsets.rs new file mode 100644 index 00000000000..b0cefe77039 --- /dev/null +++ b/src/test/ui/dynamically-sized-types/dst-tuple-zst-offsets.rs @@ -0,0 +1,22 @@ +// run-pass + +#![feature(unsized_tuple_coercion)] + +// Check that we do not change the offsets of ZST fields when unsizing + +fn scalar_layout() { + let sized: &(u8, [(); 13]) = &(123, [(); 13]); + let unsize: &(u8, [()]) = sized; + assert_eq!(sized.1.as_ptr(), unsize.1.as_ptr()); +} + +fn scalarpair_layout() { + let sized: &(u8, u16, [(); 13]) = &(123, 456, [(); 13]); + let unsize: &(u8, u16, [()]) = sized; + assert_eq!(sized.2.as_ptr(), unsize.2.as_ptr()); +} + +pub fn main() { + scalar_layout(); + scalarpair_layout(); +} |
