aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-02-16 17:08:55 -0500
committerAndrew Kelley <superjoe30@gmail.com>2017-02-16 17:08:55 -0500
commitb6e7a0dadd86ce401e82ec53d6874e9934826c2d (patch)
tree27171640bb593bdc66d47b213f73f2b40ca68df3 /test
parentfc5d47b9b960aa08d65bf0dfe3d6395c811f793b (diff)
downloadzig-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.zig21
-rw-r--r--test/cases/struct.zig5
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;
}