aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2010-07-23 06:44:25 +0000
committerAlan Modra <amodra@gmail.com>2010-07-23 06:44:25 +0000
commitc0ba1095fd73bd3456b49bf86ef526f2bab46908 (patch)
tree5a7ba3a1165f91cdd8c5cc3757022d3ee80e3ceb /gas
parent3895431c5c97eebcecbe3bcc7eafa6db97cd9783 (diff)
downloadfsf-binutils-gdb-c0ba1095fd73bd3456b49bf86ef526f2bab46908.zip
fsf-binutils-gdb-c0ba1095fd73bd3456b49bf86ef526f2bab46908.tar.gz
fsf-binutils-gdb-c0ba1095fd73bd3456b49bf86ef526f2bab46908.tar.bz2
PR gas/11834
* macro.c (macro_expand): Recover gracefully from named args that don't match params.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/macro.c10
2 files changed, 13 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 5d543f9..a157d02 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2010-07-23 Alan Modra <amodra@gmail.com>
+
+ PR gas/11834
+ * macro.c (macro_expand): Recover gracefully from named args that
+ don't match params.
+
2010-07-22 Thomas Schwinge <thomas@codesourcery.com>
Switch MIPS to 32-bit DWARF format.
diff --git a/gas/macro.c b/gas/macro.c
index 97f3414..3e3ffb1 100644
--- a/gas/macro.c
+++ b/gas/macro.c
@@ -1072,9 +1072,13 @@ macro_expand (int idx, sb *in, macro_entry *m, sb *out)
/* Lookup the formal in the macro's list. */
ptr = (formal_entry *) hash_find (m->formal_hash, sb_terminate (&t));
if (!ptr)
- as_bad (_("Parameter named `%s' does not exist for macro `%s'"),
- t.ptr,
- m->name);
+ {
+ as_bad (_("Parameter named `%s' does not exist for macro `%s'"),
+ t.ptr,
+ m->name);
+ sb_reset (&t);
+ idx = get_any_string (idx + 1, in, &t);
+ }
else
{
/* Insert this value into the right place. */