File: libm2.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 (36 lines) | stat: -rw-r--r-- 968 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
#include <assert.h>

#define PART_OF_M2
#include "m2.h"
#define STATIC_LINK_M1
#include "m1.h"

extern PUBLIC void* libm1cSymPublic;
extern PUBLIC void* libm1cFnPublic(void);

PRIVATE void* libm2cSymPrivate = 0;
PUBLIC  void* libm2cSymPublic  = 0;

PRIVATE void* libm2cFnPrivate(void) {
  return &libm2cSymPrivate;
}

PUBLIC void* libm2cFnPublic(void) {
  return &libm2cSymPublic;
}

PRIVATE void libm2confirmC(void) {
  assert (&libm2smlFnPrivate == libm2smlSymPrivate);
  assert (&libm2smlFnPublic  == libm2smlSymPublic);
  assert (&libm2cFnPrivate   == libm2cSymPrivate);
  assert (&libm2cFnPublic    == libm2cSymPublic);
  
  assert (libm2smlFnPrivate() == &libm2smlSymPrivate);
  assert (libm2smlFnPublic()  == &libm2smlSymPublic);
  
  /* Check libm1 */
  assert (&libm1smlFnPublic  == libm1smlSymPublic);
  assert (&libm1cFnPublic    == libm1cSymPublic);
  assert (libm1smlFnPublic() == &libm1smlSymPublic);
  assert (libm1cFnPublic()   == &libm1cSymPublic);
}