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