diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-02-06 01:13:47 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-02-06 01:18:39 -0700 |
| commit | 34a7e6fdb362cb7be1067b7d1fc110eb2f323c51 (patch) | |
| tree | 7f424a8a2d04f7b76d9a4d5f4dc65948b33d732d /test/run_tests.cpp | |
| parent | ec33e5a638b816ab0ba1e4dd3f9433dbb71d7e53 (diff) | |
| download | zig-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.cpp | 13 |
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"); + } |
