1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
From: Jeremy Yallop <yallop@gmail.com>
Date: Tue, 13 Aug 2024 06:41:53 +0100
Subject: Add an explicit upcast in the OO-style test.
Origin: upstream, https://github.com/yallop/ocaml-ctypes/pull/785
---
tests/clib/test_functions.c | 5 +++++
tests/clib/test_functions.h | 2 ++
tests/test-oo_style/stubs/functions.ml | 2 +-
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/tests/clib/test_functions.c b/tests/clib/test_functions.c
index cf81c5a..44d0f57 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 eae2e17..011cc93 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 84ded6f..a35fa2c 100644
--- a/tests/test-oo_style/stubs/functions.ml
+++ b/tests/test-oo_style/stubs/functions.ml
@@ -81,6 +81,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
|