PATCH: PR gas/4029: relax_segment can't stabilize .gcc_except_table
Alan Modra
amodra@bigpond.net.au
Thu Feb 22 21:02:00 GMT 2007
On Sun, Feb 18, 2007 at 11:19:27PM -0800, H. J. Lu wrote:
> + if (growth == -1
> + && fragP->growth_count == 0xf)
> + {
> + /* There are 15 growths after shrinks. To break
> + the infinite loop, we grow the size by 1 instead
> + of shrinking it by 1. */
> + growth = 1;
> + }
HJ, how can this possibly work? If you arbitrarily change the growth,
then all following frags will have their address set incorrectly.
At least, that's what is seems like to me. Hmm, I suppose you might
have found something that works for one specific case of following
frag types, but I don't think this can be correct in general.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
More information about the Binutils
mailing list