Import Upstream version 20180207
[hcoop/debian/mlton.git] / regression / library / libm2.c
1 #include <assert.h>
2
3 #define PART_OF_M2
4 #include "m2.h"
5 #define STATIC_LINK_M1
6 #include "m1.h"
7
8 extern PUBLIC void* libm1cSymPublic;
9 extern PUBLIC void* libm1cFnPublic(void);
10
11 PRIVATE void* libm2cSymPrivate = 0;
12 PUBLIC void* libm2cSymPublic = 0;
13
14 PRIVATE void* libm2cFnPrivate(void) {
15 return &libm2cSymPrivate;
16 }
17
18 PUBLIC void* libm2cFnPublic(void) {
19 return &libm2cSymPublic;
20 }
21
22 PRIVATE void libm2confirmC(void) {
23 assert (&libm2smlFnPrivate == libm2smlSymPrivate);
24 assert (&libm2smlFnPublic == libm2smlSymPublic);
25 assert (&libm2cFnPrivate == libm2cSymPrivate);
26 assert (&libm2cFnPublic == libm2cSymPublic);
27
28 assert (libm2smlFnPrivate() == &libm2smlSymPrivate);
29 assert (libm2smlFnPublic() == &libm2smlSymPublic);
30
31 /* Check libm1 */
32 assert (&libm1smlFnPublic == libm1smlSymPublic);
33 assert (&libm1cFnPublic == libm1cSymPublic);
34 assert (libm1smlFnPublic() == &libm1smlSymPublic);
35 assert (libm1cFnPublic() == &libm1cSymPublic);
36 }