* write.c (relax_frag): Don't allow forward branches to temporarily
becomde backward branches.
+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
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;
}
}