1typedef unsigned long long ULL;
2ULL back;
3ULL hpart, lpart;
4ULL
5build(long h, long l)
6{
7  hpart = h;
8  hpart <<= 32;
9  lpart = l;
10  lpart &= 0xFFFFFFFFLL;
11  back = hpart | lpart;
12  return back;
13}
14
15main()
16{
17  if (build(0, 1) != 0x0000000000000001LL)
18    abort();
19  if (build(0, 0) != 0x0000000000000000LL)
20    abort();
21  if (build(0, 0xFFFFFFFF) != 0x00000000FFFFFFFFLL)
22    abort();
23  if (build(0, 0xFFFFFFFE) != 0x00000000FFFFFFFELL)
24    abort();
25  if (build(1, 1) != 0x0000000100000001LL)
26    abort();
27  if (build(1, 0) != 0x0000000100000000LL)
28    abort();
29  if (build(1, 0xFFFFFFFF) != 0x00000001FFFFFFFFLL)
30    abort();
31  if (build(1, 0xFFFFFFFE) != 0x00000001FFFFFFFELL)
32    abort();
33  if (build(0xFFFFFFFF, 1) != 0xFFFFFFFF00000001LL)
34    abort();
35  if (build(0xFFFFFFFF, 0) != 0xFFFFFFFF00000000LL)
36    abort();
37  if (build(0xFFFFFFFF, 0xFFFFFFFF) != 0xFFFFFFFFFFFFFFFFLL)
38    abort();
39  if (build(0xFFFFFFFF, 0xFFFFFFFE) != 0xFFFFFFFFFFFFFFFELL)
40    abort();
41  exit(0);
42}
43