diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-05-23 19:28:14 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-05-23 19:28:14 -0400 |
| commit | 395786fd50897ec4e07d9fa0e666251715fa712b (patch) | |
| tree | f3e258206059e8db6dc6d49fb934bb6c68c454ed | |
| parent | 88f5e3a60d6ea528f27935c63aaf3312d736cdbe (diff) | |
| download | zig-395786fd50897ec4e07d9fa0e666251715fa712b.tar.gz zig-395786fd50897ec4e07d9fa0e666251715fa712b.zip | |
translate-c: fix regression in param name mangling
| -rw-r--r-- | src-self-hosted/translate_c.zig | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src-self-hosted/translate_c.zig b/src-self-hosted/translate_c.zig index a4e16c83ff..2cb503e2d8 100644 --- a/src-self-hosted/translate_c.zig +++ b/src-self-hosted/translate_c.zig @@ -592,19 +592,15 @@ fn visitFnDecl(c: *Context, fn_decl: *const ZigClangFunctionDecl) Error!void { } else return failDecl(c, fn_decl_loc, fn_name, "function {} parameter has no name", .{fn_name}); - const mangled_param_name = try block_scope.makeMangledName(c, param_name); - const c_param = ZigClangFunctionDecl_getParamDecl(fn_decl, param_id); const qual_type = ZigClangParmVarDecl_getOriginalType(c_param); const is_const = ZigClangQualType_isConstQualified(qual_type); - const arg_name = blk: { - const param_prefix = if (is_const) "" else "arg_"; - const bare_arg_name = try std.fmt.allocPrint(c.arena, "{}{}", .{ param_prefix, mangled_param_name }); - break :blk try block_scope.makeMangledName(c, bare_arg_name); - }; + const mangled_param_name = try block_scope.makeMangledName(c, param_name); if (!is_const) { + const bare_arg_name = try std.fmt.allocPrint(c.arena, "arg_{}", .{ mangled_param_name }); + const arg_name = try block_scope.makeMangledName(c, bare_arg_name); const node = try transCreateNodeVarDecl(c, false, false, mangled_param_name); node.eq_token = try appendToken(c, .Equal, "="); node.init_node = try transCreateNodeIdentifier(c, arg_name); |
