diff options
Diffstat (limited to 'asm/preproc.c')
-rw-r--r-- | asm/preproc.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/asm/preproc.c b/asm/preproc.c index 125fa100..a3f8b7de 100644 --- a/asm/preproc.c +++ b/asm/preproc.c @@ -2320,10 +2320,14 @@ static int parse_smacro_template(Token ***tpp, SMacro *tmpl) Token *t = *tn; Token *name; - while (t && t->type == TOK_WHITESPACE) { - tn = &t->next; - t = *tn; - } + /* + * DO NOT skip whitespace here, or we won't be able to distinguish: + * + * %define foo (a,b) ; no arguments, (a,b) is the expansion + * %define bar(a,b) ; two arguments, empty expansion + * + * This ambiguity was inherited from C. + */ if (!tok_is_(t, "(")) goto finish; |