diff options
author | Alan Modra <amodra@gmail.com> | 2010-07-23 06:44:25 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2010-07-23 06:44:25 +0000 |
commit | c0ba1095fd73bd3456b49bf86ef526f2bab46908 (patch) | |
tree | 5a7ba3a1165f91cdd8c5cc3757022d3ee80e3ceb /gas/macro.c | |
parent | 3895431c5c97eebcecbe3bcc7eafa6db97cd9783 (diff) | |
download | gdb-c0ba1095fd73bd3456b49bf86ef526f2bab46908.zip gdb-c0ba1095fd73bd3456b49bf86ef526f2bab46908.tar.gz 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/macro.c')
-rw-r--r-- | gas/macro.c | 10 |
1 files changed, 7 insertions, 3 deletions
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. */ |