diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/macro.c | 10 |
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. */ |