[llvm-bugs] [Bug 32574] New: `-S -g` can emit a zero-length .debug_line section
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Apr 7 17:25:23 PDT 2017
https://bugs.llvm.org/show_bug.cgi?id=32574
Bug ID: 32574
Summary: `-S -g` can emit a zero-length .debug_line section
Product: libraries
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: Common Code Generator Code
Assignee: unassignedbugs at nondot.org
Reporter: paul_robinson at playstation.sony.com
CC: llvm-bugs at lists.llvm.org
If you compile a source with no functions (or that otherwise doesn't emit
any instructions with line info attached, presumably) to assembler source,
you get an empty .debug_line section. Compiling to an object file directly
gets you a .debug_line section with a header and no line table.
An empty section is bad, because the compilation unit header has a reference
to the line table section. If the line section is empty, the reference can
end up pointing to a different CU's line table, which seems bad.
$ cat t.c
extern int i;
$ clang -c -g t.c -o t.o
$ clang -c -g t.c -o tS.s -S
$ clang -c tS.s -o tS.o
$ llvm-dwarfdump t.o > t.dump
$ llvm-dwarfdump tS.o > tS.dump
$ diff t.dump tS.dump
1c1
< t.o: file format ELF64-x86-64
---
> tS.o: file format ELF64-x86-64
39,58c39,46
< total_length: 0x00000019
< version: 2
< prologue_length: 0x00000013
< min_inst_length: 1
< default_is_stmt: 1
< line_base: -5
< line_range: 14
< opcode_base: 13
< standard_opcode_lengths[DW_LNS_copy] = 0
< standard_opcode_lengths[DW_LNS_advance_pc] = 1
< standard_opcode_lengths[DW_LNS_advance_line] = 1
< standard_opcode_lengths[DW_LNS_set_file] = 1
< standard_opcode_lengths[DW_LNS_set_column] = 1
< standard_opcode_lengths[DW_LNS_negate_stmt] = 0
< standard_opcode_lengths[DW_LNS_set_basic_block] = 0
< standard_opcode_lengths[DW_LNS_const_add_pc] = 0
< standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
< standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
< standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
< standard_opcode_lengths[DW_LNS_set_isa] = 1
---
> total_length: 0x00000000
> version: 0
> prologue_length: 0x00000000
> min_inst_length: 0
> default_is_stmt: 0
> line_base: 0
> line_range: 0
> opcode_base: 0
$
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170408/4ec7bee0/attachment-0001.html>
More information about the llvm-bugs
mailing list