]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
section tdata tidy
authorAlan Modra <amodra@gmail.com>
Mon, 16 Dec 2024 04:34:57 +0000 (15:04 +1030)
committerAlan Modra <amodra@gmail.com>
Mon, 16 Dec 2024 09:07:40 +0000 (19:37 +1030)
Any _new_section_hook that is not itself called from another
_new_section_hook will always see used_by_bfd NULL.  Remove those
NULL checks in such hooks, and tidy code a little.

18 files changed:
bfd/elf32-arm.c
bfd/elf32-avr.c
bfd/elf32-microblaze.c
bfd/elf32-score.c
bfd/elf32-score7.c
bfd/elf32-spu.c
bfd/elf32-tic6x.c
bfd/elf32-xtensa.c
bfd/elf64-mmix.c
bfd/elf64-ppc.c
bfd/elfnn-aarch64.c
bfd/elfnn-kvx.c
bfd/elfnn-loongarch.c
bfd/elfxx-mips.c
bfd/elfxx-sparc.c
bfd/mach-o.c
bfd/mmo.c
bfd/som.c

index 17df8b30eb63f821c1c0db047d7d3484cd07ca1d..a4c23216c68627de04fd5ceb584e4f0ebf4abef3 100644 (file)
@@ -18535,16 +18535,10 @@ elf32_arm_filter_implib_symbols (bfd *abfd ATTRIBUTE_UNUSED,
 static bool
 elf32_arm_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      _arm_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
-
-      sdata = (_arm_elf_section_data *) bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  _arm_elf_section_data *sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index 20e03bd75885c9be409369fee168ebfa2c7bd948..12b68ba63f39fb055761c8f3c7332f810ef399bc 100644 (file)
@@ -764,16 +764,12 @@ struct elf_avr_section_data
 static bool
 elf_avr_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct elf_avr_section_data *sdata;
-      size_t amt = sizeof (*sdata);
+  struct elf_avr_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index ce2064a75df18dd0d8b099b0512d9822f44423b7..b500242c9cf0d594fb36ffcb379101cbdc6e7532 100644 (file)
@@ -742,16 +742,12 @@ struct _microblaze_elf_section_data
 static bool
 microblaze_elf_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct _microblaze_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
+  struct _microblaze_elf_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index a3e22c3e564fc1126f04b1d093a97575ac61a973..30d6dc85e227a60b5ed0612b1e8410dd59370926 100644 (file)
@@ -4056,9 +4056,8 @@ static bool
 s3_elf32_score_new_section_hook (bfd *abfd, asection *sec)
 {
   struct _score_elf_section_data *sdata;
-  size_t amt = sizeof (*sdata);
 
-  sdata = bfd_zalloc (abfd, amt);
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
   if (sdata == NULL)
     return false;
   sec->used_by_bfd = sdata;
index c9edf2b1a489ce3422839de5ace2642163c32ad3..4a4cec1f16a7709a592c2b9d544375fb9e6b04ef 100644 (file)
@@ -3863,9 +3863,8 @@ bool
 s7_elf32_score_new_section_hook (bfd *abfd, asection *sec)
 {
   struct _score_elf_section_data *sdata;
-  size_t amt = sizeof (*sdata);
 
-  sdata = bfd_zalloc (abfd, amt);
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
   if (sdata == NULL)
     return false;
   sec->used_by_bfd = sdata;
index 881d4d8eb972a0bad2f74886db1d739d6adf2341..f65a0081202c4d06dbb4b7a7eb514764235a2ffd 100644 (file)
@@ -247,15 +247,12 @@ spu_elf_rel9 (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
 static bool
 spu_elf_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct _spu_elf_section_data *sdata;
+  struct _spu_elf_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, sizeof (*sdata));
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index 5c00318cd152f140afd51356009c4be1ca1b5fb1..dee75276d664dbbd34242ad398a1657aeaa2d81e 100644 (file)
@@ -2083,18 +2083,12 @@ static bool
 elf32_tic6x_new_section_hook (bfd *abfd, asection *sec)
 {
   bool ret;
+  _tic6x_elf_section_data *sdata;
 
-  /* Allocate target specific section data.  */
-  if (!sec->used_by_bfd)
-    {
-      _tic6x_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
-
-      sdata = (_tic6x_elf_section_data *) bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   ret = _bfd_elf_new_section_hook (abfd, sec);
   sec->use_rela_p = elf32_tic6x_tdata (abfd)->use_rela_p;
index 58f79e55529097a3b8febe533446689c60c417b6..9682438f76ac95432505c10db4a3b42951e078ec 100644 (file)
@@ -6101,16 +6101,12 @@ struct elf_xtensa_section_data
 static bool
 elf_xtensa_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct elf_xtensa_section_data *sdata;
-      size_t amt = sizeof (*sdata);
+  struct elf_xtensa_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index 56c7361d32dbfc77f8f85f169ee7e52eb65e6e8f..43a46e52c5b4ab9ae9f7091a45093870172af60a 100644 (file)
@@ -828,16 +828,12 @@ bfd_elf64_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
 static bool
 mmix_elf_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct _mmix_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
+  struct _mmix_elf_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index dd1ee1eb9ea95548a105069339be130feea2f35a..f9964fa93d093ad63227037cc07620aee798ebac 100644 (file)
@@ -2050,16 +2050,12 @@ struct _ppc64_elf_section_data
 static bool
 ppc64_elf_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct _ppc64_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
+  struct _ppc64_elf_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index 701191470dc05e783dded06cbaff0db116ec91d3..c4077d5ba9a682839481b85a78476e774072c272 100644 (file)
@@ -8749,18 +8749,13 @@ elfNN_aarch64_output_arch_local_syms (bfd *output_bfd,
 static bool
 elfNN_aarch64_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      _aarch64_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
-
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  _aarch64_elf_section_data *sdata;
 
   record_section_with_aarch64_elf_section_data (sec);
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index 516ce2fb988a3c78f6df5af0217c457861f289c8..e2953199889c29bf21c5d86235ce07637caf31b1 100644 (file)
@@ -3688,16 +3688,12 @@ elfNN_kvx_output_arch_local_syms (bfd *output_bfd,
 static bool
 elfNN_kvx_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      _kvx_elf_section_data *sdata;
-      bfd_size_type amt = sizeof (*sdata);
+  _kvx_elf_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index 2ce5f73ae8043ca77b1926f4e863f2f817f79baf..e3d39163d94ce393583bebec5d90716db21ce2ff 100644 (file)
@@ -152,16 +152,12 @@ struct loongarch_elf_section_data
 static bool
 loongarch_elf_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct loongarch_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
+  struct loongarch_elf_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (!sdata)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (!sdata)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index c9895aa660f413cdd043c69d358fbf236a671d08..459c98e23d7911215af904a3ffd2a7799f6500af 100644 (file)
@@ -1412,16 +1412,12 @@ _bfd_mips_elf_free_cached_info (bfd *abfd)
 bool
 _bfd_mips_elf_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct _mips_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
+  struct _mips_elf_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index 4ab3ab842d5989dd170cd1862456afeb8898f6dd..3f642aefd636e4b7c6493d1e7aee413f5bdbdb9a 100644 (file)
@@ -2660,16 +2660,12 @@ _bfd_sparc_elf_late_size_sections (bfd *output_bfd,
 bool
 _bfd_sparc_elf_new_section_hook (bfd *abfd, asection *sec)
 {
-  if (!sec->used_by_bfd)
-    {
-      struct _bfd_sparc_elf_section_data *sdata;
-      size_t amt = sizeof (*sdata);
+  struct _bfd_sparc_elf_section_data *sdata;
 
-      sdata = bfd_zalloc (abfd, amt);
-      if (sdata == NULL)
-       return false;
-      sec->used_by_bfd = sdata;
-    }
+  sdata = bfd_zalloc (abfd, sizeof (*sdata));
+  if (sdata == NULL)
+    return false;
+  sec->used_by_bfd = sdata;
 
   return _bfd_elf_new_section_hook (abfd, sec);
 }
index 95bb48180436cea73ee70b4718d7358826a95c8c..9ec5cabc0210891e6cec453153f5811b6dd03ff6 100644 (file)
@@ -3520,40 +3520,31 @@ bfd_mach_o_read_header (bfd *abfd, file_ptr hdr_off, bfd_mach_o_header *header)
 bool
 bfd_mach_o_new_section_hook (bfd *abfd, asection *sec)
 {
-  bfd_mach_o_section *s;
-  unsigned bfdalign = bfd_section_alignment (sec);
-
-  s = bfd_mach_o_get_mach_o_section (sec);
+  bfd_mach_o_section *s = bfd_zalloc (abfd, sizeof (*s));
   if (s == NULL)
-    {
-      flagword bfd_flags;
-      static const mach_o_section_name_xlat * xlat;
-
-      s = (bfd_mach_o_section *) bfd_zalloc (abfd, sizeof (*s));
-      if (s == NULL)
-       return false;
-      sec->used_by_bfd = s;
-      s->bfdsection = sec;
-
-      /* Create the Darwin seg/sect name pair from the bfd name.
-        If this is a canonical name for which a specific paiting exists
-        there will also be defined flags, type, attribute and alignment
-        values.  */
-      xlat = bfd_mach_o_convert_section_name_to_mach_o (abfd, sec, s);
-      if (xlat != NULL)
-       {
-         s->flags = xlat->macho_sectype | xlat->macho_secattr;
-         s->align = xlat->sectalign > bfdalign ? xlat->sectalign
-                                               : bfdalign;
-         bfd_set_section_alignment (sec, s->align);
-         bfd_flags = bfd_section_flags (sec);
-         if (bfd_flags == SEC_NO_FLAGS)
-           bfd_set_section_flags (sec, xlat->bfd_flags);
-       }
-      else
-       /* Create default flags.  */
-       bfd_mach_o_set_section_flags_from_bfd (abfd, sec);
+    return false;
+  sec->used_by_bfd = s;
+  s->bfdsection = sec;
+
+  /* Create the Darwin seg/sect name pair from the bfd name.
+     If this is a canonical name for which a specific paiting exists
+     there will also be defined flags, type, attribute and alignment
+     values.  */
+  const mach_o_section_name_xlat *xlat
+    = bfd_mach_o_convert_section_name_to_mach_o (abfd, sec, s);
+  if (xlat != NULL)
+    {
+      s->flags = xlat->macho_sectype | xlat->macho_secattr;
+      unsigned bfdalign = bfd_section_alignment (sec);
+      s->align = xlat->sectalign > bfdalign ? xlat->sectalign : bfdalign;
+      bfd_set_section_alignment (sec, s->align);
+      flagword bfd_flags = bfd_section_flags (sec);
+      if (bfd_flags == SEC_NO_FLAGS)
+       bfd_set_section_flags (sec, xlat->bfd_flags);
     }
+  else
+    /* Create default flags.  */
+    bfd_mach_o_set_section_flags_from_bfd (abfd, sec);
 
   return _bfd_generic_new_section_hook (abfd, sec);
 }
index 6704bc27d6b4f9ed29c8f8a94577fd7464937a25..a19951040b168e550cff671de152838ee396965b 100644 (file)
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -2129,15 +2129,12 @@ mmo_scan (bfd *abfd)
 static bool
 mmo_new_section_hook (bfd *abfd, asection *newsect)
 {
+  /* We zero-fill all fields and assume NULL is represented by an all
+     zero-bit pattern.  */
+  newsect->used_by_bfd
+    = bfd_zalloc (abfd, sizeof (struct mmo_section_data_struct));
   if (!newsect->used_by_bfd)
-    {
-      /* We zero-fill all fields and assume NULL is represented by an all
-        zero-bit pattern.  */
-      newsect->used_by_bfd
-       = bfd_zalloc (abfd, sizeof (struct mmo_section_data_struct));
-      if (!newsect->used_by_bfd)
-       return false;
-    }
+    return false;
 
   /* Always align to at least 32-bit words.  */
   newsect->alignment_power = 2;
index 86f7f4121e4427d92e207f7e375dbaf2918ba794..171dbc4a3933b5005f7bcd102a5f43d3fc405ea4 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -5328,14 +5328,12 @@ extern const bfd_target hppa_som_vec;
 static bool
 som_new_section_hook (bfd *abfd, asection *newsect)
 {
+  size_t amt = sizeof (struct som_section_data_struct);
+
+  newsect->used_by_bfd = bfd_zalloc (abfd, amt);
   if (!newsect->used_by_bfd)
-    {
-      size_t amt = sizeof (struct som_section_data_struct);
+    return false;
 
-      newsect->used_by_bfd = bfd_zalloc (abfd, amt);
-      if (!newsect->used_by_bfd)
-       return false;
-    }
   newsect->alignment_power = 3;
 
   /* We allow more than three sections internally.  */