aboutsummaryrefslogtreecommitdiff
path: root/test/run_tests.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-01-08 23:41:40 -0700
committerAndrew Kelley <superjoe30@gmail.com>2016-01-08 23:41:40 -0700
commitb7dd88ad68aab5b6bc8321431d1a53b343b2dd37 (patch)
tree78a9cd198eb94529a5841eb68c6bf57f9be21607 /test/run_tests.cpp
parent14b9cbd43c21ad2ba75b38ef5fc681c044e7662e (diff)
downloadzig-b7dd88ad68aab5b6bc8321431d1a53b343b2dd37.tar.gz
zig-b7dd88ad68aab5b6bc8321431d1a53b343b2dd37.zip
suport checked arithmetic operations via intrinsics
closes #32
Diffstat (limited to 'test/run_tests.cpp')
-rw-r--r--test/run_tests.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/test/run_tests.cpp b/test/run_tests.cpp
index cc93e188e3..b72e23d23b 100644
--- a/test/run_tests.cpp
+++ b/test/run_tests.cpp
@@ -955,6 +955,24 @@ fn f(c: u8) -> u8 {
}
}
)SOURCE", "OK\n");
+
+ add_simple_case("overflow intrinsics", R"SOURCE(
+use "std.zig";
+pub fn main(argc: isize, argv: &&u8, env: &&u8) -> i32 {
+ var result: u8;
+ if (!@add_with_overflow_u8(250, 100, &result)) {
+ print_str("BAD\n");
+ }
+ if (@add_with_overflow_u8(100, 150, &result)) {
+ print_str("BAD\n");
+ }
+ if (result != 250) {
+ print_str("BAD\n");
+ }
+ print_str("OK\n");
+ return 0;
+}
+ )SOURCE", "OK\n");
}
@@ -995,7 +1013,7 @@ fn a() {
b(1);
}
fn b(a: i32, b: i32, c: i32) { }
- )SOURCE", 1, ".tmp_source.zig:3:6: error: wrong number of arguments. Expected 3, got 1.");
+ )SOURCE", 1, ".tmp_source.zig:3:6: error: expected 3 arguments, got 1");
add_compile_fail_case("invalid type", R"SOURCE(
fn a() -> bogus {}