diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/frags.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 337c8dc..3fbbd2c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2001-11-12 Nick Clifton <nickc@cambridge.redhat.com> + + * frags.c (frag_grow): Use frag_make_room() to grow the + obstack. + 2001-11-14 Nick Clifton <nickc@cambridge.redhat.com> * config/tc-sparc.c (md_apply_fix3): Do not remove the symbol's diff --git a/gas/frags.c b/gas/frags.c index 8d7ed2f..e80cced 100644 --- a/gas/frags.c +++ b/gas/frags.c @@ -65,6 +65,12 @@ void frag_grow (nchars) unsigned int nchars; { + /* Try really hard to grow the obstack. Creating a new obstack can + disable expression optimisations that would otherwise occur if + two symbols were located in the same obstack. */ + if (obstack_room (&frchain_now->frch_obstack) < nchars) + obstack_make_room (& frchain_now->frch_obstack, 2 * nchars); + if (obstack_room (&frchain_now->frch_obstack) < nchars) { unsigned int n; |