aboutsummaryrefslogtreecommitdiff
path: root/test/run_tests.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-02-06 01:13:47 -0700
committerAndrew Kelley <superjoe30@gmail.com>2016-02-06 01:18:39 -0700
commit34a7e6fdb362cb7be1067b7d1fc110eb2f323c51 (patch)
tree7f424a8a2d04f7b76d9a4d5f4dc65948b33d732d /test/run_tests.cpp
parentec33e5a638b816ab0ba1e4dd3f9433dbb71d7e53 (diff)
downloadzig-34a7e6fdb362cb7be1067b7d1fc110eb2f323c51.tar.gz
zig-34a7e6fdb362cb7be1067b7d1fc110eb2f323c51.zip
codegen: return respects unconditional defer
See #110
Diffstat (limited to 'test/run_tests.cpp')
-rw-r--r--test/run_tests.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/run_tests.cpp b/test/run_tests.cpp
index 26c6a287f0..50fa09f5a9 100644
--- a/test/run_tests.cpp
+++ b/test/run_tests.cpp
@@ -1532,6 +1532,19 @@ pub fn main(args: [][]u8) -> %void {
}
)SOURCE", "before\nafter\ndefer3\ndefer2\ndefer1\n");
+
+ add_simple_case("defer with return", R"SOURCE(
+import "std.zig";
+pub fn main(args: [][]u8) -> %void {
+ %%stdout.printf("before\n");
+ defer %%stdout.printf("defer1\n");
+ defer %%stdout.printf("defer2\n");
+ if (args.len == 1) return;
+ defer %%stdout.printf("defer3\n");
+ %%stdout.printf("after\n");
+}
+ )SOURCE", "before\ndefer2\ndefer1\n");
+
}