From 358d699fa9e879cf0e027b2fd60d9dc739dac642 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 8 Dec 2015 15:46:36 -0700 Subject: add test for arrays --- test/run_tests.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'test/run_tests.cpp') diff --git a/test/run_tests.cpp b/test/run_tests.cpp index 4a58f6df02..7bbe6be97b 100644 --- a/test/run_tests.cpp +++ b/test/run_tests.cpp @@ -355,6 +355,48 @@ done: exit(0); } )SOURCE", "zero\nloop\nloop\nloop\n"); + + add_simple_case("arrays", R"SOURCE( +#link("c") +extern { + fn puts(s: *const u8) -> i32; + fn exit(code: i32) -> unreachable; +} + +export fn _start() -> unreachable { + let mut array : [i32; 5]; + + let mut i = 0; +loop_start: + if i == 5 { + goto loop_end; + } + array[i] = i + 1; + i = array[i]; + goto loop_start; + +loop_end: + + i = 0; + let mut accumulator = 0; +loop_2_start: + if i == 5 { + goto loop_2_end; + } + + accumulator = accumulator + array[i]; + + i = i + 1; + goto loop_2_start; +loop_2_end: + + if accumulator == 15 { + puts("OK"); + } + + exit(0); +} + )SOURCE", "OK\n"); } static void add_compile_failure_test_cases(void) { -- cgit v1.2.3