diff --git a/include/misc.h b/include/misc.h index e37a858..d5fa0e2 100644 --- a/include/misc.h +++ b/include/misc.h @@ -46,13 +46,13 @@ extern Object False2; /* Align heap addresses */ #ifdef ALIGN_8BYTE -# define ALIGN(ptr) ((ptr) = (void *)(((ptrdiff_t)(ptr) + 7) & ~7)) +# define ALIGN(ptr) ((ptr) = (void *)(((intptr_t)(ptr) + 7) & ~7)) #else -# define ALIGN(ptr) ((ptr) = (void *)(((ptrdiff_t)(ptr) + 3) & ~3)) +# define ALIGN(ptr) ((ptr) = (void *)(((intptr_t)(ptr) + 3) & ~3)) #endif /* Normalize stack addresses */ -#define NORM(addr) ((ptrdiff_t)(addr) + delta) +#define NORM(addr) ((intptr_t)(addr) + delta) /* Used in special forms: */ diff --git a/include/object.h b/include/object.h index 8734c29..407060b 100644 --- a/include/object.h +++ b/include/object.h @@ -51,8 +51,8 @@ typedef struct { #define FIXNUM(x) ((int)(x).data) #define CHAR(x) ((int)(x).data) -#define POINTER(x) ((void *)(ptrdiff_t)(x).data) -#define SETPOINTER(x,p) ((x).data = (ptrdiff_t)(void *)(p)) +#define POINTER(x) ((void *)(intptr_t)(x).data) +#define SETPOINTER(x,p) ((x).data = (intptr_t)(void *)(p)) #define SET(x,t,p) ((x).tag = (int)t << 1, (x).data = (p)) #define ISCONST(x) ((x).tag & CONSTBIT) @@ -68,9 +68,9 @@ typedef struct { #ifdef GENERATIONAL_GC typedef int gcspace_t; /* type for space and type arrays */ - typedef ptrdiff_t gcptr_t; /* type for pointers */ + typedef intptr_t gcptr_t; /* type for pointers */ typedef long int pageno_t; /* type for page numbers */ - typedef ptrdiff_t addrarith_t; /* type for address arithmetic */ + typedef intptr_t addrarith_t; /* type for address arithmetic */ extern gcspace_t *space; extern gcspace_t current_space; @@ -237,7 +237,7 @@ struct S_Control { Object gcsave; /* vector */ WIND *firstwind, *lastwind; int tailcall; - ptrdiff_t delta; + intptr_t delta; #ifdef GENERATIONAL_GC int reloc; #endif diff --git a/src/dump-elf.c b/src/dump-elf.c index c39b69b..81aaffe 100644 --- a/src/dump-elf.c +++ b/src/dump-elf.c @@ -151,7 +151,7 @@ Object P_Dump (Object ofile) { Primitive_Error ("sbrk(0) failed: ~E"); } ndata = obssp->sh_addr; - ndatasize = (Elf32_Addr)((ptrdiff_t)Brk_On_Dump - (ptrdiff_t)ndata); + ndatasize = (Elf32_Addr)((intptr_t)Brk_On_Dump - (intptr_t)ndata); ndataoff = obssp->sh_offset; /* mmap new a.out file, setup pointers to ELF header, section header @@ -272,7 +272,7 @@ Object P_Dump (Object ofile) { "memory" : "file"); (void)fflush (stdout); #endif if ((sp->sh_flags & (SHF_ALLOC|SHF_WRITE)) == (SHF_ALLOC|SHF_WRITE)) - from = (void *)(ptrdiff_t)sp->sh_addr; + from = (void *)(intptr_t)sp->sh_addr; else from = (void *)(oaddr + sp->sh_offset); if (sp != ndatap && sp->sh_offset >= ndataoff) diff --git a/src/dump.c b/src/dump.c index 9538c1f..15b65af 100644 --- a/src/dump.c +++ b/src/dump.c @@ -109,7 +109,7 @@ void Init_Dump () { return False;\ } -#if defined(ELF) +#if defined(HAVE_ELF) # include "dump-elf.c" #elif defined(ECOFF) # include "dump-ecoff.c" diff --git a/src/env.c b/src/env.c index 23b4ab5..a63e586 100644 --- a/src/env.c +++ b/src/env.c @@ -37,8 +37,8 @@ void Memoize_Frame (Object); void Memoize_Frames (Object, Object); void Forget_Frame (Object); -#define Env_To_List(env, list) SET((list), T_Pair, (ptrdiff_t)POINTER(env)) -#define List_To_Env(list, env) SET((env), T_Environment, (ptrdiff_t)POINTER(list)) +#define Env_To_List(env, list) SET((list), T_Pair, (intptr_t)POINTER(env)) +#define List_To_Env(list, env) SET((env), T_Environment, (intptr_t)POINTER(list)) Object The_Environment, Global_Environment; diff --git a/src/heap-gen.c b/src/heap-gen.c index 3fec8d2..1739d5a 100644 --- a/src/heap-gen.c +++ b/src/heap-gen.c @@ -528,7 +528,7 @@ void Make_Heap (int size) { else aligned_heap_ptr = heap_ptr; - SET(heap_obj, 0, (ptrdiff_t)aligned_heap_ptr); + SET(heap_obj, 0, (intptr_t)aligned_heap_ptr); #ifdef ARRAY_BROKEN pagebase = ((gcptr_t)POINTER (heap_obj)) / PAGEBYTES; @@ -620,7 +620,7 @@ static int ExpandHeap (char *reason) { else aligned_heap_ptr = heap_ptr; - SET(heap_obj, 0, (ptrdiff_t)aligned_heap_ptr); + SET(heap_obj, 0, (intptr_t)aligned_heap_ptr); new_first = firstpage; new_last = lastpage; @@ -931,7 +931,7 @@ Object Alloc_Object (size, type, konst) { MAKE_HEADER (*current_freep, s, type); current_freep++; *current_freep = Null; - SET (obj, type, (ptrdiff_t)current_freep); + SET (obj, type, (intptr_t)current_freep); if (big) current_freep = (Object*)0, current_free = 0; else @@ -1038,7 +1038,7 @@ int Visit (register Object *cp) { if (WAS_FORWARDED (*cp)) { if (pageaddr != 0) PROTECT (pageaddr); - MAKEOBJ (*cp, tag, (ptrdiff_t)POINTER(*obj_ptr)); + MAKEOBJ (*cp, tag, (intptr_t)POINTER(*obj_ptr)); if (konst) SETCONST (*cp); return 0; @@ -1111,8 +1111,8 @@ do_forward: MAKE_HEADER (*forward_freep, objwords, tag); forward_freep++; memcpy (forward_freep, obj_ptr, (objwords-1)*sizeof(Object)); - SET (*obj_ptr, T_Broken_Heart, (ptrdiff_t)forward_freep); - MAKEOBJ (*cp, tag, (ptrdiff_t)forward_freep); + SET (*obj_ptr, T_Broken_Heart, (intptr_t)forward_freep); + MAKEOBJ (*cp, tag, (intptr_t)forward_freep); if (konst) SETCONST (*cp); forward_freep += (objwords - 1); @@ -1155,7 +1155,7 @@ static void ScanPage (Object *currentp, Object *nextcp) { * words. */ - SET(obj, t, (ptrdiff_t)cp); + SET(obj, t, (intptr_t)cp); switch (t) { case T_Symbol: @@ -1560,7 +1560,7 @@ static void General_Collect (int initiate) { fpage = next (fpage); } current_freep = (Object *)PHYSPAGE (fpage); - SET(obj, 0, (ptrdiff_t)current_freep); + SET(obj, 0, (intptr_t)current_freep); current_freepage = OBJ_TO_PAGE (obj); /* advance spaces. Then forward all objects directly accessible diff --git a/src/heap.c b/src/heap.c index e97302d..0a22d3d 100644 --- a/src/heap.c +++ b/src/heap.c @@ -84,7 +84,7 @@ void Call_After_GC () { p->func(); } -void Visit_GC_List (GCNODE *list, ptrdiff_t delta) { +void Visit_GC_List (GCNODE *list, intptr_t delta) { register GCNODE *gp, *p; register int n; register Object *vec; @@ -101,7 +101,7 @@ void Visit_GC_List (GCNODE *list, ptrdiff_t delta) { } } -void Visit_Wind (WIND *list, ptrdiff_t delta) { +void Visit_Wind (WIND *list, intptr_t delta) { register WIND *wp, *p; for (wp = list; wp; wp = p->next) { diff --git a/src/libelk.c b/src/libelk.c index a49d59d..3e295ec 100644 --- a/src/libelk.c +++ b/src/libelk.c @@ -209,13 +209,13 @@ int main (int ac, char **av) { fprintf (stderr, "Can't restart dumped interpreter from a different machine architecture\n"); fprintf (stderr, -" (Stack delta = %lld bytes).\n", (long long int)(ptrdiff_t)(stkbase - &foo)); +" (Stack delta = %lld bytes).\n", (long long int)(intptr_t)(stkbase - &foo)); exit (1); } /* Check if program break must be reset. */ - if ((ptrdiff_t)Brk_On_Dump && (ptrdiff_t)brk (Brk_On_Dump) - == (ptrdiff_t)-1) { + if ((intptr_t)Brk_On_Dump && (intptr_t)brk (Brk_On_Dump) + == (intptr_t)-1) { perror ("brk"); exit (1); } #if defined(HP9K) && defined(CAN_DUMP) && defined(HPSHLIB)