|
8 | 8 | // option. This file may not be copied, modified, or distributed
|
9 | 9 | // except according to those terms.
|
10 | 10 |
|
11 |
| -// ignore-linux #7340 fails on 32-bit Linux |
12 |
| -// ignore-macos #7340 fails on 32-bit macos |
13 |
| - |
14 | 11 | use std::mem;
|
15 | 12 |
|
16 | 13 | enum Tag<A,B> {
|
@@ -42,33 +39,34 @@ fn variant_data_is_aligned<A,B>(amnt: uint, u: &Tag<A,B>) -> bool {
|
42 | 39 | }
|
43 | 40 |
|
44 | 41 | pub fn main() {
|
45 |
| - let x = mk_rec(22, 23); |
46 |
| - assert!(is_aligned(8, &x.tA)); |
47 |
| - assert!(variant_data_is_aligned(8, &x.tA)); |
48 |
| - assert!(is_aligned(8, &x.tB)); |
49 |
| - assert!(variant_data_is_aligned(8, &x.tB)); |
| 42 | + let u64_align = std::mem::min_align_of::<u64>(); |
| 43 | + let x = mk_rec(22u64, 23u64); |
| 44 | + assert!(is_aligned(u64_align, &x.tA)); |
| 45 | + assert!(variant_data_is_aligned(u64_align, &x.tA)); |
| 46 | + assert!(is_aligned(u64_align, &x.tB)); |
| 47 | + assert!(variant_data_is_aligned(u64_align, &x.tB)); |
50 | 48 |
|
51 |
| - let x = mk_rec(22, 23); |
52 |
| - assert!(is_aligned(8, &x.tA)); |
53 |
| - assert!(variant_data_is_aligned(8, &x.tA)); |
54 |
| - assert!(is_aligned(8, &x.tB)); |
| 49 | + let x = mk_rec(22u64, 23u32); |
| 50 | + assert!(is_aligned(u64_align, &x.tA)); |
| 51 | + assert!(variant_data_is_aligned(u64_align, &x.tA)); |
| 52 | + assert!(is_aligned(u64_align, &x.tB)); |
55 | 53 | assert!(variant_data_is_aligned(4, &x.tB));
|
56 | 54 |
|
57 |
| - let x = mk_rec(22, 23); |
58 |
| - assert!(is_aligned(8, &x.tA)); |
| 55 | + let x = mk_rec(22u32, 23u64); |
| 56 | + assert!(is_aligned(u64_align, &x.tA)); |
59 | 57 | assert!(variant_data_is_aligned(4, &x.tA));
|
60 |
| - assert!(is_aligned(8, &x.tB)); |
61 |
| - assert!(variant_data_is_aligned(8, &x.tB)); |
| 58 | + assert!(is_aligned(u64_align, &x.tB)); |
| 59 | + assert!(variant_data_is_aligned(u64_align, &x.tB)); |
62 | 60 |
|
63 |
| - let x = mk_rec(22, 23); |
| 61 | + let x = mk_rec(22u32, 23u32); |
64 | 62 | assert!(is_aligned(4, &x.tA));
|
65 | 63 | assert!(variant_data_is_aligned(4, &x.tA));
|
66 | 64 | assert!(is_aligned(4, &x.tB));
|
67 | 65 | assert!(variant_data_is_aligned(4, &x.tB));
|
68 | 66 |
|
69 | 67 | let x = mk_rec(22f64, 23f64);
|
70 |
| - assert!(is_aligned(8, &x.tA)); |
71 |
| - assert!(variant_data_is_aligned(8, &x.tA)); |
72 |
| - assert!(is_aligned(8, &x.tB)); |
73 |
| - assert!(variant_data_is_aligned(8, &x.tB)); |
| 68 | + assert!(is_aligned(u64_align, &x.tA)); |
| 69 | + assert!(variant_data_is_aligned(u64_align, &x.tA)); |
| 70 | + assert!(is_aligned(u64_align, &x.tB)); |
| 71 | + assert!(variant_data_is_aligned(u64_align, &x.tB)); |
74 | 72 | }
|
0 commit comments