Increase minor version number (to 2.10.91) to help tools detect the new
[deliverable/binutils-gdb.git] / gas / literal.c
index f622d310c96317d6a2d0b9a4b7c06c380822a787..a3f8fc4da1eb8fa304dfd823ab4cb1f086ffece8 100644 (file)
@@ -16,7 +16,7 @@
 
    You should have received a copy of the GNU General Public License
    along with GAS; see the file COPYING.  If not, write to
-   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+   the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 
 /* This isn't quite a "constant" pool.  Some of the values may get
    adjusted at run time, e.g., for symbolic relocations when shared
@@ -59,11 +59,15 @@ add_to_literal_pool (sym, addend, sec, size)
   offset = 0;
   /* @@ This assumes all entries in a given section will be of the same
      size...  Probably correct, but unwise to rely on.  */
-  for (fixp = seginfo->fix_root; fixp; fixp = fixp->fx_next, offset += size)
-    {
-      if (fixp->fx_addsy == sym && fixp->fx_offset == addend)
-       return offset;
-    }
+  /* This must always be called with the same subsegment.  */
+  if (seginfo->frchainP)
+    for (fixp = seginfo->frchainP->fix_root;
+        fixp != (fixS *) NULL;
+        fixp = fixp->fx_next, offset += size)
+      {
+       if (fixp->fx_addsy == sym && fixp->fx_offset == addend)
+         return offset;
+      }
 
   subseg_set (sec, 0);
   p = frag_more (size);
@@ -84,10 +88,8 @@ add_to_literal_pool (sym, addend, sec, size)
           reloc_type);
 
   subseg_set (current_section, current_subsec);
-
   offset = seginfo->literal_pool_size;
   seginfo->literal_pool_size += size;
-
   return offset;
 }
 #endif /* BFD_ASSEMBLER */
This page took 0.034221 seconds and 4 git commands to generate.