diff --git a/test/dylib/dylib.c b/test/dylib/dylib.c
index 2fd67b712133e745bcbb2ff7508ed077797c4377..e702a7a1a8abba8307750ad76d7bf5301ca8b499 100644
--- a/test/dylib/dylib.c
+++ b/test/dylib/dylib.c
@@ -1,15 +1,18 @@
 #include <stdio.h>
 #include <stdarg.h>
 
+int b = 1;
+int c = 2;
+
 int dynamic_function_a(void) {
 	printf("This is dynamic function a.\n");
-	return 1;
+	return 0;
 }
 
 int dynamic_function_b(char *b, int n, ...) {
 	int i = 0;
 	va_list ap;
-	printf("This is dynamic function %s\n", b);
+	printf("This is dynamic function %s.\n", b);
 	va_start(ap, n);
 	for (i; i<n; i++)
 	{
@@ -20,3 +23,10 @@ int dynamic_function_b(char *b, int n, ...) {
 	va_end(ap);
 	return n-i;
 }
+
+int dynamic_function_c(int a) {
+	int d = 0;
+	printf("This is dynamic function c.\n");
+	d = a - b - c;
+	return d;
+}
diff --git a/test/dylib/dylib.h b/test/dylib/dylib.h
index ee0f5885d45694b86e1ccbdeed8ca2ff4b8d49e7..329d167d0bf597f4e394e2b4f9475b62d20c6056 100644
--- a/test/dylib/dylib.h
+++ b/test/dylib/dylib.h
@@ -2,4 +2,5 @@
 #define _DYLIB_H
 int dynamic_function_a(void);
 int dynamic_function_b(char *b, int n, ...);
+int dynamic_function_c(int a);
 #endif // _DYLIB_H
diff --git a/test/dylib/dylib_test.c b/test/dylib/dylib_test.c
index 2b564ddaa5ab327e719de819e8b6ad6a6d894c02..761bdd0749828ecd12b563f8d47f6a1e05637117 100644
--- a/test/dylib/dylib_test.c
+++ b/test/dylib/dylib_test.c
@@ -2,5 +2,9 @@
 #include "dylib.h"
 
 int main() {
-	return dynamic_function_b("b", 2, "a", "b");
+	int ret = 0;
+	ret += dynamic_function_a();
+	ret += dynamic_function_b("b", 2, "a", "b");
+	ret += dynamic_function_c(3);
+	return ret;
 }