aboutsummaryrefslogtreecommitdiff
path: root/tests/pp
diff options
context:
space:
mode:
authorseyko <seyko2@gmail.com>2016-04-05 10:43:50 +0300
committerseyko <seyko2@gmail.com>2016-04-05 10:43:50 +0300
commitd3e85e80fd192d3fb19fa207bd6ce158a012b45a (patch)
treeb45515d25016bb0f836f31995472741243d18ab8 /tests/pp
parent21665f433890e2038626f0b3123b189a62a67dc9 (diff)
downloadtinycc-d3e85e80fd192d3fb19fa207bd6ce158a012b45a.tar.gz
tinycc-d3e85e80fd192d3fb19fa207bd6ce158a012b45a.tar.bz2
Identifiers can start and/or contain '.' in *.S
modified version of the old one which don't allow '.' in #define Identifiers. This allow correctly preprocess the following code in *.S #define SRC(y...) \ 9999: y; \ .section __ex_table, "a"; \ .long 9999b, 6001f ; \ // .previous SRC(1: movw (%esi), %bx) 6001: A test included.
Diffstat (limited to 'tests/pp')
-rw-r--r--tests/pp/12.S8
-rw-r--r--tests/pp/12.expect2
-rw-r--r--tests/pp/Makefile12
3 files changed, 21 insertions, 1 deletions
diff --git a/tests/pp/12.S b/tests/pp/12.S
new file mode 100644
index 0000000..597ccb4
--- /dev/null
+++ b/tests/pp/12.S
@@ -0,0 +1,8 @@
+#define SRC(y...) \
+ 9999: y; \
+ .section __ex_table, "a"; \
+ .long 9999b, 6001f ; \
+ // .previous
+
+ SRC(1: movw (%esi), %bx)
+6001:
diff --git a/tests/pp/12.expect b/tests/pp/12.expect
new file mode 100644
index 0000000..17a861c
--- /dev/null
+++ b/tests/pp/12.expect
@@ -0,0 +1,2 @@
+ 9999: 1: movw (%esi), %bx; .section __ex_table, "a"; .long 9999b, 6001f ;
+6001:
diff --git a/tests/pp/Makefile b/tests/pp/Makefile
index cb8bfea..d55699c 100644
--- a/tests/pp/Makefile
+++ b/tests/pp/Makefile
@@ -7,6 +7,7 @@ include $(TOP)/Makefile
TCC = $(TOP)/tcc
TESTS = $(patsubst %.c,%.test,$(wildcard *.c))
+TESTS += $(patsubst %.S,%.test,$(wildcard *.S))
ifdef CONFIG_WIN32
TCC = $(top_srcdir)/win32/tcc
@@ -20,10 +21,19 @@ all test : $(TESTS)
diff -Nu -b -B -I "^#" $(EXTRA_DIFF_OPTS) $*.expect $*.output \
&& rm -f $*.output
+%.test: %.S %.expect
+ @echo PPTest $* ...
+ @$(TCC) -E -P $< >$*.output 2>&1 ; \
+ diff -Nu -b -B -I "^#" $(EXTRA_DIFF_OPTS) $*.expect $*.output \
+ && rm -f $*.output
+
# automatically generate .expect files with gcc:
-%.expect :
+%.expect: %.c
gcc -E -P $*.c >$*.expect 2>&1
+%.expect: %.S
+ gcc -E -P $*.S >$*.expect 2>&1
+
# tell make not to delete
.PRECIOUS: %.expect