From: Jan Engelhardt build: fix compiler warnings about casting across different-size types p_saveg.c: In function 'P_ArchivePlayers': p_saveg.c:66:9: warning: cast from pointer to integer of different size [...] --- src/g_overflow.c | 3 ++- src/p_saveg.c | 31 ++++++++++++++++--------------- src/r_drawflush.inl | 4 +++- 3 files changed, 21 insertions(+), 17 deletions(-) Index: prboom2/src/g_overflow.c =================================================================== --- prboom2.orig/src/g_overflow.c +++ prboom2/src/g_overflow.c @@ -35,6 +35,7 @@ #include "config.h" #endif +#include #include #include @@ -170,7 +171,7 @@ void InterceptsOverrun(int num_intercept InterceptsMemoryOverrun(location, intercept->frac); InterceptsMemoryOverrun(location + 4, intercept->isaline); - InterceptsMemoryOverrun(location + 8, (int) intercept->d.thing); + InterceptsMemoryOverrun(location + 8, (uintptr_t) intercept->d.thing); } } } Index: prboom2/src/p_saveg.c =================================================================== --- prboom2.orig/src/p_saveg.c +++ prboom2/src/p_saveg.c @@ -31,6 +31,7 @@ * *-----------------------------------------------------------------------------*/ +#include #include "doomstat.h" #include "r_main.h" #include "p_maputl.h" @@ -48,7 +49,7 @@ byte *save_p; // Pads save_p to a 4-byte boundary // so that the load/save works on SGI&Gecko. -#define PADSAVEP() do { save_p += (4 - ((int) save_p & 3)) & 3; } while (0) +#define PADSAVEP() do { save_p += (4 - ((uintptr_t) save_p & 3)) & 3; } while (0) // // P_ArchivePlayers // @@ -99,7 +100,7 @@ void P_UnArchivePlayers (void) for (j=0 ; jnext) if (th->function == P_MobjThinker) - th->prev = (thinker_t *) ++number_of_thinkers; + th->prev = (thinker_t *)(uintptr_t) ++number_of_thinkers; } // phares 9/13/98: Moved this code outside of P_ArchiveThinkers so the @@ -474,10 +475,10 @@ void P_UnArchiveThinkers (void) memcpy (mobj, save_p, sizeof(mobj_t)); save_p += sizeof(mobj_t); - mobj->state = states + (int) mobj->state; + mobj->state = states + (uintptr_t) mobj->state; if (mobj->player) - (mobj->player = &players[(int) mobj->player - 1]) -> mo = mobj; + (mobj->player = &players[(uintptr_t) mobj->player - 1]) -> mo = mobj; P_SetThingPosition (mobj); mobj->info = &mobjinfo[mobj->type]; @@ -799,7 +800,7 @@ void P_UnArchiveSpecials (void) ceiling_t *ceiling = Z_Malloc (sizeof(*ceiling), PU_LEVEL, NULL); memcpy (ceiling, save_p, sizeof(*ceiling)); save_p += sizeof(*ceiling); - ceiling->sector = §ors[(int)ceiling->sector]; + ceiling->sector = §ors[(uintptr_t)ceiling->sector]; ceiling->sector->ceilingdata = ceiling; //jff 2/22/98 if (ceiling->thinker.function) @@ -816,10 +817,10 @@ void P_UnArchiveSpecials (void) vldoor_t *door = Z_Malloc (sizeof(*door), PU_LEVEL, NULL); memcpy (door, save_p, sizeof(*door)); save_p += sizeof(*door); - door->sector = §ors[(int)door->sector]; + door->sector = §ors[(uintptr_t)door->sector]; //jff 1/31/98 unarchive line remembered by door as well - door->line = (int)door->line!=-1? &lines[(int)door->line] : NULL; + door->line = (uintptr_t)door->line!=-1? &lines[(uintptr_t)door->line] : NULL; door->sector->ceilingdata = door; //jff 2/22/98 door->thinker.function = T_VerticalDoor; @@ -833,7 +834,7 @@ void P_UnArchiveSpecials (void) floormove_t *floor = Z_Malloc (sizeof(*floor), PU_LEVEL, NULL); memcpy (floor, save_p, sizeof(*floor)); save_p += sizeof(*floor); - floor->sector = §ors[(int)floor->sector]; + floor->sector = §ors[(uintptr_t)floor->sector]; floor->sector->floordata = floor; //jff 2/22/98 floor->thinker.function = T_MoveFloor; P_AddThinker (&floor->thinker); @@ -846,7 +847,7 @@ void P_UnArchiveSpecials (void) plat_t *plat = Z_Malloc (sizeof(*plat), PU_LEVEL, NULL); memcpy (plat, save_p, sizeof(*plat)); save_p += sizeof(*plat); - plat->sector = §ors[(int)plat->sector]; + plat->sector = §ors[(uintptr_t)plat->sector]; plat->sector->floordata = plat; //jff 2/22/98 if (plat->thinker.function) @@ -863,7 +864,7 @@ void P_UnArchiveSpecials (void) lightflash_t *flash = Z_Malloc (sizeof(*flash), PU_LEVEL, NULL); memcpy (flash, save_p, sizeof(*flash)); save_p += sizeof(*flash); - flash->sector = §ors[(int)flash->sector]; + flash->sector = §ors[(uintptr_t)flash->sector]; flash->thinker.function = T_LightFlash; P_AddThinker (&flash->thinker); break; @@ -875,7 +876,7 @@ void P_UnArchiveSpecials (void) strobe_t *strobe = Z_Malloc (sizeof(*strobe), PU_LEVEL, NULL); memcpy (strobe, save_p, sizeof(*strobe)); save_p += sizeof(*strobe); - strobe->sector = §ors[(int)strobe->sector]; + strobe->sector = §ors[(uintptr_t)strobe->sector]; strobe->thinker.function = T_StrobeFlash; P_AddThinker (&strobe->thinker); break; @@ -887,7 +888,7 @@ void P_UnArchiveSpecials (void) glow_t *glow = Z_Malloc (sizeof(*glow), PU_LEVEL, NULL); memcpy (glow, save_p, sizeof(*glow)); save_p += sizeof(*glow); - glow->sector = §ors[(int)glow->sector]; + glow->sector = §ors[(uintptr_t)glow->sector]; glow->thinker.function = T_Glow; P_AddThinker (&glow->thinker); break; @@ -899,7 +900,7 @@ void P_UnArchiveSpecials (void) fireflicker_t *flicker = Z_Malloc (sizeof(*flicker), PU_LEVEL, NULL); memcpy (flicker, save_p, sizeof(*flicker)); save_p += sizeof(*flicker); - flicker->sector = §ors[(int)flicker->sector]; + flicker->sector = §ors[(uintptr_t)flicker->sector]; flicker->thinker.function = T_FireFlicker; P_AddThinker (&flicker->thinker); break; @@ -912,7 +913,7 @@ void P_UnArchiveSpecials (void) elevator_t *elevator = Z_Malloc (sizeof(*elevator), PU_LEVEL, NULL); memcpy (elevator, save_p, sizeof(*elevator)); save_p += sizeof(*elevator); - elevator->sector = §ors[(int)elevator->sector]; + elevator->sector = §ors[(uintptr_t)elevator->sector]; elevator->sector->floordata = elevator; //jff 2/22/98 elevator->sector->ceilingdata = elevator; //jff 2/22/98 elevator->thinker.function = T_MoveElevator; Index: prboom2/src/r_drawflush.inl =================================================================== --- prboom2.orig/src/r_drawflush.inl +++ prboom2/src/r_drawflush.inl @@ -28,6 +28,8 @@ * *-----------------------------------------------------------------------------*/ +#include + #if (R_DRAWCOLUMN_PIPELINE_BITS == 8) #define SCREENTYPE byte #define TOPLEFT byte_topleft @@ -250,7 +252,7 @@ static void R_FLUSHQUAD_FUNCNAME(void) } #else #if (R_DRAWCOLUMN_PIPELINE_BITS == 8) - if ((sizeof(int) == 4) && (((int)source % 4) == 0) && (((int)dest % 4) == 0)) { + if ((sizeof(int) == 4) && (((uintptr_t)source % 4) == 0) && (((uintptr_t)dest % 4) == 0)) { while(--count >= 0) { *(int *)dest = *(int *)source;