mirror of
https://github.com/ziglang/zig.git
synced 2026-01-13 10:55:11 +00:00
AstGen: fix branch on undefined
`isAlwaysVoid` was being called with the undefined tag added by
`addOne`, causing non-deterministic behavior failures with release
builds of the compiler. Prevents the following random failure:
test/behavior/defer.zig:120:40: error: expected type 'error{One}', found 'void'
This commit is contained in:
parent
d70853ba39
commit
da878dc077
@ -2905,7 +2905,10 @@ fn deferStmt(
|
||||
const sub_scope = if (!have_err_code) &defer_gen.base else blk: {
|
||||
try gz.addDbgBlockBegin();
|
||||
const ident_name = try gz.astgen.identAsString(payload_token);
|
||||
remapped_err_code = @intCast(u32, try gz.astgen.instructions.addOne(gz.astgen.gpa));
|
||||
remapped_err_code = @intCast(Zir.Inst.Index, gz.astgen.instructions.len);
|
||||
// Use a placeholder tag of .as to allow querying things that depend on the tag,
|
||||
// but undefined data to prevent querying of data.bin.
|
||||
try gz.astgen.instructions.append(gz.astgen.gpa, .{ .tag = .as, .data = undefined });
|
||||
const remapped_err_code_ref = Zir.indexToRef(remapped_err_code);
|
||||
local_val_scope = .{
|
||||
.parent = &defer_gen.base,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user