mirror of
https://github.com/ziglang/zig.git
synced 2026-01-10 01:15:14 +00:00
Sema: do not call returnError when returning payload of error union
This commit is contained in:
parent
53a5aee3b3
commit
e369752430
@ -4839,7 +4839,7 @@ pub fn analyzeFnBody(mod: *Module, func: *Fn, arena: Allocator) SemaError!Air {
|
||||
};
|
||||
defer sema.deinit();
|
||||
|
||||
// reset in case case calls to errorable functions are removed.
|
||||
// reset in case calls to errorable functions are removed.
|
||||
func.calls_or_awaits_errorable_fn = false;
|
||||
|
||||
// First few indexes of extra are reserved and set at the end.
|
||||
|
||||
@ -12658,7 +12658,8 @@ fn analyzeRet(
|
||||
const backend_supports_error_return_tracing =
|
||||
sema.mod.comp.bin_file.options.use_llvm;
|
||||
|
||||
if (sema.fn_ret_ty.isError() and sema.mod.comp.bin_file.options.error_return_tracing and
|
||||
if ((sema.fn_ret_ty.zigTypeTag() == .ErrorSet or sema.typeOf(uncasted_operand).zigTypeTag() == .ErrorUnion) 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");
|
||||
|
||||
@ -698,9 +698,6 @@ pub const Object = struct {
|
||||
|
||||
const lexical_block = dib.createLexicalBlock(subprogram.toScope(), di_file.?, line_number, 1);
|
||||
di_scope = lexical_block.toScope();
|
||||
|
||||
// Setup a debug location in case there is a call to `returnError` before a `.dbg_stmt`.
|
||||
builder.setCurrentDebugLocation(line_number + func.lbrace_line, func.lbrace_column, di_scope.?, null);
|
||||
}
|
||||
|
||||
var fg: FuncGen = .{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user