OSDN Git Service

* dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Oct 2009 16:40:52 +0000 (16:40 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Oct 2009 16:40:52 +0000 (16:40 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152853 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dwarf2out.c
include/ChangeLog
include/dwarf2.h

index 12f6bac..7f3e666 100644 (file)
@@ -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
index 2f9d2b8..791ecd3 100644 (file)
@@ -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;
          }
 
index d084bda..4680e59 100644 (file)
@@ -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
index 385ab22..7a8e030 100644 (file)
@@ -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.  */