add test for @alignCast on a slice

See #37
This commit is contained in:
Andrew Kelley 2017-08-29 23:39:54 -04:00
parent 898d65baa9
commit 2d57622355

View File

@ -72,7 +72,7 @@ fn testBytesAlignSlice(b: u8) {
assert(slice[0] == 0x33333333);
}
test "@alignCast" {
test "@alignCast pointers" {
var x: u32 align 4 = 1;
expectsOnly1(&x);
assert(x == 2);
@ -83,3 +83,16 @@ fn expectsOnly1(x: &align 1 u32) {
fn expects4(x: &align 4 u32) {
*x += 1;
}
test "@alignCast slices" {
var array align 4 = []u32{1, 1};
const slice = array[0..];
sliceExpectsOnly1(slice);
assert(slice[0] == 2);
}
fn sliceExpectsOnly1(slice: []align 1 u32) {
sliceExpects4(@alignCast(4, slice));
}
fn sliceExpects4(slice: []align 4 u32) {
slice[0] += 1;
}