authorgravatar for weii.tanTw <weii.tan> 2023-04-26 17:21:56+08:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2023-04-27 11:13:16+03:00
log131b328c10abde0193c13073b5ab82f0031fb121
tree7d346d88973d8112e07c76e55a9d2bd0daa04e02
parent363269a2a9aa71d909aa28f2f9c68c4220ae3d0b

translate-c: deduplicate global declaration

Fix #15456 Signed-off-by: Tw <weii.tan>

1 files changed, 5 insertions(+), 2 deletions(-)

src/translate_c.zig+5-2
...@@ -4195,8 +4195,11 @@ fn maybeSuppressResult(c: *Context, used: ResultUsed, result: Node) TransError!N...@@ -4195,8 +4195,11 @@ fn maybeSuppressResult(c: *Context, used: ResultUsed, result: Node) TransError!N
4195}4195}
41964196
4197fn addTopLevelDecl(c: *Context, name: []const u8, decl_node: Node) !void {4197fn addTopLevelDecl(c: *Context, name: []const u8, decl_node: Node) !void {
4198 try c.global_scope.sym_table.put(name, decl_node);4198 const gop = try c.global_scope.sym_table.getOrPut(name);
4199 try c.global_scope.nodes.append(decl_node);4199 if (!gop.found_existing) {
4200 gop.value_ptr.* = decl_node;
4201 try c.global_scope.nodes.append(decl_node);
4202 }
4200}4203}
42014204
4202fn transQualTypeInitializedStringLiteral(c: *Context, elem_ty: Node, string_lit: *const clang.StringLiteral) TypeError!Node {4205fn transQualTypeInitializedStringLiteral(c: *Context, elem_ty: Node, string_lit: *const clang.StringLiteral) TypeError!Node {