aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/functions.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functions.c')
-rw-r--r--tests/functions.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/functions.c b/tests/functions.c
index b5ffecb..eef9496 100644
--- a/tests/functions.c
+++ b/tests/functions.c
@@ -95,6 +95,10 @@ int f9(int select, int a, int b, int c, int d, S e, int f, int g) {
}
}
+int f10() {
+ return 12345;
+}
+
// recursive functions
int fib(int n) {
if (n <= 1) {
@@ -136,6 +140,20 @@ int main() {
ASSERT_EQ(7, f9(6, 1, 2, 3, 4, s, 7, 8));
ASSERT_EQ(8, f9(7, 1, 2, 3, 4, s, 7, 8));
+ // function pointers
+ ASSERT_EQ(12345, (f10)());
+ ASSERT_EQ(12345, (*f10)());
+ ASSERT_EQ(12345, (**f10)());
+
+ int (*fp1)() = f10;
+ ASSERT_EQ(12345, fp1());
+ int (*fp2)(int, int, int, int, int, int) = f;
+ ASSERT_EQ(1, fp2(1, 2, 3, 4, 5, 6));
+ int (*fp3)(int, int, int, int, int, int) = f6;
+ ASSERT_EQ(6, fp3(1, 2, 3, 4, 5, 6));
+ int (*fp4)(int, int, int, int, int, int, int, int, int, int, int) = f7;
+ ASSERT_EQ(7, fp4(6, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
+
// recursive functions
ASSERT_EQ(89, fib(10));
}