Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / regression / library / libm5.c
CommitLineData
7f918cf1
CE
1#include <assert.h>
2
3#define PART_OF_M5
4#include "m5.h"
5#include "m4.h"
6#define DYNAMIC_LINK_M3
7#include "m3.h"
8
9extern EXTERNAL void* libm3cSymPublic;
10extern EXTERNAL void* libm3cFnPublic(void);
11extern EXTERNAL void* libm4cSymPublic;
12extern EXTERNAL void* libm4cFnPublic(void);
13
14PRIVATE void* libm5cSymPrivate = 0;
15PUBLIC void* libm5cSymPublic = 0;
16
17PRIVATE void* libm5cFnPrivate(void) {
18 return &libm5cSymPrivate;
19}
20
21PUBLIC void* libm5cFnPublic(void) {
22 return &libm5cSymPublic;
23}
24
25PRIVATE void libm5confirmC(void) {
26 assert (&libm5smlFnPrivate == libm5smlSymPrivate);
27 assert (&libm5smlFnPublic == libm5smlSymPublic);
28 assert (&libm5cFnPrivate == libm5cSymPrivate);
29 assert (&libm5cFnPublic == libm5cSymPublic);
30
31 assert (libm5smlFnPrivate() == &libm5smlSymPrivate);
32 assert (libm5smlFnPublic() == &libm5smlSymPublic);
33
34 /* Check libm3 */
35 assert (&libm3smlFnPublic == libm3smlSymPublic);
36 assert (&libm3cFnPublic == libm3cSymPublic);
37 assert (libm3smlFnPublic() == &libm3smlSymPublic);
38 assert (libm3cFnPublic() == &libm3cSymPublic);
39
40 /* Check libm4 */
41 assert (&libm4smlFnPublic == libm4smlSymPublic);
42 assert (&libm4cFnPublic == libm4cSymPublic);
43 assert (libm4smlFnPublic() == &libm4smlSymPublic);
44 assert (libm4cFnPublic() == &libm4cSymPublic);
45}