aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-10-15 18:40:52 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2009-10-15 18:40:52 +0200
commit7613143b727ca4ca314b95c4743f2f48e5c6c0a9 (patch)
treee18e428ce90e70b3520ac763651e2f997cc77341
parent83bb5ce30b8b913564df830a7859369fe257715e (diff)
downloadgcc-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/ChangeLog15
-rw-r--r--gcc/dwarf2out.c42
-rw-r--r--include/ChangeLog5
-rw-r--r--include/dwarf2.h1
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. */