* macro.c (sub_actual): Add back ampersand suffix when no

substitution.
	(macro_expand_body): Correct comment.
This commit is contained in:
Alan Modra 2010-08-18 05:56:41 +00:00
parent 2f06b48590
commit d1f52f54d5
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2010-08-18 Alan Modra <amodra@gmail.com>
* macro.c (sub_actual): Add back ampersand suffix when no
substitution.
(macro_expand_body): Correct comment.
2010-08-17 Roland McGrath <roland@redhat.com>
* config/obj-elf.c (obj_elf_parse_section_letters): Take new

View File

@ -748,6 +748,8 @@ sub_actual (int start, sb *in, sb *t, struct hash_control *formal_hash,
/* Doing this permits people to use & in macro bodies. */
sb_add_char (out, '&');
sb_add_sb (out, t);
if (src != start && in->ptr[src - 1] == '&')
sb_add_char (out, '&');
}
else if (copyifnotthere)
{
@ -788,9 +790,8 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
}
else
{
/* FIXME: Why do we do this? */
/* At least in alternate mode this seems correct; without this
one can't append a literal to a parameter. */
/* Permit macro parameter substition delineated with
an '&' prefix and optional '&' suffix. */
src = sub_actual (src + 1, in, &t, formal_hash, '&', out, 0);
}
}