https://sourceware.org/bugzilla/show_bug.cgi?id=27387
--- Comment #15 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #14)
> ...
> .section
> .debug_macro.dwo,"G",@progbits,wm4.stdcpredef.h.19.006d14bbbe0dc07ba9\
> b1ce3fdc8e40d3,comdat
> .Ldebug_macro1:
> .value 0x4 # DWARF macro version number
> .byte 0 # Flags: 32-bit
> .byte 0x5 # Define macro strp
> .uleb128 0x13 # At line number 19
> .uleb128 0x2a4 # The macro: "_STDC_PREDEF_H 1"
> ...
I'm starting to think this is a gcc bug. At "DW_MACRO_define_strp,
DW_MACRO_undef_strp" we have:
...
A DW_MACRO_define_strp or DW_MACRO_undef_strp entry has two
operands. The first operand encodes the source line number of the #define or
#undef macro directive. The second operand consists of an offset into a string
table contained in the .debug_str section of the object file. The size of the
operand is given in the header offset_size_flag field.
...
There doesn't seem to be anything that states the line number needs to be a
uleb. But the second operand shouldn't be a uleb.
Readelf correctly does:
...
case DW_MACRO_define_strp:
READ_ULEB (lineno, curr, end);
SAFE_BYTE_GET_AND_INC (offset, curr, offset_size, end);
...
--
You are receiving this mail because:
You are on the CC list for the bug.