diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-10-15 18:40:52 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-10-15 18:40:52 +0200 |
commit | 7613143b727ca4ca314b95c4743f2f48e5c6c0a9 (patch) | |
tree | e18e428ce90e70b3520ac763651e2f997cc77341 | |
parent | 83bb5ce30b8b913564df830a7859369fe257715e (diff) | |
download | gcc-7613143b727ca4ca314b95c4743f2f48e5c6c0a9.zip gcc-7613143b727ca4ca314b95c4743f2f48e5c6c0a9.tar.gz gcc-7613143b727ca4ca314b95c4743f2f48e5c6c0a9.tar.bz2 |
dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type and DW_TAG_template_alias.
* dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
and DW_TAG_template_alias.
(dwarf_attr_name): Handle DW_AT_main_subprogram,
DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
and DW_AT_GNU_odr_signature.
(dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
DW_FORM_flag_present and DW_FORM_ref_sig8.
(output_signature): Only print name on the first byte.
(output_die): Likewise for dw_val_class_data8.
* include/dwarf2.h (DW_LANG_Python): Add comment that it is
a DWARF 4 addition.
From-SVN: r152853
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 42 | ||||
-rw-r--r-- | include/ChangeLog | 5 | ||||
-rw-r--r-- | include/dwarf2.h | 1 |
4 files changed, 61 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12f6bac..7f3e666 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2009-10-15 Jakub Jelinek <jakub@redhat.com> + + * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type + and DW_TAG_template_alias. + (dwarf_attr_name): Handle DW_AT_main_subprogram, + DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class, + DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by, + DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded, + DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required + and DW_AT_GNU_odr_signature. + (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc, + DW_FORM_flag_present and DW_FORM_ref_sig8. + (output_signature): Only print name on the first byte. + (output_die): Likewise for dw_val_class_data8. + 2009-10-15 Alexander Monakov <amonakov@ispras.ru> * doc/invoke.texi: Clarify that most optimizations are not enabled diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 2f9d2b8..791ecd3 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -6478,6 +6478,10 @@ dwarf_tag_name (unsigned int tag) return "DW_TAG_shared_type"; case DW_TAG_type_unit: return "DW_TAG_type_unit"; + case DW_TAG_rvalue_reference_type: + return "DW_TAG_rvalue_reference_type"; + case DW_TAG_template_alias: + return "DW_TAG_template_alias"; case DW_TAG_GNU_template_parameter_pack: return "DW_TAG_GNU_template_parameter_pack"; case DW_TAG_GNU_formal_parameter_pack: @@ -6662,6 +6666,16 @@ dwarf_attr_name (unsigned int attr) case DW_AT_signature: return "DW_AT_signature"; + case DW_AT_main_subprogram: + return "DW_AT_main_subprogram"; + case DW_AT_data_bit_offset: + return "DW_AT_data_bit_offset"; + case DW_AT_const_expr: + return "DW_AT_const_expr"; + case DW_AT_enum_class: + return "DW_AT_enum_class"; + case DW_AT_linkage_name: + return "DW_AT_linkage_name"; case DW_AT_MIPS_fde: return "DW_AT_MIPS_fde"; @@ -6700,6 +6714,22 @@ dwarf_attr_name (unsigned int attr) return "DW_AT_body_end"; case DW_AT_GNU_vector: return "DW_AT_GNU_vector"; + case DW_AT_GNU_guarded_by: + return "DW_AT_GNU_guarded_by"; + case DW_AT_GNU_pt_guarded_by: + return "DW_AT_GNU_pt_guarded_by"; + case DW_AT_GNU_guarded: + return "DW_AT_GNU_guarded"; + case DW_AT_GNU_pt_guarded: + return "DW_AT_GNU_pt_guarded"; + case DW_AT_GNU_locks_excluded: + return "DW_AT_GNU_locks_excluded"; + case DW_AT_GNU_exclusive_locks_required: + return "DW_AT_GNU_exclusive_locks_required"; + case DW_AT_GNU_shared_locks_required: + return "DW_AT_GNU_shared_locks_required"; + case DW_AT_GNU_odr_signature: + return "DW_AT_GNU_odr_signature"; case DW_AT_GNU_template_name: return "DW_AT_GNU_template_name"; @@ -6760,6 +6790,14 @@ dwarf_form_name (unsigned int form) return "DW_FORM_ref_udata"; case DW_FORM_indirect: return "DW_FORM_indirect"; + case DW_FORM_sec_offset: + return "DW_FORM_sec_offset"; + case DW_FORM_exprloc: + return "DW_FORM_exprloc"; + case DW_FORM_flag_present: + return "DW_FORM_flag_present"; + case DW_FORM_ref_sig8: + return "DW_FORM_ref_sig8"; default: return "DW_FORM_<unknown>"; } @@ -10352,7 +10390,7 @@ output_signature (const char *sig, const char *name) int i; for (i = 0; i < DWARF_TYPE_SIGNATURE_SIZE; i++) - dw2_asm_output_data (1, sig[i], "%s", name); + dw2_asm_output_data (1, sig[i], i == 0 ? "%s" : NULL, name); } /* Output the DIE and its attributes. Called recursively to generate @@ -10573,7 +10611,7 @@ output_die (dw_die_ref die) for (i = 0; i < 8; i++) dw2_asm_output_data (1, a->dw_attr_val.v.val_data8[i], - "%s", name); + i == 0 ? "%s" : NULL, name); break; } diff --git a/include/ChangeLog b/include/ChangeLog index d084bda..4680e59 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2009-10-15 Jakub Jelinek <jakub@redhat.com> + + * include/dwarf2.h (DW_LANG_Python): Add comment that it is + a DWARF 4 addition. + 2009-10-09 Rafael Espindola <espindola@google.com> * plugin-api.h (ld_plugin_add_input_library): Change argument name to diff --git a/include/dwarf2.h b/include/dwarf2.h index 385ab22..7a8e030 100644 --- a/include/dwarf2.h +++ b/include/dwarf2.h @@ -858,6 +858,7 @@ enum dwarf_source_language DW_LANG_ObjC_plus_plus = 0x0011, DW_LANG_UPC = 0x0012, DW_LANG_D = 0x0013, + /* DWARF 4. */ DW_LANG_Python = 0x0014, DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */ |