summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2015-12-11 15:51:56 +0800
committerTing-Wei Lan <lantw44@gmail.com>2015-12-11 15:51:56 +0800
commitbf56cb34ff8028610877cf7bc5f7a186ce701b79 (patch)
tree8bc3727c9b09869bbb1ed4a21ea5709f4a17cb50
parent6a1784f1c85514c8b5ac529f8db7aed89a461291 (diff)
downloadcompiler2015-bf56cb34ff8028610877cf7bc5f7a186ce701b79.tar
compiler2015-bf56cb34ff8028610877cf7bc5f7a186ce701b79.tar.gz
compiler2015-bf56cb34ff8028610877cf7bc5f7a186ce701b79.tar.bz2
compiler2015-bf56cb34ff8028610877cf7bc5f7a186ce701b79.tar.lz
compiler2015-bf56cb34ff8028610877cf7bc5f7a186ce701b79.tar.xz
compiler2015-bf56cb34ff8028610877cf7bc5f7a186ce701b79.tar.zst
compiler2015-bf56cb34ff8028610877cf7bc5f7a186ce701b79.zip
Add some testcases
-rw-r--r--Makefile.am15
-rw-r--r--pattern/int-div-by-zero.cmm5
-rw-r--r--pattern/negative-array-size.cmm4
-rw-r--r--pattern/not-constant.cmm10
-rw-r--r--pattern/not-function.cmm4
-rw-r--r--pattern/not-scalar-or-array.cmm8
-rw-r--r--pattern/not-type.cmm5
-rw-r--r--pattern/not-var.cmm6
-rw-r--r--pattern/string-expr.cmm5
-rw-r--r--pattern/void-expr.cmm7
-rw-r--r--pattern/void-var-and-array.cmm6
11 files changed, 74 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index ba04ef6..e53b692 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,20 @@
NULL =
-EXTRA_DIST = autogen.sh Makefile.simple
+EXTRA_DIST = \
+ autogen.sh \
+ Makefile.simple \
+ pattern/int-div-by-zero.cmm \
+ pattern/negative-array-size.cmm \
+ pattern/not-constant.cmm \
+ pattern/not-function.cmm \
+ pattern/not-scalar-or-array.cmm \
+ pattern/not-type.cmm \
+ pattern/not-var.cmm \
+ pattern/string-expr.cmm \
+ pattern/void-expr.cmm \
+ pattern/void-var-and-array.cmm \
+ $(NULL)
bin_PROGRAMS = parser
noinst_LIBRARIES = libparser.a
diff --git a/pattern/int-div-by-zero.cmm b/pattern/int-div-by-zero.cmm
new file mode 100644
index 0000000..13a855f
--- /dev/null
+++ b/pattern/int-div-by-zero.cmm
@@ -0,0 +1,5 @@
+int array[1/0];
+int array[1.0/0.0];
+int main(void) {
+ return 0;
+}
diff --git a/pattern/negative-array-size.cmm b/pattern/negative-array-size.cmm
new file mode 100644
index 0000000..0b7b402
--- /dev/null
+++ b/pattern/negative-array-size.cmm
@@ -0,0 +1,4 @@
+int main(void) {
+ int a[0-1];
+ return 0;
+}
diff --git a/pattern/not-constant.cmm b/pattern/not-constant.cmm
new file mode 100644
index 0000000..2726d34
--- /dev/null
+++ b/pattern/not-constant.cmm
@@ -0,0 +1,10 @@
+int func(void) {
+ return 4;
+}
+
+typedef int tp[func() + 5];
+float gv[4 - func()];
+
+int main(void) {
+ return 0;
+}
diff --git a/pattern/not-function.cmm b/pattern/not-function.cmm
new file mode 100644
index 0000000..f52a6e1
--- /dev/null
+++ b/pattern/not-function.cmm
@@ -0,0 +1,4 @@
+int var;
+int main(void) {
+ return var();
+}
diff --git a/pattern/not-scalar-or-array.cmm b/pattern/not-scalar-or-array.cmm
new file mode 100644
index 0000000..70de81f
--- /dev/null
+++ b/pattern/not-scalar-or-array.cmm
@@ -0,0 +1,8 @@
+int main(void) {
+ int arr[10];
+ int sca;
+ int test;
+ test = sca[10];
+ test = arr;
+ return 0;
+}
diff --git a/pattern/not-type.cmm b/pattern/not-type.cmm
new file mode 100644
index 0000000..25e7ecf
--- /dev/null
+++ b/pattern/not-type.cmm
@@ -0,0 +1,5 @@
+int main(void) {
+ int var;
+ var n;
+ return 0;
+}
diff --git a/pattern/not-var.cmm b/pattern/not-var.cmm
new file mode 100644
index 0000000..8d07764
--- /dev/null
+++ b/pattern/not-var.cmm
@@ -0,0 +1,6 @@
+int func(int arg) {
+ return arg;
+}
+int main(void) {
+ return func(func);
+}
diff --git a/pattern/string-expr.cmm b/pattern/string-expr.cmm
new file mode 100644
index 0000000..42890b3
--- /dev/null
+++ b/pattern/string-expr.cmm
@@ -0,0 +1,5 @@
+int main(void) {
+ int a;
+ a = 123456 + "STRING";
+ return 0;
+}
diff --git a/pattern/void-expr.cmm b/pattern/void-expr.cmm
new file mode 100644
index 0000000..0f183a0
--- /dev/null
+++ b/pattern/void-expr.cmm
@@ -0,0 +1,7 @@
+void func(int arg) { }
+int main(void) {
+ int a = 4;
+ float b = 5.5;
+ a = a + b - func(3);
+ return 0;
+}
diff --git a/pattern/void-var-and-array.cmm b/pattern/void-var-and-array.cmm
new file mode 100644
index 0000000..7b6368a
--- /dev/null
+++ b/pattern/void-var-and-array.cmm
@@ -0,0 +1,6 @@
+typedef void vtype;
+vtype vvar;
+vtype varr[10];
+int main(void) {
+ return 0;
+}