| ... | ... | @@ -72,7 +72,7 @@ fn testBytesAlignSlice(b: u8) { |
| 72 | 72 | assert(slice[0] == 0x33333333); |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | | test "@alignCast" { |
| 75 | test "@alignCast pointers" { |
| 76 | 76 | var x: u32 align 4 = 1; |
| 77 | 77 | expectsOnly1(&x); |
| 78 | 78 | assert(x == 2); |
| ... | ... | @@ -83,3 +83,16 @@ fn expectsOnly1(x: &align 1 u32) { |
| 83 | 83 | fn expects4(x: &align 4 u32) { |
| 84 | 84 | *x += 1; |
| 85 | 85 | } |
| 86 | |
| 87 | test "@alignCast slices" { |
| 88 | var array align 4 = []u32{1, 1}; |
| 89 | const slice = array[0..]; |
| 90 | sliceExpectsOnly1(slice); |
| 91 | assert(slice[0] == 2); |
| 92 | } |
| 93 | fn sliceExpectsOnly1(slice: []align 1 u32) { |
| 94 | sliceExpects4(@alignCast(4, slice)); |
| 95 | } |
| 96 | fn sliceExpects4(slice: []align 4 u32) { |
| 97 | slice[0] += 1; |
| 98 | } |