| ... | @@ -579,6 +579,8 @@ pub fn updateSymtabSize(self: *ZigObject, elf_file: *Elf) !void { | ... | @@ -579,6 +579,8 @@ pub fn updateSymtabSize(self: *ZigObject, elf_file: *Elf) !void { |
| 579 | for (self.local_symbols.items) |index| { | 579 | for (self.local_symbols.items) |index| { |
| 580 | const local = &self.symbols.items[index]; | 580 | const local = &self.symbols.items[index]; |
| 581 | if (local.atom(elf_file)) |atom_ptr| if (!atom_ptr.alive) continue; | 581 | if (local.atom(elf_file)) |atom_ptr| if (!atom_ptr.alive) continue; |
| | 582 | const name = local.name(elf_file); |
| | 583 | assert(name.len > 0); |
| 582 | const esym = local.elfSym(elf_file); | 584 | const esym = local.elfSym(elf_file); |
| 583 | switch (esym.st_type()) { | 585 | switch (esym.st_type()) { |
| 584 | elf.STT_SECTION, elf.STT_NOTYPE => continue, | 586 | elf.STT_SECTION, elf.STT_NOTYPE => continue, |
| ... | @@ -587,7 +589,7 @@ pub fn updateSymtabSize(self: *ZigObject, elf_file: *Elf) !void { | ... | @@ -587,7 +589,7 @@ pub fn updateSymtabSize(self: *ZigObject, elf_file: *Elf) !void { |
| 587 | local.flags.output_symtab = true; | 589 | local.flags.output_symtab = true; |
| 588 | local.addExtra(.{ .symtab = self.output_symtab_ctx.nlocals }, elf_file); | 590 | local.addExtra(.{ .symtab = self.output_symtab_ctx.nlocals }, elf_file); |
| 589 | self.output_symtab_ctx.nlocals += 1; | 591 | self.output_symtab_ctx.nlocals += 1; |
| 590 | self.output_symtab_ctx.strsize += @as(u32, @intCast(local.name(elf_file).len)) + 1; | 592 | self.output_symtab_ctx.strsize += @as(u32, @intCast(name.len)) + 1; |
| 591 | } | 593 | } |
| 592 | | 594 | |
| 593 | for (self.global_symbols.items, self.symbols_resolver.items) |index, resolv| { | 595 | for (self.global_symbols.items, self.symbols_resolver.items) |index, resolv| { |