PR gas/12049
* write.c (relax_frag): Don't allow forward branches to temporarily becomde backward branches.
This commit is contained in:
parent
4073872ae3
commit
e5940dffc5
|
@ -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
|
||||
|
|
|
@ -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…
Reference in New Issue