diff options
| author | jiang <30155751@qq.com> | 2014-06-29 20:35:57 +0800 |
|---|---|---|
| committer | jiang <30155751@qq.com> | 2014-06-29 20:35:57 +0800 |
| commit | a3fc54345949535524d01319e1ca6378b7c2c201 (patch) | |
| tree | f5f3a7fe3562152548680baff74f0ef6e17395f2 /tccpp.c | |
| parent | 799512388c65485076e0ff380f694a20b65e272a (diff) | |
| download | tinycc-a3fc54345949535524d01319e1ca6378b7c2c201.tar.gz tinycc-a3fc54345949535524d01319e1ca6378b7c2c201.tar.bz2 | |
bug:
----------------------------------------------------------------------
#define hexCh(c (c >= 10 ? 'a' + c - 10 : '0' + c)
hexCh(c);
out:
jiang@jiang:~/test$ ./tcc -E c4.c
# 1 "c4.c"
(c >= 10 ? 'a' + c - 10 : '0' + c);
---------------------------------------------------------------
#define hexCh(c/3) (c >= 10 ? 'a' + c - 10 : '0' + c)
hexCh(c);
out:
jiang@jiang:~/test$ ./tcc -E c4.c
# 1 "c4.c"
/3) (c >= 10 ? 'a' + c - 10 : '0' + c);
jiang@jiang:~/test$
after patch:
# 1 "c4.c"
c4.c:1: error: may not appear in macro parameter list: "("
jiang@jiang:~/test$
jiang@jiang:~/test$ ./tcc -E c4.c
# 1 "c4.c"
c4.c:1: error: may not appear in macro parameter list: "/"
jiang@jiang:~/test$
Diffstat (limited to 'tccpp.c')
| -rw-r--r-- | tccpp.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -1239,16 +1239,15 @@ ST_FUNC void parse_define(void) next_nomacro(); } if (varg < TOK_IDENT) - tcc_error("badly punctuated parameter list"); + tcc_error( "\'%s\' may not appear in parameter list", get_tok_str(varg, NULL)); s = sym_push2(&define_stack, varg | SYM_FIELD, is_vaargs, 0); *ps = s; ps = &s->next; if (tok != ',') - break; + continue; next_nomacro(); } - if (tok == ')') - next_nomacro_spc(); + next_nomacro_spc(); t = MACRO_FUNC; } tok_str_new(&str); |
