gdb: convert obj_section macros to methods
authorSimon Marchi <simon.marchi@polymtl.ca>
Mon, 28 Jun 2021 19:28:26 +0000 (15:28 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Mon, 28 Jun 2021 19:28:26 +0000 (15:28 -0400)
Convert these three macros to methods of obj_section.  The problem fixed
by the following patch is caused by an out of bound access of the
objfile::section_offsets vector.  Since this is deep in macros, we don't
get a clear backtrace and it's difficult to debug.  Changing that to
methods means we can step in them and break on them.

Because their implementation requires knowing about struct objfile, move
struct obj_section below struct objfile in objfiles.h.

The obj_section_offset was used in one place as an lvalue to set
offsets, in machoread.c.  Replace that with a set_offset method.

Add the objfile::section_offset and objfile::set_section_offset methods
to improve encapsulation (reduce other objects poking into struct
objfile's internals).

gdb/ChangeLog:

* objfiles.h (struct obj_section): Move down.
<offset, set_offset, addr, endaddr>: New.
(obj_section_offset, obj_section_addr, obj_section_endaddr),
replace all users to use obj_section methods.
(struct objfile) <section_offset, set_section_offset>: New.

Change-Id: I97e8fcae93ab2353fbdadcb4a5ec10d7949a7334

22 files changed:
gdb/ChangeLog
gdb/arm-tdep.c
gdb/exec.c
gdb/gcore.c
gdb/hppa-bsd-tdep.c
gdb/hppa-linux-tdep.c
gdb/hppa-tdep.c
gdb/ia64-tdep.c
gdb/machoread.c
gdb/maint.c
gdb/minsyms.c
gdb/objfiles.c
gdb/objfiles.h
gdb/printcmd.c
gdb/solib-aix.c
gdb/solib-dsbt.c
gdb/solib-frv.c
gdb/symfile.c
gdb/symtab.c
gdb/tilegx-tdep.c
gdb/tui/tui-disasm.c
gdb/xstormy16-tdep.c

index e467b13e3aa472a7bc5e3827a76c449fb9de6b36..48a58e039846cf1136e6d77db9e2fbe3afd7f58d 100644 (file)
@@ -1,3 +1,19 @@
+2021-06-28  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * objfiles.h (struct obj_section): Move down.
+       <offset, set_offset, addr, endaddr>: New.
+       (obj_section_offset, obj_section_addr, obj_section_endaddr),
+       replace all users to use obj_section methods.
+       (struct objfile) <section_offset, set_section_offset>: New.
+
+2021-06-28  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * objfiles.h (struct obj_section): Move down.
+       <offset, set_offset, addr, endaddr>: New.
+       (obj_section_offset, obj_section_addr, obj_section_endaddr),
+       replace all users to use obj_section methods.
+       (struct objfile) <section_offset, set_section_offset>: New.
+
 2021-06-28  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * .flake8: New.
index 339e03271e7ea321a16d76d522f7f2716ecd3c8f..09b38e59e9e50b8cecc031afeae2b7d80906b1af 100644 (file)
@@ -395,8 +395,7 @@ arm_find_mapping_symbol (CORE_ADDR memaddr, CORE_ADDR *start)
              data->section_maps_sorted[section_idx] = true;
            }
 
-         struct arm_mapping_symbol map_key
-           = { memaddr - obj_section_addr (sec), 0 };
+         arm_mapping_symbol map_key = { memaddr - sec->addr (), 0 };
          arm_mapping_symbol_vec::const_iterator it
            = std::lower_bound (map.begin (), map.end (), map_key);
 
@@ -409,7 +408,7 @@ arm_find_mapping_symbol (CORE_ADDR memaddr, CORE_ADDR *start)
              if (it->value == map_key.value)
                {
                  if (start)
-                   *start = it->value + obj_section_addr (sec);
+                   *start = it->value + sec->addr ();
                  return it->type;
                }
            }
@@ -420,7 +419,7 @@ arm_find_mapping_symbol (CORE_ADDR memaddr, CORE_ADDR *start)
                = it - 1;
 
              if (start)
-               *start = prev_it->value + obj_section_addr (sec);
+               *start = prev_it->value + sec->addr ();
              return prev_it->type;
            }
        }
@@ -2218,7 +2217,7 @@ arm_exidx_new_objfile (struct objfile *objfile)
                          NULL
                        };
 
-                     CORE_ADDR pc = pers + obj_section_offset (pers_sec);
+                     CORE_ADDR pc = pers + pers_sec->offset ();
                      int k;
 
                      for (k = 0; personality[k]; k++)
@@ -2303,7 +2302,7 @@ arm_find_exidx_entry (CORE_ADDR memaddr, CORE_ADDR *start)
   if (sec != NULL)
     {
       struct arm_exidx_data *data;
-      struct arm_exidx_entry map_key = { memaddr - obj_section_addr (sec), 0 };
+      struct arm_exidx_entry map_key = { memaddr - sec->addr (), 0 };
 
       data = arm_exidx_data_key.get (sec->objfile->obfd);
       if (data != NULL)
@@ -2323,7 +2322,7 @@ arm_find_exidx_entry (CORE_ADDR memaddr, CORE_ADDR *start)
                  if (idx->addr == map_key.addr)
                    {
                      if (start)
-                       *start = idx->addr + obj_section_addr (sec);
+                       *start = idx->addr + sec->addr ();
                      return idx->entry;
                    }
                }
@@ -2332,7 +2331,7 @@ arm_find_exidx_entry (CORE_ADDR memaddr, CORE_ADDR *start)
                {
                  idx = idx - 1;
                  if (start)
-                   *start = idx->addr + obj_section_addr (sec);
+                   *start = idx->addr + sec->addr ();
                  return idx->entry;
                }
            }
index ff0db82a69b9a1222093cce543ad2d8f2e0f5027..35bf7bd450668e9969f51c7cfaa74d27ffbf569a 100644 (file)
@@ -636,8 +636,7 @@ program_space::add_target_sections (struct objfile *objfile)
       if (bfd_section_size (osect->the_bfd_section) == 0)
        continue;
 
-      m_target_sections.emplace_back (obj_section_addr (osect),
-                                     obj_section_endaddr (osect),
+      m_target_sections.emplace_back (osect->addr (), osect->endaddr (),
                                      osect->the_bfd_section, (void *) objfile);
     }
 }
index 76e856d71a810ee11953bc3dab4d751452bb81ab..8e504f3008a8371b869289985ecf50ac0f039751 100644 (file)
@@ -404,8 +404,8 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, int read,
            bfd *abfd = objfile->obfd;
            asection *asec = objsec->the_bfd_section;
            bfd_vma align = (bfd_vma) 1 << bfd_section_alignment (asec);
-           bfd_vma start = obj_section_addr (objsec) & -align;
-           bfd_vma end = (obj_section_endaddr (objsec) + align - 1) & -align;
+           bfd_vma start = objsec->addr () & -align;
+           bfd_vma end = (objsec->endaddr () + align - 1) & -align;
 
            /* Match if either the entire memory region lies inside the
               section (i.e. a mapping covering some pages of a large
@@ -479,7 +479,7 @@ objfile_find_memory_regions (struct target_ops *self,
            int size = bfd_section_size (isec);
            int ret;
 
-           ret = (*func) (obj_section_addr (objsec), size, 
+           ret = (*func) (objsec->addr (), size,
                           1, /* All sections will be readable.  */
                           (flags & SEC_READONLY) == 0, /* Writable.  */
                           (flags & SEC_CODE) != 0, /* Executable.  */
index b5289d30043068e8a4bcb3b3ab79828198962909..c68aaf1f490fd5c1a8e34f2b9aceb068bcdabab8 100644 (file)
@@ -64,8 +64,8 @@ hppabsd_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
 
       if (sec < faddr_sec->objfile->sections_end)
        {
-         CORE_ADDR addr = obj_section_addr (sec);
-         CORE_ADDR endaddr = obj_section_endaddr (sec);
+         CORE_ADDR addr = sec->addr ();
+         CORE_ADDR endaddr = sec->endaddr ();
 
          while (addr < endaddr)
            {
index a4d1ceeeeb86d949166b2d07dcece7e77ff822e3..cea6768a1dd336d08704ca10f97427f1478ed1c1 100644 (file)
@@ -371,8 +371,8 @@ hppa_linux_find_global_pointer (struct gdbarch *gdbarch,
        {
          CORE_ADDR addr, endaddr;
 
-         addr = obj_section_addr (osect);
-         endaddr = obj_section_endaddr (osect);
+         addr = osect->addr ();
+         endaddr = osect->endaddr ();
 
          while (addr < endaddr)
            {
index 21e58f3c392603e037d20a57227a1557f21bb2a9..ffb3394f71d417ac60adac73464878b77d485720 100644 (file)
@@ -943,11 +943,7 @@ hppa64_convert_code_addr_to_fptr (struct gdbarch *gdbarch, CORE_ADDR code)
 
   if (opd < sec->objfile->sections_end)
     {
-      CORE_ADDR addr;
-
-      for (addr = obj_section_addr (opd);
-          addr < obj_section_endaddr (opd);
-          addr += 2 * 8)
+      for (CORE_ADDR addr = opd->addr (); addr < opd->endaddr (); addr += 2 * 8)
        {
          ULONGEST opdaddr;
          gdb_byte tmp[8];
index 1c4fc4cca47ad7270ae7d3ff7c6c3d5400187f49..895808ac08b9753604e41b7f20ba4582e644d4d2 100644 (file)
@@ -2859,7 +2859,7 @@ ia64_get_dyn_info_list (unw_addr_space_t as,
       void *buf = NULL;
 
       text_sec = objfile->sections + SECT_OFF_TEXT (objfile);
-      ip = obj_section_addr (text_sec);
+      ip = text_sec->addr ();
       ret = ia64_find_unwind_table (objfile, ip, &di, &buf);
       if (ret >= 0)
        {
@@ -3432,10 +3432,8 @@ ia64_find_global_pointer_from_dynamic_section (struct gdbarch *gdbarch,
 
       if (osect < faddr_sect->objfile->sections_end)
        {
-         CORE_ADDR addr, endaddr;
-
-         addr = obj_section_addr (osect);
-         endaddr = obj_section_endaddr (osect);
+         CORE_ADDR addr = osect->addr ();
+         CORE_ADDR endaddr = osect->endaddr ();
 
          while (addr < endaddr)
            {
@@ -3515,10 +3513,8 @@ find_extant_func_descr (struct gdbarch *gdbarch, CORE_ADDR faddr)
 
       if (osect < faddr_sect->objfile->sections_end)
        {
-         CORE_ADDR addr, endaddr;
-
-         addr = obj_section_addr (osect);
-         endaddr = obj_section_endaddr (osect);
+         CORE_ADDR addr = osect->addr ();
+         CORE_ADDR endaddr = osect->endaddr ();
 
          while (addr < endaddr)
            {
index 17aa9ceee01c7d6164e7fcf250c3224fbcb2575a..a0f0307d529364f04a9bf660c0cc61da96b87765 100644 (file)
@@ -926,7 +926,7 @@ macho_symfile_offsets (struct objfile *objfile,
 
          if (bfd_sect_name == addrs[i].name)
            {
-             obj_section_offset (osect) = addrs[i].addr;
+             osect->set_offset (addrs[i].addr);
              break;
            }
        }
index 26bacbfeb76897f682d18dedb8f3a6e37c4514b4..4637fcbc86cdbfabbbc482019afbbffc5e670bda 100644 (file)
@@ -319,8 +319,7 @@ print_objfile_section_info (bfd *abfd, struct obj_section *asect,
 
       print_section_index (abfd, asect->the_bfd_section, index_digits);
       maint_print_section_info (name, flags,
-                               obj_section_addr (asect),
-                               obj_section_endaddr (asect),
+                               asect->addr (), asect->endaddr (),
                                asect->the_bfd_section->filepos,
                                addr_size);
     }
index 80c3d431209e496df5c096df88ceccc69fd19148..33560e3c41c17d0cbb97121638fdac19cd071f7d 100644 (file)
@@ -687,9 +687,9 @@ frob_address (struct objfile *objfile, CORE_ADDR *pc)
 
   ALL_OBJFILE_OSECTIONS (objfile, iter)
     {
-      if (*pc >= obj_section_addr (iter) && *pc < obj_section_endaddr (iter))
+      if (*pc >= iter->addr () && *pc < iter->endaddr ())
        {
-         *pc -= obj_section_offset (iter);
+         *pc -= iter->offset ();
          return 1;
        }
     }
@@ -1616,12 +1616,12 @@ minimal_symbol_upper_bound (struct bound_minimal_symbol minsym)
   obj_section = minsym.obj_section ();
   if (iter != past_the_end
       && (MSYMBOL_VALUE_ADDRESS (minsym.objfile, iter)
-         < obj_section_endaddr (obj_section)))
+         < obj_section->endaddr ()))
     result = MSYMBOL_VALUE_ADDRESS (minsym.objfile, iter);
   else
     /* We got the start address from the last msymbol in the objfile.
        So the end address is the end of the section.  */
-    result = obj_section_endaddr (obj_section);
+    result = obj_section->endaddr ();
 
   return result;
 }
index 16bbb91c0a64b4396513172569dab67305b0b8b6..b65fa8820cae218cd9ae6e43431d12f1a08753de 100644 (file)
@@ -729,7 +729,7 @@ objfile_relocate1 (struct objfile *objfile,
       int idx = s - objfile->sections;
 
       exec_set_section_address (bfd_get_filename (objfile->obfd), idx,
-                               obj_section_addr (s));
+                               s->addr ());
     }
 
   /* Data changed.  */
@@ -899,8 +899,8 @@ have_minimal_symbols (void)
 static bool
 sort_cmp (const struct obj_section *sect1, const obj_section *sect2)
 {
-  const CORE_ADDR sect1_addr = obj_section_addr (sect1);
-  const CORE_ADDR sect2_addr = obj_section_addr (sect2);
+  const CORE_ADDR sect1_addr = sect1->addr ();
+  const CORE_ADDR sect2_addr = sect2->addr ();
 
   if (sect1_addr < sect2_addr)
     return true;
@@ -982,7 +982,7 @@ sort_cmp (const struct obj_section *sect1, const obj_section *sect2)
 static struct obj_section *
 preferred_obj_section (struct obj_section *a, struct obj_section *b)
 {
-  gdb_assert (obj_section_addr (a) == obj_section_addr (b));
+  gdb_assert (a->addr () == b->addr ());
   gdb_assert ((a->objfile->separate_debug_objfile == b->objfile)
              || (b->objfile->separate_debug_objfile == a->objfile));
   gdb_assert ((a->objfile->separate_debug_objfile_backlink == b->objfile)
@@ -1030,8 +1030,8 @@ filter_debuginfo_sections (struct obj_section **map, int map_size)
       struct obj_section *const sect2 = map[i + 1];
       const struct objfile *const objfile1 = sect1->objfile;
       const struct objfile *const objfile2 = sect2->objfile;
-      const CORE_ADDR sect1_addr = obj_section_addr (sect1);
-      const CORE_ADDR sect2_addr = obj_section_addr (sect2);
+      const CORE_ADDR sect1_addr = sect1->addr ();
+      const CORE_ADDR sect2_addr = sect2->addr ();
 
       if (sect1_addr == sect2_addr
          && (objfile1->separate_debug_objfile == objfile2
@@ -1075,9 +1075,9 @@ filter_overlapping_sections (struct obj_section **map, int map_size)
        {
          struct obj_section *const sect1 = map[i];
          struct obj_section *const sect2 = map[k];
-         const CORE_ADDR sect1_addr = obj_section_addr (sect1);
-         const CORE_ADDR sect2_addr = obj_section_addr (sect2);
-         const CORE_ADDR sect1_endaddr = obj_section_endaddr (sect1);
+         const CORE_ADDR sect1_addr = sect1->addr ();
+         const CORE_ADDR sect2_addr = sect2->addr ();
+         const CORE_ADDR sect1_endaddr = sect1->endaddr ();
 
          gdb_assert (sect1_addr <= sect2_addr);
 
@@ -1093,7 +1093,7 @@ filter_overlapping_sections (struct obj_section **map, int map_size)
              const struct bfd_section *const bfds1 = sect1->the_bfd_section;
              const struct bfd_section *const bfds2 = sect2->the_bfd_section;
 
-             const CORE_ADDR sect2_endaddr = obj_section_endaddr (sect2);
+             const CORE_ADDR sect2_endaddr = sect2->endaddr ();
 
              struct gdbarch *const gdbarch = objf1->arch ();
 
@@ -1184,9 +1184,9 @@ bsearch_cmp (const void *key, const void *elt)
   const CORE_ADDR pc = *(CORE_ADDR *) key;
   const struct obj_section *section = *(const struct obj_section **) elt;
 
-  if (pc < obj_section_addr (section))
+  if (pc < section->addr ())
     return -1;
-  if (pc < obj_section_endaddr (section))
+  if (pc < section->endaddr ())
     return 0;
   return 1;
 }
@@ -1289,8 +1289,7 @@ is_addr_in_objfile (CORE_ADDR addr, const struct objfile *objfile)
       if (section_is_overlay (osect) && !section_is_mapped (osect))
        continue;
 
-      if (obj_section_addr (osect) <= addr
-         && addr < obj_section_endaddr (osect))
+      if (osect->addr () <= addr && addr < osect->endaddr ())
        return true;
     }
   return false;
index f947d699132c686569d837651939d1b1a67f64d7..766c4b409dfcc18e6bd855366fbf96de81dc29d0 100644 (file)
@@ -127,37 +127,6 @@ struct entry_info
   unsigned initialized : 1;
 };
 
-/* Sections in an objfile.  The section offsets are stored in the
-   OBJFILE.  */
-
-struct obj_section
-{
-  /* BFD section pointer */
-  struct bfd_section *the_bfd_section;
-
-  /* Objfile this section is part of.  */
-  struct objfile *objfile;
-
-  /* True if this "overlay section" is mapped into an "overlay region".  */
-  int ovly_mapped;
-};
-
-/* Relocation offset applied to S.  */
-#define obj_section_offset(s)                                          \
-  (((s)->objfile->section_offsets)[gdb_bfd_section_index ((s)->objfile->obfd, (s)->the_bfd_section)])
-
-/* The memory address of section S (vma + offset).  */
-#define obj_section_addr(s)                                            \
-  (bfd_section_vma (s->the_bfd_section)                                        \
-   + obj_section_offset (s))
-
-/* The one-passed-the-end memory address of section S
-   (vma + size + offset).  */
-#define obj_section_endaddr(s)                                         \
-  (bfd_section_vma (s->the_bfd_section)                                        \
-   + bfd_section_size ((s)->the_bfd_section)                           \
-   + obj_section_offset (s))
-
 #define ALL_OBJFILE_OSECTIONS(objfile, osect)  \
   for (osect = objfile->sections; osect < objfile->sections_end; osect++) \
     if (osect->the_bfd_section == NULL)                                        \
@@ -664,6 +633,27 @@ public:
   /* See quick_symbol_functions.  */
   void require_partial_symbols (bool verbose);
 
+  /* Return the relocation offset applied to SECTION.  */
+  CORE_ADDR section_offset (bfd_section *section) const
+  {
+    /* The section's owner can be nullptr if it is one of the _bfd_std_section
+       section.  */
+    gdb_assert (section->owner == nullptr || section->owner == this->obfd);
+
+    int idx = gdb_bfd_section_index (this->obfd, section);
+    return this->section_offsets[idx];
+  }
+
+  /* Set the relocation offset applied to SECTION.  */
+  void set_section_offset (bfd_section *section, CORE_ADDR offset)
+  {
+    /* The section's owner can be nullptr if it is one of the _bfd_std_section
+       section.  */
+    gdb_assert (section->owner == nullptr || section->owner == this->obfd);
+
+    int idx = gdb_bfd_section_index (this->obfd, section);
+    this->section_offsets[idx] = offset;
+  }
 
   /* The object file's original name as specified by the user,
      made absolute, and tilde-expanded.  However, it is not canonicalized
@@ -836,6 +826,47 @@ struct objfile_deleter
 
 typedef std::unique_ptr<objfile, objfile_deleter> objfile_up;
 
+
+/* Sections in an objfile.  The section offsets are stored in the
+   OBJFILE.  */
+
+struct obj_section
+{
+  /* Relocation offset applied to the section.  */
+  CORE_ADDR offset () const
+  {
+    return this->objfile->section_offset (this->the_bfd_section);
+  }
+
+  /* Set the relocation offset applied to the section.  */
+  void set_offset (CORE_ADDR offset)
+  {
+    this->objfile->set_section_offset (this->the_bfd_section, offset);
+  }
+
+  /* The memory address of the section (vma + offset).  */
+  CORE_ADDR addr () const
+  {
+    return bfd_section_vma (this->the_bfd_section) + this->offset ();
+  }
+
+  /* The one-passed-the-end memory address of the section
+     (vma + size + offset).  */
+  CORE_ADDR endaddr () const
+  {
+    return this->addr () + bfd_section_size (this->the_bfd_section);
+  }
+
+  /* BFD section pointer */
+  struct bfd_section *the_bfd_section;
+
+  /* Objfile this section is part of.  */
+  struct objfile *objfile;
+
+  /* True if this "overlay section" is mapped into an "overlay region".  */
+  int ovly_mapped;
+};
+
 /* Declarations for functions defined in objfiles.c */
 
 extern int entry_point_address_query (CORE_ADDR *entry_p);
index 22fa5c074d1c9ad6fab1064901b9c2608a09e1ab..3cd42f817f5164a13d2b2cbe794d4744f81b14ac 100644 (file)
@@ -1525,8 +1525,7 @@ info_symbol_command (const char *arg, int from_tty)
 
        sect_addr = overlay_mapped_address (addr, osect);
 
-       if (obj_section_addr (osect) <= sect_addr
-           && sect_addr < obj_section_endaddr (osect)
+       if (osect->addr () <= sect_addr && sect_addr < osect->endaddr ()
            && (msymbol
                = lookup_minimal_symbol_by_pc_section (sect_addr,
                                                       osect).minsym))
index 4b58058ffef88355d45157582472f16bff5fcc31..772cf23d9a0951c64e6844e5d6ad5c70e46cf664 100644 (file)
@@ -685,8 +685,7 @@ solib_aix_get_toc_value (CORE_ADDR pc)
             "(%s has no data section)"),
           core_addr_to_string (pc), objfile_name (pc_osect->objfile));
 
-  result = (obj_section_addr (data_osect)
-           + xcoff_get_toc_offset (pc_osect->objfile));
+  result = data_osect->addr () + xcoff_get_toc_offset (pc_osect->objfile);
 
   solib_aix_debug_printf ("pc=%s -> %s", core_addr_to_string (pc),
                          core_addr_to_string (result));
index c279435c89a1e5a43b1d7cd0f418e51f0bd66dfe..803467dd48968755adf00cc332eef40731aac803 100644 (file)
@@ -925,7 +925,7 @@ dsbt_relocate_main_executable (void)
       osect_idx = osect - objf->sections;
 
       /* Current address of section.  */
-      addr = obj_section_addr (osect);
+      addr = osect->addr ();
       /* Offset from where this section started.  */
       offset = objf->section_offsets[osect_idx];
       /* Original address prior to any past relocations.  */
index c78fd559387c5d665a1627e60498c498c4a601f7..c0b546ba68f5e68dd563c0116e781df4bbdf9f1e 100644 (file)
@@ -797,7 +797,7 @@ frv_relocate_main_executable (void)
       osect_idx = osect - objf->sections;
 
       /* Current address of section.  */
-      addr = obj_section_addr (osect);
+      addr = osect->addr ();
       /* Offset from where this section started.  */
       offset = objf->section_offsets[osect_idx];
       /* Original address prior to any past relocations.  */
index 5ae3093095cc69866c200e7e011a5f14271beec2..0eb48d04d5bee7ef01480d501468b4a7b0729684 100644 (file)
@@ -3012,7 +3012,7 @@ pc_in_unmapped_range (CORE_ADDR pc, struct obj_section *section)
 
       /* We assume the LMA is relocated by the same offset as the VMA.  */
       bfd_vma size = bfd_section_size (bfd_section);
-      CORE_ADDR offset = obj_section_offset (section);
+      CORE_ADDR offset = section->offset ();
 
       if (bfd_section_lma (bfd_section) + offset <= pc
          && pc < bfd_section_lma (bfd_section) + offset + size)
@@ -3030,8 +3030,8 @@ pc_in_mapped_range (CORE_ADDR pc, struct obj_section *section)
 {
   if (section_is_overlay (section))
     {
-      if (obj_section_addr (section) <= pc
-         && pc < obj_section_endaddr (section))
+      if (section->addr () <= pc
+         && pc < section->endaddr ())
        return 1;
     }
 
@@ -3044,10 +3044,10 @@ pc_in_mapped_range (CORE_ADDR pc, struct obj_section *section)
 static int
 sections_overlap (struct obj_section *a, struct obj_section *b)
 {
-  CORE_ADDR a_start = obj_section_addr (a);
-  CORE_ADDR a_end = obj_section_endaddr (a);
-  CORE_ADDR b_start = obj_section_addr (b);
-  CORE_ADDR b_end = obj_section_endaddr (b);
+  CORE_ADDR a_start = a->addr ();
+  CORE_ADDR a_end = a->endaddr ();
+  CORE_ADDR b_start = b->addr ();
+  CORE_ADDR b_end = b->endaddr ();
 
   return (a_start < b_end && b_start < a_end);
 }
index 7fd037f970139c7516b7095fb95328fecf2a97d2..6a9c3dce6af074a682dc37e3b384b6aeeb688a5e 100644 (file)
@@ -1698,8 +1698,7 @@ fixup_section (struct general_symbol_info *ginfo,
          if (fallback == -1)
            fallback = idx;
 
-         if (obj_section_addr (s) - offset <= addr
-             && addr < obj_section_endaddr (s) - offset)
+         if (s->addr () - offset <= addr && addr < s->endaddr () - offset)
            {
              ginfo->set_section_index (idx);
              return;
index 9bd982f49f50f1ce0fc9895b40cf6d5f4d6c0dda..73ed1d8d8481815cb37d5925c252d06651c124e0 100644 (file)
@@ -747,7 +747,7 @@ tilegx_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
   s = find_pc_section (start_pc);
   end_pc = start_pc + 8 * TILEGX_BUNDLE_SIZE_IN_BYTES;
   if (s != NULL)
-    end_pc = std::min (end_pc, obj_section_endaddr (s));
+    end_pc = std::min (end_pc, s->endaddr ());
 
   /* Otherwise, try to skip prologue the hard way.  */
   return tilegx_analyze_prologue (gdbarch,
index 163552aede4a5bb3cb012635f7a4c0294dbcbf19..ad4f4a3d7d0a1695dae4d9f71df910bd3db518a1 100644 (file)
@@ -178,7 +178,7 @@ tui_find_backward_disassembly_start_address (CORE_ADDR addr)
      section.  */
   struct obj_section *section = find_pc_section (addr);
   if (section != NULL)
-    return obj_section_addr (section);
+    return section->addr ();
 
   return addr;
 }
index 8a0199cd9eb193b1cba3bbddd086c5a6ab412ae1..834c8f0c8759930f9ea5eb33e39c6c9eae0a7a4d 100644 (file)
@@ -562,8 +562,8 @@ xstormy16_find_jmp_table_entry (struct gdbarch *gdbarch, CORE_ADDR faddr)
        {
          CORE_ADDR addr, endaddr;
 
-         addr = obj_section_addr (osect);
-         endaddr = obj_section_endaddr (osect);
+         addr = osect->addr ();
+         endaddr = osect->endaddr ();
 
          for (; addr < endaddr; addr += 2 * xstormy16_inst_size)
            {