diff options
| -rw-r--r-- | tcc.c | 2 | ||||
| -rw-r--r-- | tcctest.c | 6 |
2 files changed, 7 insertions, 1 deletions
@@ -3812,7 +3812,7 @@ static int macro_subst_tok(TokenString *tok_str, /* NOTE: empty args are allowed, except if no args */ for(;;) { /* handle '()' case */ - if (!args && tok == ')') + if (!args && !sa && tok == ')') break; if (!sa) error("macro '%s' used with too many args", @@ -253,6 +253,12 @@ void macro_test(void) /* test macro substituion inside args (should not eat stream) */ printf("qq=%d\n", qq(qq)(2)); + /* test zero argument case. NOTE: gcc 2.95.x does not accept a + null argument without a space. gcc 3.2 fixes that. */ + +#define qq1(x) 1 + printf("qq1=%d\n", qq1( )); + /* comment with stray handling *\ / /* this is a valid *\/ comment */ |
