PR gas/3856

* macro.c (expand_irp): Do not ignore spaces inside quoted strings.
This commit is contained in:
Nick Clifton 2007-01-12 10:57:02 +00:00
parent e8630bd766
commit 465e561723
2 changed files with 18 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2007-01-12 Nick Clifton <nickc@redhat.com>
PR gas/3856
* macro.c (expand_irp): Do not ignore spaces inside quoted
strings.
2007-01-12 Alan Modra <amodra@bigpond.net.au> 2007-01-12 Alan Modra <amodra@bigpond.net.au>
* config/tc-spu.h (TC_RELOC_RTSYM_LOC_FIXUP): Delete. * config/tc-spu.h (TC_RELOC_RTSYM_LOC_FIXUP): Delete.

View file

@ -1325,8 +1325,14 @@ expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *))
} }
else else
{ {
bfd_boolean in_quotes = FALSE;
if (irpc && in->ptr[idx] == '"') if (irpc && in->ptr[idx] == '"')
++idx; {
in_quotes = TRUE;
++idx;
}
while (idx < in->len) while (idx < in->len)
{ {
if (!irpc) if (!irpc)
@ -1337,6 +1343,9 @@ expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *))
{ {
int nxt; int nxt;
if (irpc)
in_quotes = ! in_quotes;
nxt = sb_skip_white (idx + 1, in); nxt = sb_skip_white (idx + 1, in);
if (nxt >= in->len) if (nxt >= in->len)
{ {
@ -1348,12 +1357,13 @@ expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *))
sb_add_char (&f.actual, in->ptr[idx]); sb_add_char (&f.actual, in->ptr[idx]);
++idx; ++idx;
} }
err = macro_expand_body (&sub, out, &f, h, 0); err = macro_expand_body (&sub, out, &f, h, 0);
if (err != NULL) if (err != NULL)
break; break;
if (!irpc) if (!irpc)
idx = sb_skip_comma (idx, in); idx = sb_skip_comma (idx, in);
else else if (! in_quotes)
idx = sb_skip_white (idx, in); idx = sb_skip_white (idx, in);
} }
} }