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 /tests/tests2 | |
| 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 'tests/tests2')
| -rw-r--r-- | tests/tests2/68_macro_concat.c | 9 | ||||
| -rw-r--r-- | tests/tests2/68_macro_concat.expect | 1 | ||||
| -rw-r--r-- | tests/tests2/69_macro_concat.c | 9 | ||||
| -rw-r--r-- | tests/tests2/69_macro_concat.expect | 1 | ||||
| -rw-r--r-- | tests/tests2/Makefile | 4 |
5 files changed, 23 insertions, 1 deletions
diff --git a/tests/tests2/68_macro_concat.c b/tests/tests2/68_macro_concat.c new file mode 100644 index 0000000..5c1361f --- /dev/null +++ b/tests/tests2/68_macro_concat.c @@ -0,0 +1,9 @@ +#include <stdio.h> +#define hexCh(c (c >= 10 ? 'a' + c - 10 : '0' + c) + +int main(void) +{ + int c = 0xa; + printf("hex: %c\n", hexCh(c)); + return 0; +} diff --git a/tests/tests2/68_macro_concat.expect b/tests/tests2/68_macro_concat.expect new file mode 100644 index 0000000..0bf7d54 --- /dev/null +++ b/tests/tests2/68_macro_concat.expect @@ -0,0 +1 @@ +68_macro_concat.c:2: error: '(' may not appear in parameter list diff --git a/tests/tests2/69_macro_concat.c b/tests/tests2/69_macro_concat.c new file mode 100644 index 0000000..3b16313 --- /dev/null +++ b/tests/tests2/69_macro_concat.c @@ -0,0 +1,9 @@ +#include <stdio.h> +#define hexCh(c/3) (c >= 10 ? 'a' + c - 10 : '0' + c) + +int main(void) +{ + int c = 0xa; + printf("hex: %c\n", hexCh(c)); + return 0; +} diff --git a/tests/tests2/69_macro_concat.expect b/tests/tests2/69_macro_concat.expect new file mode 100644 index 0000000..89e7b79 --- /dev/null +++ b/tests/tests2/69_macro_concat.expect @@ -0,0 +1 @@ +69_macro_concat.c:2: error: '/' may not appear in parameter list diff --git a/tests/tests2/Makefile b/tests/tests2/Makefile index c47fe0a..64532a1 100644 --- a/tests/tests2/Makefile +++ b/tests/tests2/Makefile @@ -82,7 +82,9 @@ TESTS = \ 64_macro_nesting.test \ 65_macro_concat_start.test \ 66_macro_concat_end.test \ - 67_macro_concat.test + 67_macro_concat.test \ + 68_macro_concat.test \ + 69_macro_concat.test # 34_array_assignment.test -- array assignment is not in C standard |
