aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-11-08 16:50:23 +0200
committerVeikka Tuominen <git@vexu.eu>2022-11-11 17:59:53 +0200
commitcacfb0cfe4217a19872d62e248389bc522b36bf8 (patch)
tree5e76e15660cc21a932fce4217315af9968fdb58f /src
parent89e8bb409a6b3dd47f9d1e1ab6e2abc5fb0ef746 (diff)
downloadzig-cacfb0cfe4217a19872d62e248389bc522b36bf8.tar.gz
zig-cacfb0cfe4217a19872d62e248389bc522b36bf8.zip
llvm: fix leaks of fully qualified names
Diffstat (limited to 'src')
-rw-r--r--src/codegen/llvm.zig12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index acbf5b337f..b10402cc09 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -8671,9 +8671,9 @@ pub const FuncGen = struct {
const arena = arena_allocator.allocator();
const mod = self.dg.module;
- const llvm_fn_name = try std.fmt.allocPrintZ(arena, "__zig_is_named_enum_value_{s}", .{
- try mod.declPtr(enum_decl).getFullyQualifiedName(mod),
- });
+ const fqn = try mod.declPtr(enum_decl).getFullyQualifiedName(mod);
+ defer self.gpa.free(fqn);
+ const llvm_fn_name = try std.fmt.allocPrintZ(arena, "__zig_is_named_enum_value_{s}", .{fqn});
var int_tag_type_buffer: Type.Payload.Bits = undefined;
const int_tag_ty = enum_ty.intTagType(&int_tag_type_buffer);
@@ -8752,9 +8752,9 @@ pub const FuncGen = struct {
const arena = arena_allocator.allocator();
const mod = self.dg.module;
- const llvm_fn_name = try std.fmt.allocPrintZ(arena, "__zig_tag_name_{s}", .{
- try mod.declPtr(enum_decl).getFullyQualifiedName(mod),
- });
+ const fqn = try mod.declPtr(enum_decl).getFullyQualifiedName(mod);
+ defer self.gpa.free(fqn);
+ const llvm_fn_name = try std.fmt.allocPrintZ(arena, "__zig_tag_name_{s}", .{fqn});
const slice_ty = Type.initTag(.const_slice_u8_sentinel_0);
const llvm_ret_ty = try self.dg.lowerType(slice_ty);