diff -durp cudd-2.4.2.ORIG/cudd/cuddGroup.c cudd-2.4.2/cudd/cuddGroup.c --- cudd-2.4.2.ORIG/cudd/cuddGroup.c 2009-02-21 11:25:01.000000000 -0700 +++ cudd-2.4.2/cudd/cuddGroup.c 2009-05-12 10:20:14.000000000 -0600 @@ -214,7 +214,9 @@ Cudd_MakeTreeNode( ** Cudd_bddNewVarAtLevel or Cudd_addNewVarAtLevel to create new ** variables have to create the variables before they group them. */ - level = (low < (unsigned int) dd->size) ? dd->perm[low] : low; + level = (low < (unsigned int) dd->size) + ? (unsigned int) dd->perm[low] + : low; if (level + size - 1> (int) MTR_MAXHIGH) return(NULL); diff -durp cudd-2.4.2.ORIG/cudd/cuddZddGroup.c cudd-2.4.2/cudd/cuddZddGroup.c --- cudd-2.4.2.ORIG/cudd/cuddZddGroup.c 2009-02-19 19:17:45.000000000 -0700 +++ cudd-2.4.2/cudd/cuddZddGroup.c 2009-05-12 10:20:14.000000000 -0600 @@ -171,7 +171,9 @@ Cudd_MakeZddTreeNode( ** Cudd_bddNewVarAtLevel or Cudd_addNewVarAtLevel to create new ** variables have to create the variables before they group them. */ - level = (low < (unsigned int) dd->sizeZ) ? dd->permZ[low] : low; + level = (low < (unsigned int) dd->sizeZ) + ? (unsigned int) dd->permZ[low] + : low; if (level + size - 1> (int) MTR_MAXHIGH) return(NULL); diff -durp cudd-2.4.2.ORIG/st/st.c cudd-2.4.2/st/st.c --- cudd-2.4.2.ORIG/st/st.c 2004-02-11 15:33:16.000000000 -0700 +++ cudd-2.4.2/st/st.c 2009-05-12 10:20:14.000000000 -0600 @@ -54,7 +54,7 @@ static char rcsid[] UTIL_UNUSED = " $Id: #define st_shift 2 #endif -#define ST_PTRHASH(x,size) ((unsigned int)((unsigned long)(x)>>st_shift)%size) +#define ST_PTRHASH(x,size) ((int)((unsigned long)(x)>>st_shift)%size) #define EQUAL(func, x, y) \ ((((func) == st_numcmp) || ((func) == st_ptrcmp)) ?\