Backport upstream commit fe4be538e389d5caf6c0a562cd02e58fda9361cb.

    Add an explicit upcast in the OO-style test.

https://github.com/yallop/ocaml-ctypes/commit/fe4be538e389d5caf6c0a562cd02e58fda9361cb

It allows to deal with GCC@14 stricter than the previous versions.

diff --git a/tests/clib/test_functions.c b/tests/clib/test_functions.c
index d19db2b..486b7d1 100644
--- a/tests/clib/test_functions.c
+++ b/tests/clib/test_functions.c
@@ -293,6 +293,11 @@ struct chorse *new_chorse(int colour)
   h->colour = (enum colour)colour;
   return h;
 }
+
+struct animal *new_chorse_as_animal(int colour)
+{
+  return (struct animal *)new_chorse(colour);
+}
 /* (End of OO-style example) */
 
 int accept_pointers(float *float_p,
diff --git a/tests/clib/test_functions.h b/tests/clib/test_functions.h
index 5022e98..579f622 100644
--- a/tests/clib/test_functions.h
+++ b/tests/clib/test_functions.h
@@ -79,6 +79,8 @@ extern char *chorse_colour(struct chorse *);
 extern char *chorse_say(struct animal *);
 extern char *chorse_identify(struct animal *);
 extern struct chorse *new_chorse(int);
+extern struct animal *new_chorse_as_animal(int);
+
 extern int accept_pointers(float *,
                            double *,
                            short *,
diff --git a/tests/test-oo_style/stubs/functions.ml b/tests/test-oo_style/stubs/functions.ml
index 4434331..6a8e7bd 100644
--- a/tests/test-oo_style/stubs/functions.ml
+++ b/tests/test-oo_style/stubs/functions.ml
@@ -82,6 +82,6 @@ struct
   let check_name = foreign "check_name"
     (ptr animal @-> string @-> returning int)
 
-    let new_chorse = foreign "new_chorse"
+    let new_chorse = foreign "new_chorse_as_animal"
       (int @-> returning (ptr animal))
 end
