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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
$NetBSD: patch-bj,v 1.1.1.1 2003/04/11 00:31:45 uebayasi Exp $
--- ./src/lisp.h.orig Sun Jan 3 08:31:23 1999
+++ ./src/lisp.h Tue Sep 26 09:48:10 2000
@@ -123,25 +123,25 @@
{
/* Used for comparing two Lisp_Objects;
also, positive integers can be accessed fast this way. */
- int i;
+ long int i;
struct
{
- int val: VALBITS;
- int type: GCTYPEBITS+1;
+ long int val: VALBITS;
+ long int type: GCTYPEBITS+1;
} s;
struct
{
- unsigned int val: VALBITS;
- int type: GCTYPEBITS+1;
+ long unsigned int val: VALBITS;
+ long int type: GCTYPEBITS+1;
} u;
struct
{
- unsigned int val: VALBITS;
+ long unsigned int val: VALBITS;
enum Lisp_Type type: GCTYPEBITS;
/* The markbit is not really part of the value of a Lisp_Object,
and is always zero except during garbage collection. */
- unsigned int markbit: 1;
+ long unsigned int markbit: 1;
} gu;
}
Lisp_Object;
@@ -153,17 +153,17 @@
{
/* Used for comparing two Lisp_Objects;
also, positive integers can be accessed fast this way. */
- int i;
+ long int i;
struct
{
- int type: GCTYPEBITS+1;
- int val: VALBITS;
+ long int type: GCTYPEBITS+1;
+ long int val: VALBITS;
} s;
struct
{
- int type: GCTYPEBITS+1;
- unsigned int val: VALBITS;
+ long int type: GCTYPEBITS+1;
+ long unsigned int val: VALBITS;
} u;
struct
{
@@ -171,7 +171,7 @@
and is always zero except during garbage collection. */
unsigned int markbit: 1;
enum Lisp_Type type: GCTYPEBITS;
- unsigned int val: VALBITS;
+ long unsigned int val: VALBITS;
} gu;
}
Lisp_Object;
@@ -270,14 +270,14 @@
/* Extract the value of a Lisp_Object as a signed integer. */
#ifndef XINT /* Some machines need to do this differently. */
-#define XINT(a) (((a) << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS))
+#define XINT(a) (EMACS_INT) (((a) << (BITS_PER_EMACS_INT-VALBITS)) >> (BITS_PER_EMACS_INT-VALBITS))
#endif
/* Extract the value as an unsigned integer. This is a basis
for extracting it as a pointer to a structure in storage. */
#ifndef XUINT
-#define XUINT(a) ((a) & VALMASK)
+#define XUINT(a) (EMACS_UINT) ((a) & VALMASK)
#endif
#ifndef XPNTR
@@ -358,7 +358,7 @@
#ifdef EXPLICIT_SIGN_EXTEND
/* Make sure we sign-extend; compilers have been known to fail to do so. */
-#define XINT(a) (((a).i << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS))
+#define XINT(a) (((a).i << (BITS_PER_EMACS_INT-VALBITS)) >> (BITS_PER_EMACS_INT-VALBITS))
#else
#define XINT(a) ((a).s.val)
#endif /* EXPLICIT_SIGN_EXTEND */
@@ -367,7 +367,7 @@
#define XPNTR(a) ((a).u.val)
#define XSET(var, vartype, ptr) \
- (((var).s.type = ((char) (vartype))), ((var).s.val = ((int) (ptr))))
+ (((var).s.type = ((char) (vartype))), ((var).s.val = ((EMACS_INT) (ptr))))
extern Lisp_Object make_number ();
|