dwarf2.h (DW_AT_GNU_macros): New.
authorJakub Jelinek <jakub@redhat.com>
Fri, 22 Jul 2011 20:06:09 +0000 (22:06 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 22 Jul 2011 20:06:09 +0000 (22:06 +0200)
commit520cda8ca897131960a30a1943687ee97b60e0b1
treeb0723af67f5e999cd947b5a925fe1443da94821d
parente967adf4e25eb7497495886aa4c3b9460219cd2d
dwarf2.h (DW_AT_GNU_macros): New.

* dwarf2.h (DW_AT_GNU_macros): New.
(enum dwarf_macro_record_type): New enum.  Add DW_MACRO_GNU_*.

* dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
(DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
(dwarf_attr_name): Handle DW_AT_GNU_macros.
(dwarf2out_define): If the vector is empty and
lineno is 0, emit a dummy entry first.
(dwarf2out_undef): Likewise.  Remove redundant semicolon.
(htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
optimize_macinfo_range): New functions.
(output_macinfo): Use them.  If !dwarf_strict and .debug_str is
mergeable, optimize longer strings using
DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
optimize longer sequences of define/undef ops from headers
using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
emit a section headers.
(dwarf2out_init): For !dwarf_strict set debug_macinfo_section
and macinfo_section_label to DEBUG_MACRO_SECTION
resp. DEBUG_MACRO_SECTION_LABEL.
(dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
instead of DW_AT_macro_info.

From-SVN: r176653
gcc/ChangeLog
gcc/dwarf2out.c
include/ChangeLog
include/dwarf2.h