gdb: remove TYPE_FIELD_LOC_KIND
authorSimon Marchi <simon.marchi@polymtl.ca>
Sun, 26 Sep 2021 20:34:28 +0000 (16:34 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Fri, 29 Oct 2021 20:44:21 +0000 (16:44 -0400)
Remove TYPE_FIELD_LOC_KIND, replace its uses with type::field +
field::loc_kind.

Change-Id: Ib124a26365df82ac1d23df7962d954192913bd90

gdb/ax-gdb.c
gdb/compile/compile-cplus-types.c
gdb/dwarf2/read.c
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/gnu-v3-abi.c
gdb/python/py-type.c
gdb/riscv-tdep.c
gdb/valops.c
gdb/value.c

index e07ee3ab6965d883ffb12b145095d0e4ff104f47..29d1bab81148df8d52e201227e2a471944977f50 100644 (file)
@@ -1438,7 +1438,7 @@ static void
 gen_static_field (struct agent_expr *ax, struct axs_value *value,
                  struct type *type, int fieldno)
 {
-  if (TYPE_FIELD_LOC_KIND (type, fieldno) == FIELD_LOC_KIND_PHYSADDR)
+  if (type->field (fieldno).loc_kind () == FIELD_LOC_KIND_PHYSADDR)
     {
       ax_const_l (ax, TYPE_FIELD_STATIC_PHYSADDR (type, fieldno));
       value->kind = axs_lvalue_memory;
index 8871de17f78a1d649d255572d86e0cc6130d8063..ef73aaabf0f10268c0b2a9af47afee1cd365ae51 100644 (file)
@@ -599,7 +599,7 @@ compile_cplus_convert_struct_or_union_members
        {
          CORE_ADDR physaddr;
 
-         switch (TYPE_FIELD_LOC_KIND (type, i))
+         switch (type->field (i).loc_kind ())
            {
            case FIELD_LOC_KIND_PHYSADDR:
              {
@@ -939,7 +939,7 @@ compile_cplus_convert_enum (compile_cplus_instance *instance, struct type *type,
       gdb::unique_xmalloc_ptr<char> fname
        = compile_cplus_instance::decl_name (type->field (i).name ());
 
-      if (TYPE_FIELD_LOC_KIND (type, i) != FIELD_LOC_KIND_ENUMVAL
+      if (type->field (i).loc_kind () != FIELD_LOC_KIND_ENUMVAL
          || fname == nullptr)
        continue;
 
index 71efd1c616ea8d988968f4d97f3e9811a52613bf..5e5c7ccfdb859b722e928c8cf45680cf6312e894 100644 (file)
@@ -9065,7 +9065,7 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
          name = tail;
          if (*name != '$'
              || index >= field_type->num_fields ()
-             || (TYPE_FIELD_LOC_KIND (field_type, index)
+             || (field_type->field (index).loc_kind ()
                  != FIELD_LOC_KIND_BITPOS))
            {
              complaint (_("Could not parse Rust enum encoding string \"%s\""
@@ -9197,7 +9197,7 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
       std::unordered_map<std::string, ULONGEST> discriminant_map;
       for (int i = 0; i < enum_type->num_fields (); ++i)
        {
-         if (TYPE_FIELD_LOC_KIND (enum_type, i) == FIELD_LOC_KIND_ENUMVAL)
+         if (enum_type->field (i).loc_kind () == FIELD_LOC_KIND_ENUMVAL)
            {
              const char *name
                = rust_last_path_segment (enum_type->field (i).name ());
index 8cfb9db280e0ae372e697a4eeeab1304a4a15aa4..981b9b337c2e3ec37de5427a9e2ef88d123d281b 100644 (file)
@@ -2154,7 +2154,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
              return 1;
            /* If the field is at a fixed offset, then it is not
               dynamic.  */
-           if (TYPE_FIELD_LOC_KIND (type, i) != FIELD_LOC_KIND_DWARF_BLOCK)
+           if (type->field (i).loc_kind () != FIELD_LOC_KIND_DWARF_BLOCK)
              continue;
            /* Do not consider C++ virtual base types to be dynamic
               due to the field's offset being dynamic; these are
@@ -2454,7 +2454,7 @@ compute_variant_fields_inner (struct type *type,
     {
       int idx = part.discriminant_index;
 
-      if (TYPE_FIELD_LOC_KIND (type, idx) != FIELD_LOC_KIND_BITPOS)
+      if (type->field (idx).loc_kind () != FIELD_LOC_KIND_BITPOS)
        error (_("Cannot determine struct field location"
                 " (invalid location kind)"));
 
@@ -2586,7 +2586,7 @@ resolve_dynamic_struct (struct type *type,
       if (field_is_static (&resolved_type->field (i)))
        continue;
 
-      if (TYPE_FIELD_LOC_KIND (resolved_type, i) == FIELD_LOC_KIND_DWARF_BLOCK)
+      if (resolved_type->field (i).loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK)
        {
          struct dwarf2_property_baton baton;
          baton.property_type
@@ -2610,7 +2610,7 @@ resolve_dynamic_struct (struct type *type,
         that verification indicates a bug in our code, the error
         is not severe enough to suggest to the user he stops
         his debugging session because of it.  */
-      if (TYPE_FIELD_LOC_KIND (resolved_type, i) != FIELD_LOC_KIND_BITPOS)
+      if (resolved_type->field (i).loc_kind () != FIELD_LOC_KIND_BITPOS)
        error (_("Cannot determine struct field location"
                 " (invalid location kind)"));
 
@@ -2625,7 +2625,7 @@ resolve_dynamic_struct (struct type *type,
       resolved_type->field (i).set_type
        (resolve_dynamic_type_internal (resolved_type->field (i).type (),
                                        &pinfo, 0));
-      gdb_assert (TYPE_FIELD_LOC_KIND (resolved_type, i)
+      gdb_assert (resolved_type->field (i).loc_kind ()
                  == FIELD_LOC_KIND_BITPOS);
 
       new_bit_length = TYPE_FIELD_BITPOS (resolved_type, i);
@@ -5558,7 +5558,8 @@ copy_type_recursive (struct objfile *objfile,
                                    copied_types));
          if (type->field (i).name ())
            new_type->field (i).set_name (xstrdup (type->field (i).name ()));
-         switch (TYPE_FIELD_LOC_KIND (type, i))
+
+         switch (type->field (i).loc_kind ())
            {
            case FIELD_LOC_KIND_BITPOS:
              new_type->field (i).set_loc_bitpos (TYPE_FIELD_BITPOS (type, i));
@@ -5581,7 +5582,7 @@ copy_type_recursive (struct objfile *objfile,
            default:
              internal_error (__FILE__, __LINE__,
                              _("Unexpected type field location kind: %d"),
-                             TYPE_FIELD_LOC_KIND (type, i));
+                             type->field (i).loc_kind ());
            }
        }
     }
index e68aab5aefec5c07292c0b2aab839c2975a39023..b9f96d945696cb908bceed253f9bf1edd2f19413 100644 (file)
@@ -2128,7 +2128,6 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
 #define FIELD_ARTIFICIAL(thisfld) ((thisfld).artificial)
 #define FIELD_BITSIZE(thisfld) ((thisfld).bitsize)
 
-#define TYPE_FIELD_LOC_KIND(thistype, n) ((thistype)->field (n).loc_kind ())
 #define TYPE_FIELD_BITPOS(thistype, n) ((thistype)->field (n).loc_bitpos ())
 #define TYPE_FIELD_ENUMVAL(thistype, n) ((thistype)->field (n).loc_enumval ())
 #define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) ((thistype)->field (n).loc_physname ())
index 93113710137de36febca52d1944d78a2f08a9b51..773d3f8053cc6187e482c1657bb3f02b92fcba0e 100644 (file)
@@ -464,7 +464,7 @@ gnuv3_baseclass_offset (struct type *type, int index,
     return TYPE_BASECLASS_BITPOS (type, index) / 8;
 
   /* If we have a DWARF expression for the offset, evaluate it.  */
-  if (TYPE_FIELD_LOC_KIND (type, index) == FIELD_LOC_KIND_DWARF_BLOCK)
+  if (type->field (index).loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK)
     {
       struct dwarf2_property_baton baton;
       baton.property_type
index f0f835793239185577dc1e9af235d5cd6d76aa92..7980bec1c90562a702799704cbfafe25abc94c7e 100644 (file)
@@ -189,7 +189,7 @@ convert_field (struct type *type, int field)
        }
       else
        {
-         if (TYPE_FIELD_LOC_KIND (type, field) == FIELD_LOC_KIND_DWARF_BLOCK)
+         if (type->field (field).loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK)
            arg = gdbpy_ref<>::new_reference (Py_None);
          else
            arg = gdb_py_object_from_longest (TYPE_FIELD_BITPOS (type, field));
index 4c2557f4dad2d30bbd4b91a71ce65b8606c4ca4a..069aebf372a4e44f316b4862453b9e55c5c667f7 100644 (file)
@@ -2542,7 +2542,7 @@ riscv_struct_info::analyse_inner (struct type *type, int offset)
 
   for (i = 0; i < count; ++i)
     {
-      if (TYPE_FIELD_LOC_KIND (type, i) != FIELD_LOC_KIND_BITPOS)
+      if (type->field (i).loc_kind () != FIELD_LOC_KIND_BITPOS)
        continue;
 
       struct type *field_type = type->field (i).type ();
index 4847f937cd070cd1a25a105d6c3d24896afdb55e..a80bdf08611bec010a76bc66e1ce059b77772c44 100644 (file)
@@ -3332,7 +3332,7 @@ enum_constant_from_type (struct type *type, const char *name)
       const char *fname = type->field (i).name ();
       int len;
 
-      if (TYPE_FIELD_LOC_KIND (type, i) != FIELD_LOC_KIND_ENUMVAL
+      if (type->field (i).loc_kind () != FIELD_LOC_KIND_ENUMVAL
          || fname == NULL)
        continue;
 
index a0ce3a796d0c786f405ebb88719ec9df31bb534f..b6672c77073f5422d8c1522d46fe5289fff65e77 100644 (file)
@@ -2952,7 +2952,7 @@ value_static_field (struct type *type, int fieldno)
 {
   struct value *retval;
 
-  switch (TYPE_FIELD_LOC_KIND (type, fieldno))
+  switch (type->field (fieldno).loc_kind ())
     {
     case FIELD_LOC_KIND_PHYSADDR:
       retval = value_at_lazy (type->field (fieldno).type (),