diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-01-08 23:41:40 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-01-08 23:41:40 -0700 |
| commit | b7dd88ad68aab5b6bc8321431d1a53b343b2dd37 (patch) | |
| tree | 78a9cd198eb94529a5841eb68c6bf57f9be21607 /test/run_tests.cpp | |
| parent | 14b9cbd43c21ad2ba75b38ef5fc681c044e7662e (diff) | |
| download | zig-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.cpp | 20 |
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 {} |
