From 17067e0e6b6d28623b47b639853abc69a83b620a Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 5 May 2021 17:00:10 -0700 Subject: [PATCH] stage2: fix contents hash computation during an incremental update change detection, the function call to get the old contents hash took place after mangling the old ZIR index, making it access the wrong array index. --- src/Module.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Module.zig b/src/Module.zig index d78b9c95e67ab6fffa7f1791a93bd215c7069fbc..e1b4e0b4e267a63c3fd697726082afdd80ce2202 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -2436,6 +2436,7 @@ fn updateZirRefs(gpa: *Allocator, file: *Scope.File, old_zir: Zir) !UpdateChange // Anonymous decls and the root decl have this set to 0. We still need // to walk them but we do not need to modify this value. if (decl.zir_decl_index != 0) { + const old_hash = decl.contentsHashZir(old_zir); decl.zir_decl_index = extra_map.get(decl.zir_decl_index) orelse { try deleted_decls.append(gpa, decl); continue; @@ -2446,7 +2447,6 @@ fn updateZirRefs(gpa: *Allocator, file: *Scope.File, old_zir: Zir) !UpdateChange }; decl.name = new_zir.nullTerminatedString(new_name_index).ptr; - const old_hash = decl.contentsHashZir(old_zir); const new_hash = decl.contentsHashZir(new_zir); if (!std.zig.srcHashEql(old_hash, new_hash)) { try outdated_decls.append(gpa, decl); -- 2.54.0