PR gas/3856
* macro.c (expand_irp): Do not ignore spaces inside quoted strings.
This commit is contained in:
parent
e8630bd766
commit
465e561723
2 changed files with 18 additions and 2 deletions
|
@ -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.
|
||||||
|
|
14
gas/macro.c
14
gas/macro.c
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue