aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-04-08 16:04:21 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-04-08 16:04:48 -0400
commitada441157f4a388950946e7f4db65c273f23c063 (patch)
tree88883742e7a7a96ca60eea7cbed7541071e7507d /src/analyze.cpp
parente4083b7391fd829e3060d24e10d13c8d52d889b0 (diff)
downloadzig-ada441157f4a388950946e7f4db65c273f23c063.tar.gz
zig-ada441157f4a388950946e7f4db65c273f23c063.zip
put the error return addresses in the coro frame
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index 16788c5e6c..ae2a1a1b1d 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -474,7 +474,8 @@ TypeTableEntry *get_promise_frame_type(CodeGen *g, TypeTableEntry *return_type)
field_names.append(RESULT_FIELD_NAME);
field_names.append(RESULT_PTR_FIELD_NAME);
if (g->have_err_ret_tracing) {
- field_names.append(ERR_RET_TRACE_PTR_FIELD_NAME);
+ field_names.append(ERR_RET_TRACE_FIELD_NAME);
+ field_names.append(RETURN_ADDRESSES_FIELD_NAME);
}
ZigList<TypeTableEntry *> field_types = {};
@@ -482,7 +483,9 @@ TypeTableEntry *get_promise_frame_type(CodeGen *g, TypeTableEntry *return_type)
field_types.append(return_type);
field_types.append(result_ptr_type);
if (g->have_err_ret_tracing) {
- field_types.append(get_ptr_to_stack_trace_type(g));
+ get_ptr_to_stack_trace_type(g);
+ field_types.append(g->stack_trace_type);
+ field_types.append(get_array_type(g, g->builtin_types.entry_usize, stack_trace_ptr_count));
}
assert(field_names.length == field_types.length);