From fdf4c875ffbbeb24f844718d9eb92bac38e7147e Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Fri, 23 Sep 2022 17:09:21 +0300 Subject: llvm: avoid crash on duplicate asm input/output name --- src/codegen/llvm.zig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/codegen/llvm.zig') diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index b2b811beba..b2b9d7de2c 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -5972,7 +5972,9 @@ pub const FuncGen = struct { } if (!std.mem.eql(u8, name, "_")) { - name_map.putAssumeCapacityNoClobber(name, total_i); + const gop = name_map.getOrPutAssumeCapacity(name); + if (gop.found_existing) return self.todo("duplicate asm output name '{s}'", .{name}); + gop.value_ptr.* = total_i; } total_i += 1; } @@ -6028,7 +6030,9 @@ pub const FuncGen = struct { } if (!std.mem.eql(u8, name, "_")) { - name_map.putAssumeCapacityNoClobber(name, total_i); + const gop = name_map.getOrPutAssumeCapacity(name); + if (gop.found_existing) return self.todo("duplicate asm input name '{s}'", .{name}); + gop.value_ptr.* = total_i; } // In the case of indirect inputs, LLVM requires the callsite to have -- cgit v1.2.3