Browse Source

PR gas/12049

* write.c (relax_frag): Don't allow forward branches to temporarily
	becomde backward branches.
binutils-2_21-branch
Alan Modra 16 years ago
parent
commit
e5940dffc5
  1. 6
      gas/ChangeLog
  2. 7
      gas/write.c

6
gas/ChangeLog

@ -1,3 +1,9 @@
2010-10-25 Alan Modra <amodra@gmail.com>
PR gas/12049
* write.c (relax_frag): Don't allow forward branches to temporarily
becomde backward branches.
2010-10-23 Mark Mitchell <mark@codesourcery.com>
* config/obj-elf.c (elf_adjust_symtab): New. Move group section

7
gas/write.c

@ -2163,6 +2163,13 @@ relax_frag (segT segment, fragS *fragP, long stretch)
if (stretch < 0
|| sym_frag->region == fragP->region)
target += stretch;
/* If we get here we know we have a forward branch. This
relax pass may have stretched previous instructions so
far that omitting STRETCH would make the branch
negative. Don't allow this in case the negative reach is
large enough to require a larger branch instruction. */
else if (target < address)
target = fragP->fr_next->fr_address + stretch;
}
}

Loading…
Cancel
Save