aboutsummaryrefslogtreecommitdiff
path: root/tccpp.c
diff options
context:
space:
mode:
authorjiang <30155751@qq.com>2014-06-29 20:35:57 +0800
committerjiang <30155751@qq.com>2014-06-29 20:35:57 +0800
commita3fc54345949535524d01319e1ca6378b7c2c201 (patch)
treef5f3a7fe3562152548680baff74f0ef6e17395f2 /tccpp.c
parent799512388c65485076e0ff380f694a20b65e272a (diff)
downloadtinycc-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.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/tccpp.c b/tccpp.c
index 2da65cd..0cea7cf 100644
--- a/tccpp.c
+++ b/tccpp.c
@@ -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);