From 2d5762235529c6023aa61edac95f123576579a52 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 29 Aug 2017 23:39:54 -0400 Subject: [PATCH] add test for @alignCast on a slice See #37 --- test/cases/align.zig | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/test/cases/align.zig b/test/cases/align.zig index 33013732de..4ce9e54f5d 100644 --- a/test/cases/align.zig +++ b/test/cases/align.zig @@ -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; +}