aboutsummaryrefslogtreecommitdiff
path: root/gas/frags.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/frags.c')
-rw-r--r--gas/frags.c6
1 files changed, 6 insertions, 0 deletions
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;