aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-08-09 17:34:06 -0400
committerAndrew Kelley <andrew@ziglang.org>2019-08-09 17:34:06 -0400
commit2e7f53f1f0d8339b8dc90ad7e0bc9963f1ec471c (patch)
treeeb01071160fb814d972d4db3ee611d5ae5524629 /src/analyze.cpp
parent614cab5d68176ea56e48195d04997738297429a1 (diff)
downloadzig-2e7f53f1f0d8339b8dc90ad7e0bc9963f1ec471c.tar.gz
zig-2e7f53f1f0d8339b8dc90ad7e0bc9963f1ec471c.zip
fix cancel inside an errdefer
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index cc90573f41..a09ba582c9 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -5246,6 +5246,9 @@ static Error resolve_coro_frame(CodeGen *g, ZigType *frame_type) {
field_names.append("@awaiter");
field_types.append(g->builtin_types.entry_usize);
+ field_names.append("@prev_val");
+ field_types.append(g->builtin_types.entry_usize);
+
FnTypeId *fn_type_id = &fn_type->data.fn.fn_type_id;
ZigType *ptr_return_type = get_pointer_to_type(g, fn_type_id->return_type, false);
field_names.append("@result_ptr_callee");
@@ -7592,6 +7595,7 @@ static void resolve_llvm_types_any_frame(CodeGen *g, ZigType *any_frame_type, Re
field_types.append(ptr_fn_llvm_type); // fn_ptr
field_types.append(usize_type_ref); // resume_index
field_types.append(usize_type_ref); // awaiter
+ field_types.append(usize_type_ref); // prev_val
bool have_result_type = result_type != nullptr && type_has_bits(result_type);
if (have_result_type) {