authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-06-11 00:15:08-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-06-11 03:01:17-07:00
logb9a4eae34900958bad7d477cfde1e7ddb4f8be92
treee08c3f5cf4f857252b727c06077e51b78afcfea4
parenta01bc7776fe3d987e7e9e6346c43480ac260c40e

llvm: fix more name lifetimes

Hopefully this also fixes the non-reproducing CI failures.

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

src/codegen/llvm.zig+7-5
......@@ -2198,6 +2198,7 @@ pub const Object = struct {
21982198 const field_size = field.ty.abiSize(mod);
21992199 const field_align = field.normalAlignment(mod);
22002200
2201 const field_di_ty = try o.lowerDebugType(field.ty, .full);
22012202 di_fields.appendAssumeCapacity(dib.createMemberType(
22022203 fwd_decl.toScope(),
22032204 mod.intern_pool.stringToSlice(field_name),
......@@ -2207,7 +2208,7 @@ pub const Object = struct {
22072208 field_align * 8, // align in bits
22082209 0, // offset in bits
22092210 0, // flags
2210 try o.lowerDebugType(field.ty, .full),
2211 field_di_ty,
22112212 ));
22122213 }
22132214
......@@ -2377,8 +2378,9 @@ pub const Object = struct {
23772378 const mod = o.module;
23782379 const decl = mod.declPtr(decl_index);
23792380 const fields: [0]*llvm.DIType = .{};
2381 const di_scope = try o.namespaceToDebugScope(decl.src_namespace);
23802382 return o.di_builder.?.createStructType(
2381 try o.namespaceToDebugScope(decl.src_namespace),
2383 di_scope,
23822384 mod.intern_pool.stringToSlice(decl.name), // TODO use fully qualified name
23832385 try o.getDIFile(o.gpa, mod.namespacePtr(decl.src_namespace).file_scope),
23842386 decl.src_line + 1,
......@@ -5940,8 +5942,6 @@ pub const FuncGen = struct {
59405942 .base_line = self.base_line,
59415943 });
59425944
5943 const fqn = mod.intern_pool.stringToSlice(try decl.getFullyQualifiedName(mod));
5944
59455945 const is_internal_linkage = !mod.decl_exports.contains(decl_index);
59465946 const fn_ty = try mod.funcType(.{
59475947 .param_types = &.{},
......@@ -5958,13 +5958,15 @@ pub const FuncGen = struct {
59585958 .section_is_generic = false,
59595959 .addrspace_is_generic = false,
59605960 });
5961 const fn_di_ty = try self.dg.object.lowerDebugType(fn_ty, .full);
5962 const fqn = mod.intern_pool.stringToSlice(try decl.getFullyQualifiedName(mod));
59615963 const subprogram = dib.createFunction(
59625964 di_file.toScope(),
59635965 mod.intern_pool.stringToSlice(decl.name),
59645966 fqn,
59655967 di_file,
59665968 line_number,
5967 try self.dg.object.lowerDebugType(fn_ty, .full),
5969 fn_di_ty,
59685970 is_internal_linkage,
59695971 true, // is definition
59705972 line_number + func.lbrace_line, // scope line