]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
Get rid of dwarf::VS::unit_reference.
authorRoland McGrath <roland@redhat.com>
Thu, 2 Jul 2009 09:50:36 +0000 (02:50 -0700)
committerRoland McGrath <roland@redhat.com>
Thu, 2 Jul 2009 09:50:36 +0000 (02:50 -0700)
libdw/ChangeLog
libdw/c++/data-values.hh
libdw/c++/dwarf
libdw/c++/dwarf-knowledge.cc
libdw/c++/dwarf_comparator
libdw/c++/dwarf_data
libdw/c++/values.cc
src/ChangeLog
src/dwarflint-hl.cc

index a269182eb4211f0a1cd0efa0c3d7246c75799d41..3c1b98d597fa153cf090356f24a903f33edc5931 100644 (file)
@@ -1,5 +1,12 @@
 2009-07-02  Roland McGrath  <roland@redhat.com>
 
+       * c++/dwarf: Get rid of VS::unit_reference.
+       * c++/dwarf-knowledge.cc: Likewise.
+       * c++/dwarf_comparator: Likewise.
+       * c++/dwarf_data: Likewise.
+       * libdw/c++/values.cc: Likewise.
+       * c++/data-values.hh: Likewise.
+
        * c++/dwarf_output: Rewrite.
        * c++/subr.hh: New helpers for dwarf_output/dwarf_data.
 
index 55860f5c5cdac3d5f5777c2e43d7c08f91af246d..a16bb5f67d877189ef78d619edbff13bae8870b0 100644 (file)
@@ -64,8 +64,6 @@ namespace elfutils
       return dwarf::VS_dwarf_constant;
     if (typeid (*_m_value) == typeid (typename v::value_reference))
       return dwarf::VS_reference;
-    if (typeid (*_m_value) == typeid (typename v::value_unit_reference))
-      return dwarf::VS_unit_reference;
     if (typeid (*_m_value) == typeid (typename v::value_lineptr))
       return dwarf::VS_lineptr;
     if (typeid (*_m_value) == typeid (typename v::value_macptr))
index 311591fe6d970691d9feb2e2aa0b092af3e7487c..3958cd1f66c567e41c5e338411873a1485980f78 100644 (file)
@@ -1011,7 +1011,6 @@ namespace elfutils
        VS_dwarf_constant,      // Known DW_X_* space of integer constants.
        VS_discr_list,          // Block as used for DW_AT_discr_list.
        VS_reference,           // Pointer to another DIE.
-       VS_unit_reference,      // Pointer to another CU DIE.
        VS_lineptr,             // Pointer into .debug_line section.
        VS_macptr,              // Pointer into .debug_macinfo section.
        VS_rangelistptr,        // Pointer into .debug_ranges section.
@@ -1119,11 +1118,6 @@ namespace elfutils
        return (debug_info_entry::raw_children_type::const_iterator
                (thisattr ()));
       }
-      inline debug_info_entry::raw_children_type::const_iterator
-      unit_reference () const
-      {
-       return reference ();
-      }
 
       // XXX reloc, dwfl
       ::Dwarf_Addr address () const;
@@ -1176,7 +1170,6 @@ namespace elfutils
          switch (what)
            {
            case VS_reference:
-           case VS_unit_reference:
              // Stateless reference equality is just identity.
              return (reference ()->identity ()
                      == other.reference ()->identity ());
index 698d49acf1c7e3120eb0c315dcbdab46bc329fa7..41463ab825c6800c781fb75789360e44c03b88da 100644 (file)
@@ -98,7 +98,7 @@ expected_value_space (int attr, int tag)
       return VS(discr_list);
 
     case DW_AT_import:
-      return tag == DW_TAG_imported_unit ? VS(unit_reference) : VS(reference);
+      return VS(reference);
 
     case DW_AT_comp_dir:
       return VS(source_file);
index 55a4171708ba5ac130bc6f01beb70a4fd77e4d51..4373f6309e0dd84a8d18ecdb6b29f3b4c50aedf2 100644 (file)
@@ -391,7 +391,6 @@ namespace elfutils
        switch (what)
          {
          case dwarf::VS_reference:
-         case dwarf::VS_unit_reference:
            return reference_match (a.reference (), b.reference ());
 
          case dwarf::VS_flag:
index 6d039009e0bdbb55b78db6aa5386df167c3719f8..d2355bb7b36b228ef7e87e8dcf11506d2943a2e4 100644 (file)
@@ -730,23 +730,6 @@ namespace elfutils
          : ref () {}
       };
 
-      struct value_unit_reference : public value_dispatch
-      {
-       typename impl::compile_units::iterator ref;
-
-       template<typename arg_type>
-       inline value_unit_reference
-       (const typename impl::compile_units::iterator &i,
-        const arg_type &arg)
-         : ref (i)
-       {}
-
-       template<typename iter, typename arg_type>      // XXX dummy
-       inline value_unit_reference (const iter &i, const arg_type &arg)
-         : ref ()
-       {}
-      };
-
       struct value_flag : public value_dispatch
       {
        bool flag;
@@ -905,7 +888,6 @@ namespace elfutils
              _DWARF_DATA_AV_MAKE (source_file, source_file);
              _DWARF_DATA_AV_MAKE (dwarf_constant, dwarf_constant);
              _DWARF_DATA_AV_MAKE (reference, reference);
-             _DWARF_DATA_AV_MAKE (unit_reference, unit_reference);
              _DWARF_DATA_AV_MAKE (location, location);
              //_DWARF_DATA_AV_MAKE (macptr, macros);   XXX
 
@@ -1020,11 +1002,6 @@ namespace elfutils
       {
        return variant<typename vw::value_reference> ().ref;
       }
-      inline typename impl::compile_units::iterator
-      unit_reference () const
-      {
-       return variant<typename vw::value_unit_reference> ().ref;
-      }
 
       inline location_attr &location () const
       {
@@ -1169,8 +1146,6 @@ namespace elfutils
              return string () == other.string ();
            case dwarf::VS_reference:
              return reference () == other.reference ();
-           case dwarf::VS_unit_reference:
-             return unit_reference () == other.unit_reference ();
            case dwarf::VS_flag:
              return flag () == other.flag ();
            case dwarf::VS_rangelistptr:
index 109db05a8d0d5368472e90351230b08fa841f0ed..0ba451b27e7dcfedc88b438eb5dc3da808694bf2 100644 (file)
@@ -122,7 +122,7 @@ dwarf::attr_value::what_space () const
     case DW_FORM_ref4:
     case DW_FORM_ref8:
     case DW_FORM_ref_udata:
-      possible = VS(unit_reference) | VS(reference);
+      possible = VS(reference);
       break;
 
     default:
@@ -131,10 +131,6 @@ dwarf::attr_value::what_space () const
 
   if (unlikely ((expected & possible) == 0))
     {
-      if (expected == 0 && possible == (VS(unit_reference) | VS(reference)))
-       // An unknown reference is a reference, not a unit_reference.
-       return VS_reference;
-
       // Otherwise we don't know enough to treat it robustly.
       throw std::runtime_error ("XXX ambiguous form in unexpected attribute");
     }
@@ -217,7 +213,6 @@ value_string (const value_type &value)
       return addr_string (value.address ());
 
     case dwarf::VS_reference:
-    case dwarf::VS_unit_reference:
       return hex_string (value.reference ()->offset (), "[", "]");
 
     case dwarf::VS_source_file:
index e521df840e131b3d44207415b1c7822448d616e3..809495e436860a36ae9774158d32931d51bde145 100644 (file)
@@ -1,5 +1,7 @@
 2009-07-02  Roland McGrath  <roland@redhat.com>
 
+       * dwarflint-hl.cc (operator<<): dwarf::VS_unit_reference is gone.
+
        * dwarfcmp.cc (main): Update -T constructors using tracker.
        Instantiate and test dwarf_output for -T too.
 
index 5a8c43476bb3e2b138a06aa6786afa7c059436ad..edd71d6d94c3d977f46a56d6f6549d7e1aa43f7c 100644 (file)
@@ -146,7 +146,6 @@ operator << (std::ostream &o, elfutils::dwarf::value_space vs)
     case dwarf::VS_dwarf_constant: return o << "dwarf_constant";
     case dwarf::VS_discr_list: return o << "discr_list";
     case dwarf::VS_reference: return o << "reference";
-    case dwarf::VS_unit_reference: return o << "unit_reference";
     case dwarf::VS_lineptr: return o << "lineptr";
     case dwarf::VS_macptr: return o << "macptr";
     case dwarf::VS_rangelistptr: return o << "rangelistptr";