summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/c_funloc_tests_3_funcs.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/c_funloc_tests_3_funcs.c')
-rw-r--r--gcc/testsuite/gfortran.dg/c_funloc_tests_3_funcs.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/c_funloc_tests_3_funcs.c b/gcc/testsuite/gfortran.dg/c_funloc_tests_3_funcs.c
new file mode 100644
index 000000000..994da0a50
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/c_funloc_tests_3_funcs.c
@@ -0,0 +1,25 @@
+/* These functions support the test case c_funloc_tests_3. */
+#include <stdlib.h>
+#include <stdio.h>
+
+int printIntC(int i)
+{
+ return 3*i;
+}
+
+int (*returnFunc(void))(int)
+{
+ return &printIntC;
+}
+
+void callFunc(int(*func)(int), int pass, int compare)
+{
+ int result = (*func)(pass);
+ if(result != compare)
+ {
+ printf("FAILED: Got %d, expected %d\n", result, compare);
+ abort();
+ }
+ else
+ printf("SUCCESS: Got %d, expected %d\n", result, compare);
+}