File: check.c

package info (click to toggle)
mlton 20130715-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 60,900 kB
  • ctags: 69,386
  • sloc: xml: 34,418; ansic: 17,399; lisp: 2,879; makefile: 1,605; sh: 1,254; pascal: 256; python: 143; asm: 97
file content (54 lines) | stat: -rw-r--r-- 1,610 bytes parent folder | download | duplicates (5)
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
53
54
#include <assert.h>

#include "check.h"
#include "m5.h"
#include "m4.h"
#define DYNAMIC_LINK_M3
#include "m3.h"

extern EXTERNAL void* libm3cSymPublic;
extern EXTERNAL void* libm3cFnPublic(void);
extern EXTERNAL void* libm4cSymPublic;
extern EXTERNAL void* libm4cFnPublic(void);

extern PUBLIC void* libm5cSymPublic;
extern PUBLIC void* libm5cFnPublic(void);

PRIVATE void* checkcSymPrivate = 0;
PUBLIC  void* checkcSymPublic  = 0;

PRIVATE void* checkcFnPrivate(void) {
  return &checkcSymPrivate;
}

PUBLIC void* checkcFnPublic(void) {
  return &checkcSymPublic;
}

PRIVATE void checkconfirmC(void) {
  assert (&checksmlFnPrivate == checksmlSymPrivate);
  assert (&checksmlFnPublic  == checksmlSymPublic);
  assert (&checkcFnPrivate   == checkcSymPrivate);
  assert (&checkcFnPublic    == checkcSymPublic);
  
  assert (checksmlFnPrivate() == &checksmlSymPrivate);
  assert (checksmlFnPublic()  == &checksmlSymPublic);
  
  /* Check libm3 */
  assert (&libm3smlFnPublic  == libm3smlSymPublic);
  assert (&libm3cFnPublic    == libm3cSymPublic);
  assert (libm3smlFnPublic() == &libm3smlSymPublic);
  assert (libm3cFnPublic()   == &libm3cSymPublic);
  
  /* Check libm4 */
  assert (&libm4smlFnPublic  == libm4smlSymPublic);
  assert (&libm4cFnPublic    == libm4cSymPublic);
  assert (libm4smlFnPublic() == &libm4smlSymPublic);
  assert (libm4cFnPublic()   == &libm4cSymPublic);
  
  /* Check libm5 */
  assert (&libm5smlFnPublic  == libm5smlSymPublic);
  assert (&libm5cFnPublic    == libm5cSymPublic);
  assert (libm5smlFnPublic() == &libm5smlSymPublic);
  assert (libm5cFnPublic()   == &libm5cSymPublic);
}