Selaa lähdekoodia

Added some more early return testcases.

Simon Polstra 10 vuotta sitten
vanhempi
sitoutus
e5a909e8cb

+ 5 - 0
test/basic/check_error/different_early_return.cvc

@@ -0,0 +1,5 @@
+void foo(int p) {
+    if (p > 1)
+        return;
+    return 1.0;
+}

+ 7 - 0
test/basic/check_error/different_early_return2.cvc

@@ -0,0 +1,7 @@
+int foo(int p) {
+    if (p > 1)
+        return 1;
+    else
+        return 1.1;
+    return 0;
+}

+ 4 - 0
test/basic/check_error/invalid_return_voidfunc.cvc

@@ -0,0 +1,4 @@
+void f()
+{
+  return true;
+}

+ 2 - 0
test/basic/check_error/no_return.cvc

@@ -0,0 +1,2 @@
+int baz() {
+}

+ 4 - 0
test/basic/check_error/void_return_nonvoidfunc.cvc

@@ -0,0 +1,4 @@
+bool f()
+{
+  return;
+}

+ 2 - 0
test/basic/check_success/no_return.cvc

@@ -0,0 +1,2 @@
+void baz() {
+}

+ 19 - 0
test/basic/functional/deadcode.cvc

@@ -0,0 +1,19 @@
+extern void printInt( int val);
+extern void printSpaces( int num);
+extern void printNewlines( int num);
+
+export int main()
+{
+    int m=10;
+
+    for(int i=0,m)
+    {
+            printInt(i);
+            printSpaces(1);
+    }
+    printNewlines(1);
+    return 0;
+    printInt(112);
+    printNewlines(1);
+    return 1;
+}

+ 1 - 0
test/basic/functional/deadcode.out

@@ -0,0 +1 @@
+0 1 2 3 4 5 6 7 8 9 

+ 1 - 0
test/basic/functional/factorial.cvc

@@ -18,6 +18,7 @@ int fac(int num) {
 }
 
 export int main() {
+    printInt(fac(0));  printNewlines(1);
     printInt(fac(3));  printNewlines(1);
     printInt(fac(5));  printNewlines(1);
     printInt(fac(10)); printNewlines(1);

+ 1 - 0
test/basic/functional/factorial.out

@@ -1,3 +1,4 @@
+1
 6
 120
 3628800

+ 27 - 0
test/basic/functional/factorial_early_return.cvc

@@ -0,0 +1,27 @@
+extern void printInt(int val);
+extern void printNewlines(int num);
+
+int fac(int num) {
+    int input = num;
+    int output = 1;
+    int i = 1;
+
+    if (input == 0) {
+        return 1;
+    } else {
+        while (i <= input) {
+            output = output * i;
+            i = i + 1;
+        }
+    }
+    return output;
+}
+
+export int main() {
+    printInt(fac(0));  printNewlines(1);
+    printInt(fac(3));  printNewlines(1);
+    printInt(fac(5));  printNewlines(1);
+    printInt(fac(10)); printNewlines(1);
+    return 0;
+}
+

+ 4 - 0
test/basic/functional/factorial_early_return.out

@@ -0,0 +1,4 @@
+1
+6
+120
+3628800

+ 20 - 0
test/basic/functional/recursion_early_return.cvc

@@ -0,0 +1,20 @@
+extern void printInt(int val);
+extern void printNewlines(int num);
+extern void printSpaces(int num);
+
+int factorial(int i) {
+    if (i == 0)
+        return 1;
+
+    return i * factorial(i - 1);
+}
+
+export int main() {
+    for (int i = 0, 6) {
+        printInt(factorial(i));
+        printSpaces(1);
+    }
+    printNewlines(1);
+
+    return 0;
+}

+ 1 - 0
test/basic/functional/recursion_early_return.out

@@ -0,0 +1 @@
+1 1 2 6 24 120