| ... | @@ -72,7 +72,7 @@ fn testBytesAlignSlice(b: u8) { | ... | @@ -72,7 +72,7 @@ fn testBytesAlignSlice(b: u8) { |
| 72 | assert(slice[0] == 0x33333333); | 72 | assert(slice[0] == 0x33333333); |
| 73 | } | 73 | } |
| 74 | | 74 | |
| 75 | test "@alignCast" { | 75 | test "@alignCast pointers" { |
| 76 | var x: u32 align 4 = 1; | 76 | var x: u32 align 4 = 1; |
| 77 | expectsOnly1(&x); | 77 | expectsOnly1(&x); |
| 78 | assert(x == 2); | 78 | assert(x == 2); |
| ... | @@ -83,3 +83,16 @@ fn expectsOnly1(x: &align 1 u32) { | ... | @@ -83,3 +83,16 @@ fn expectsOnly1(x: &align 1 u32) { |
| 83 | fn expects4(x: &align 4 u32) { | 83 | fn expects4(x: &align 4 u32) { |
| 84 | *x += 1; | 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 | } |