diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-22 20:06:09 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-22 20:06:09 +0000 |
commit | 60699ecdcfc62577b676d6354e123c6a761f9509 (patch) | |
tree | b0723af67f5e999cd947b5a925fe1443da94821d /include | |
parent | f45370f89c3e5700d237f4da87e921174a0aaea6 (diff) | |
download | gcc-60699ecdcfc62577b676d6354e123c6a761f9509.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176653 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 3 | ||||
-rw-r--r-- | include/dwarf2.h | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index e641ae0c3e9..29106d0479f 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,5 +1,8 @@ 2011-07-22 Jakub Jelinek <jakub@redhat.com> + * dwarf2.h (DW_AT_GNU_macros): New. + (enum dwarf_macro_record_type): New enum. Add DW_MACRO_GNU_*. + PR c++/49756 * libiberty.h (stack_limit_increase): New prototype. 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. */ |