]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - bfd/linker.c
Re: MSP430: Support relocations for subtract expressions in .uleb128 directives
[thirdparty/binutils-gdb.git] / bfd / linker.c
index 3820ce14f83a7b2f591d8b7b0ee9dfa0025791f5..1357168456867148ac8b8ef47fe64f90f13a0c21 100644 (file)
@@ -2661,13 +2661,11 @@ default_indirect_link_order (bfd *output_bfd,
                                  new_contents, loc, input_section->size))
     goto error_return;
 
-  if (contents != NULL)
-    free (contents);
+  free (contents);
   return TRUE;
 
  error_return:
-  if (contents != NULL)
-    free (contents);
+  free (contents);
   return FALSE;
 }
 
@@ -2894,10 +2892,8 @@ _bfd_handle_already_linked (asection *sec,
              (_("%pB: duplicate section `%pA' has different contents\n"),
               sec->owner, sec);
 
-         if (sec_contents)
-           free (sec_contents);
-         if (l_sec_contents)
-           free (l_sec_contents);
+         free (sec_contents);
+         free (l_sec_contents);
        }
       break;
     }
@@ -3099,8 +3095,13 @@ bfd_generic_define_common_symbol (bfd *output_bfd,
   section = h->u.c.p->section;
 
   /* Increase the size of the section to align the common symbol.
-     The alignment must be a power of two.  */
-  alignment = bfd_octets_per_byte (output_bfd, section) << power_of_two;
+     The alignment must be a power of two.  But if the section does
+     not have any alignment requirement then do not increase the
+     alignment unnecessarily.  */
+  if (power_of_two)
+    alignment = bfd_octets_per_byte (output_bfd, section) << power_of_two;
+  else
+    alignment = 1;
   BFD_ASSERT (alignment != 0 && (alignment & -alignment) == alignment);
   section->size += alignment - 1;
   section->size &= -alignment;