Import Upstream version 20180207
[hcoop/debian/mlton.git] / regression / library / check.c
CommitLineData
7f918cf1
CE
1#include <assert.h>
2
3#include "check.h"
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
14extern PUBLIC void* libm5cSymPublic;
15extern PUBLIC void* libm5cFnPublic(void);
16
17PRIVATE void* checkcSymPrivate = 0;
18PUBLIC void* checkcSymPublic = 0;
19
20PRIVATE void* checkcFnPrivate(void) {
21 return &checkcSymPrivate;
22}
23
24PUBLIC void* checkcFnPublic(void) {
25 return &checkcSymPublic;
26}
27
28PRIVATE void checkconfirmC(void) {
29 assert (&checksmlFnPrivate == checksmlSymPrivate);
30 assert (&checksmlFnPublic == checksmlSymPublic);
31 assert (&checkcFnPrivate == checkcSymPrivate);
32 assert (&checkcFnPublic == checkcSymPublic);
33
34 assert (checksmlFnPrivate() == &checksmlSymPrivate);
35 assert (checksmlFnPublic() == &checksmlSymPublic);
36
37 /* Check libm3 */
38 assert (&libm3smlFnPublic == libm3smlSymPublic);
39 assert (&libm3cFnPublic == libm3cSymPublic);
40 assert (libm3smlFnPublic() == &libm3smlSymPublic);
41 assert (libm3cFnPublic() == &libm3cSymPublic);
42
43 /* Check libm4 */
44 assert (&libm4smlFnPublic == libm4smlSymPublic);
45 assert (&libm4cFnPublic == libm4cSymPublic);
46 assert (libm4smlFnPublic() == &libm4smlSymPublic);
47 assert (libm4cFnPublic() == &libm4cSymPublic);
48
49 /* Check libm5 */
50 assert (&libm5smlFnPublic == libm5smlSymPublic);
51 assert (&libm5cFnPublic == libm5cSymPublic);
52 assert (libm5smlFnPublic() == &libm5smlSymPublic);
53 assert (libm5cFnPublic() == &libm5cSymPublic);
54}