aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/frags.c6
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;