diff options
| author | Tim Neumann <mail@timnn.me> | 2017-03-08 21:17:55 +0100 |
|---|---|---|
| committer | Tim Neumann <mail@timnn.me> | 2017-03-08 21:19:31 +0100 |
| commit | 79a7ee8d831d7bacc4d52cd76bbc0dcd15fddfe5 (patch) | |
| tree | ce483f36f627338bf13075ca9f6368f079618c74 /src/test/run-pass | |
| parent | ee60afa09465cedfa08be04e59b6a8ccfd54685f (diff) | |
| download | rust-79a7ee8d831d7bacc4d52cd76bbc0dcd15fddfe5.tar.gz rust-79a7ee8d831d7bacc4d52cd76bbc0dcd15fddfe5.zip | |
fix UB in repr(packed) tests
Diffstat (limited to 'src/test/run-pass')
| -rw-r--r-- | src/test/run-pass/packed-struct-vec.rs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/test/run-pass/packed-struct-vec.rs b/src/test/run-pass/packed-struct-vec.rs index 4b32b881be7..57407b84223 100644 --- a/src/test/run-pass/packed-struct-vec.rs +++ b/src/test/run-pass/packed-struct-vec.rs @@ -8,15 +8,34 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +use std::fmt; use std::mem; #[repr(packed)] -#[derive(Copy, Clone, PartialEq, Debug)] +#[derive(Copy, Clone)] struct Foo { bar: u8, baz: u64 } +impl PartialEq for Foo { + fn eq(&self, other: &Foo) -> bool { + self.bar == other.bar && self.baz == other.baz + } +} + +impl fmt::Debug for Foo { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let bar = self.bar; + let baz = self.baz; + + f.debug_struct("Foo") + .field("bar", &bar) + .field("baz", &baz) + .finish() + } +} + pub fn main() { let foos = [Foo { bar: 1, baz: 2 }; 10]; |
