* aoutx.h (add_to_stringtab): Check for _bfd_stringtab_add error
authorIan Lance Taylor <ian@airs.com>
Thu, 25 Aug 1994 18:56:11 +0000 (18:56 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 25 Aug 1994 18:56:11 +0000 (18:56 +0000)
before adding BYTES_IN_WORD.

bfd/ChangeLog
bfd/aoutx.h

index 1bc2c1cf06832b81acd78de376bd9db2a293d4b9..32af35e3ee271c32cd563b6720593e7a1782a7be 100644 (file)
@@ -1,5 +1,8 @@
 Thu Aug 25 10:44:53 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
 
+       * aoutx.h (add_to_stringtab): Check for _bfd_stringtab_add error
+       before adding BYTES_IN_WORD.
+
        * coffgen.c (coff_find_nearest_line): Look for the best C_FILE,
        not merely the first.
 
index f62228d884c0d5c570febd7368efdd1a56f30af1..1c716e270ffd1f6782ff57f160782d92598bc428 100644 (file)
@@ -1764,6 +1764,7 @@ add_to_stringtab (abfd, tab, str, copy)
      boolean copy;
 {
   boolean hash;
+  bfd_size_type index;
 
   /* An index of 0 always means the empty string.  */
   if (*str == '\0')
@@ -1775,9 +1776,16 @@ add_to_stringtab (abfd, tab, str, copy)
   if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
     hash = false;
 
-  /* Add BYTES_IN_WORD to the return value to account for the space
-     taken up by the count.  */
-  return BYTES_IN_WORD + _bfd_stringtab_add (tab, str, hash, copy);
+  index = _bfd_stringtab_add (tab, str, hash, copy);
+
+  if (index != (bfd_size_type) -1)
+    {
+      /* Add BYTES_IN_WORD to the return value to account for the
+        space taken up by the string table size.  */
+      index += BYTES_IN_WORD;
+    }
+
+  return index;
 }
 
 /* Write out a strtab.  ABFD is already at the right location in the