diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-02-16 17:08:55 -0500 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-02-16 17:08:55 -0500 |
| commit | b6e7a0dadd86ce401e82ec53d6874e9934826c2d (patch) | |
| tree | 27171640bb593bdc66d47b213f73f2b40ca68df3 /test | |
| parent | fc5d47b9b960aa08d65bf0dfe3d6395c811f793b (diff) | |
| download | zig-b6e7a0dadd86ce401e82ec53d6874e9934826c2d.tar.gz zig-b6e7a0dadd86ce401e82ec53d6874e9934826c2d.zip | |
support arithmetic for non byte aligned integer types
see #261
Diffstat (limited to 'test')
| -rw-r--r-- | test/cases/math.zig | 21 | ||||
| -rw-r--r-- | test/cases/struct.zig | 5 |
2 files changed, 26 insertions, 0 deletions
diff --git a/test/cases/math.zig b/test/cases/math.zig index 7dde0bf62c..55f6680493 100644 --- a/test/cases/math.zig +++ b/test/cases/math.zig @@ -180,3 +180,24 @@ fn binaryNot() { fn testBinaryNot(x: u16) { assert(~x == 0b0101010101010101); } + +fn smallIntAddition() { + @setFnTest(this); + + var x: @intType(false, 2) = 0; + assert(x == 0); + + x += 1; + assert(x == 1); + + x += 1; + assert(x == 2); + + x += 1; + assert(x == 3); + + var result: @typeOf(x) = 3; + assert(@addWithOverflow(@typeOf(x), x, 1, &result)); + + assert(result == 0); +} diff --git a/test/cases/struct.zig b/test/cases/struct.zig index 403133e369..1d30040f86 100644 --- a/test/cases/struct.zig +++ b/test/cases/struct.zig @@ -244,11 +244,16 @@ fn bitFieldAccess() { .b = 2, .c = 3, }; + assert(getA(&data) == 1); assert(getB(&data) == 2); assert(getC(&data) == 3); comptime assert(@sizeOf(BitField1) == 1); } +fn getA(data: &const BitField1) -> u3 { + return data.a; +} + fn getB(data: &const BitField1) -> u3 { return data.b; } |
