aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-04-22 23:10:02 +0300
committerAndrew Kelley <andrew@ziglang.org>2022-05-16 17:42:51 -0700
commit66c3988e5eebd423844d5dd20c762d6fefe20adf (patch)
treefa946dcc687f49cf8e20851f15bb1f5028beef93 /src/Sema.zig
parenteee8fffec70b1d3e2900970dbe836e346e499231 (diff)
downloadzig-66c3988e5eebd423844d5dd20c762d6fefe20adf.tar.gz
zig-66c3988e5eebd423844d5dd20c762d6fefe20adf.zip
stage2: disable error return tracing on unsupported targets
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index ab2a59f44a..1801806084 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -1412,6 +1412,12 @@ fn analyzeAsType(
}
pub fn setupErrorReturnTrace(sema: *Sema, block: *Block, last_arg_index: usize) !void {
+ const backend_supports_error_return_tracing = false;
+ if (!backend_supports_error_return_tracing) {
+ // TODO implement this feature in all the backends and then delete this branch
+ return;
+ }
+
var err_trace_block = block.makeSubBlock();
err_trace_block.is_comptime = false;
defer err_trace_block.instructions.deinit(sema.gpa);
@@ -12655,7 +12661,12 @@ fn analyzeRet(
return always_noreturn;
}
- if (sema.fn_ret_ty.isError() and sema.mod.comp.bin_file.options.error_return_tracing) {
+ // TODO implement this feature in all the backends and then delete this check.
+ const backend_supports_error_return_tracing = false;
+
+ if (sema.fn_ret_ty.isError() and sema.mod.comp.bin_file.options.error_return_tracing and
+ backend_supports_error_return_tracing)
+ {
const return_err_fn = try sema.getBuiltin(block, src, "returnError");
const unresolved_stack_trace_ty = try sema.getBuiltinType(block, src, "StackTrace");
const stack_trace_ty = try sema.resolveTypeFields(block, src, unresolved_stack_trace_ty);
@@ -13397,9 +13408,14 @@ fn zirErrorReturnTrace(
const unresolved_stack_trace_ty = try sema.getBuiltinType(block, src, "StackTrace");
const stack_trace_ty = try sema.resolveTypeFields(block, src, unresolved_stack_trace_ty);
const opt_ptr_stack_trace_ty = try Type.Tag.optional_single_mut_pointer.create(sema.arena, stack_trace_ty);
+
+ // TODO implement this feature in all the backends and then delete this check.
+ const backend_supports_error_return_tracing = false;
+
if (sema.owner_func != null and
sema.owner_func.?.calls_or_awaits_errorable_fn and
- sema.mod.comp.bin_file.options.error_return_tracing)
+ sema.mod.comp.bin_file.options.error_return_tracing and
+ backend_supports_error_return_tracing)
{
return block.addTy(.err_return_trace, opt_ptr_stack_trace_ty);
}