aboutsummaryrefslogtreecommitdiff
path: root/include/dwarf2.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-07-22 22:06:09 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2011-07-22 22:06:09 +0200
commit520cda8ca897131960a30a1943687ee97b60e0b1 (patch)
treeb0723af67f5e999cd947b5a925fe1443da94821d /include/dwarf2.h
parente967adf4e25eb7497495886aa4c3b9460219cd2d (diff)
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
Diffstat (limited to 'include/dwarf2.h')
-rw-r--r--include/dwarf2.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/dwarf2.h b/include/dwarf2.h
index b2806ef78c9..37cb83f4b23 100644
--- a/include/dwarf2.h
+++ b/include/dwarf2.h
@@ -366,6 +366,8 @@ enum dwarf_attribute
DW_AT_GNU_all_tail_call_sites = 0x2116,
DW_AT_GNU_all_call_sites = 0x2117,
DW_AT_GNU_all_source_call_sites = 0x2118,
+ /* Section offset into .debug_macro section. */
+ DW_AT_GNU_macros = 0x2119,
/* VMS extensions. */
DW_AT_VMS_rtnbeg_pd_address = 0x2201,
/* GNAT extensions. */
@@ -879,6 +881,20 @@ enum dwarf_macinfo_record_type
DW_MACINFO_end_file = 4,
DW_MACINFO_vendor_ext = 255
};
+
+/* Names and codes for new style macro information. */
+enum dwarf_macro_record_type
+ {
+ DW_MACRO_GNU_define = 1,
+ DW_MACRO_GNU_undef = 2,
+ DW_MACRO_GNU_start_file = 3,
+ DW_MACRO_GNU_end_file = 4,
+ DW_MACRO_GNU_define_indirect = 5,
+ DW_MACRO_GNU_undef_indirect = 6,
+ DW_MACRO_GNU_transparent_include = 7,
+ DW_MACRO_GNU_lo_user = 0xe0,
+ DW_MACRO_GNU_hi_user = 0xff
+ };
/* @@@ For use with GNU frame unwind information. */