Roland McGrath <roland(a)redhat.com> writes:
> But since the debug_line table header is actually there,
dwarflint is
> still not really happy. empty.o as produced by my patched gcc attached.
>
> $ eu-dwarflint empty.o
> warning: .debug_line: table 0: the file #1 `empty.c' is not used.
> error: .debug_line: table 0: sequence of opcodes not terminated with
> DW_LNE_end_sequence.
>
> So maybe a better solution would be to just add a dummy end_sequence.
I'm not sure the specification is clear this is invalid. It says, "Every
line number program sequence must end with a DW_LNE_end_sequence
instruction..." But I don't see any wording that says there actually has
to be any line number program sequence at all. Note that a .debug_line
table with no line number program sequences still has a valid meaning: it
defines the include directory path for the CU, and it defines the file
entries that the CU's DW_AT_decl_file et al refer to.
I suppressed that message in dwarflint to only appear if there are
actual line number program opcodes in the table.
PM