diff -Naur d4-7/CHANGES d4-7new/CHANGES --- d4-7/CHANGES 1998-02-06 16:03:09.000000000 -0500 +++ d4-7new/CHANGES 2005-10-31 15:44:39.000000000 -0500 @@ -1,3 +1,6 @@ +patch-c++ 31 Oct 2005 + casts to allow compilation with g++-3.2.3 (kbarr at mit dot edu) + version 7 6 Feb 1998 added code to make -skipcount work diff -Naur d4-7/cmdargs.c d4-7new/cmdargs.c --- d4-7/cmdargs.c 1997-12-12 15:36:53.000000000 -0500 +++ d4-7new/cmdargs.c 2005-10-31 15:42:06.000000000 -0500 @@ -585,7 +585,7 @@ void init_1cache (d4cache *c, int lev, int idu) { - c->name = malloc (30); + c->name = (char *) malloc (30); if (c->name == NULL) die ("malloc failure initializing l%d%ccache\n", lev+1, idu==0?'u':(idu==1?'i':'d')); sprintf (c->name, "l%d-%ccache", lev+1, idu==0?'u':(idu==1?'i':'d')); diff -Naur d4-7/cmdmain.c d4-7new/cmdmain.c --- d4-7/cmdmain.c 1998-02-06 15:58:23.000000000 -0500 +++ d4-7new/cmdmain.c 2005-10-31 15:42:06.000000000 -0500 @@ -144,7 +144,7 @@ int x; #if !D4CUSTOM - cust_argv = malloc ((argc+1) * sizeof(argv[0])); + cust_argv = (const char **) malloc ((argc+1) * sizeof(argv[0])); if (cust_argv == NULL) die ("no memory to copy args for possible -custom\n"); #endif @@ -507,7 +507,7 @@ void pval_0arg (const char *opt, const char *arg, const struct arglist *adesc) { - int (*var)[3][MAX_LEV] = adesc->var; + int (*var)[3][MAX_LEV] = static_cast( adesc->var ); int level; int idu; @@ -538,7 +538,7 @@ void pval_uint (const char *opt, const char *arg, const struct arglist *adesc) { - unsigned int (*var)[3][MAX_LEV] = adesc->var; + unsigned int (*var)[3][MAX_LEV] = static_cast( adesc->var ); unsigned int argui; int level; int idu; @@ -558,7 +558,7 @@ void val_scale_uint (const char *opt, const char *arg, const struct arglist *adesc) { - if (!argscale_uint (arg, adesc->var)) + if (!argscale_uint (arg, (unsigned int *)adesc->var)) shorthelp ("bad option: %s %s\n", opt, arg); } @@ -570,7 +570,7 @@ void val_scale_uintd (const char *opt, const char *arg, const struct arglist *adesc) { - if (!argscale_uintd (arg, adesc->var)) + if (!argscale_uintd (arg, (double *)adesc->var)) shorthelp ("bad option: %s %s\n", opt, arg); } @@ -584,7 +584,7 @@ void pval_scale_uint (const char *opt, const char *arg, const struct arglist *adesc) { - unsigned int (*var)[3][MAX_LEV] = adesc->var; + unsigned int (*var)[3][MAX_LEV] = static_cast( adesc->var ); unsigned int argui; int level; int idu; @@ -603,7 +603,7 @@ void val_scale_pow2 (const char *opt, const char *arg, const struct arglist *adesc) { - unsigned int *ui = adesc->var; + unsigned int *ui = (unsigned int *)adesc->var; if (!argscale_uint (arg, ui)) shorthelp ("bad option: %s %s\n", opt, arg); @@ -621,7 +621,7 @@ void pval_scale_pow2 (const char *opt, const char *arg, const struct arglist *adesc) { - unsigned int (*var)[3][MAX_LEV] = adesc->var; + unsigned int (*var)[3][MAX_LEV] = static_cast( adesc->var ); unsigned int argui; int level; int idu; @@ -641,7 +641,7 @@ void val_char (const char *opt, const char *arg, const struct arglist *adesc) { - int *var = adesc->var; + int *var = (int *)adesc->var; if (strlen (arg) != 1) shorthelp ("bad option: %s %s\n", opt, arg); @@ -655,7 +655,7 @@ void pval_char (const char *opt, const char *arg, const struct arglist *adesc) { - int (*var)[3][MAX_LEV] = adesc->var; + int (*var)[3][MAX_LEV] = static_cast( adesc->var ); int level; int idu; @@ -682,7 +682,7 @@ void val_addr (const char *opt, const char *arg, const struct arglist *adesc) { - long *var = adesc->var; + long *var = (long *)adesc->var; long argl; char *nextc; @@ -714,7 +714,7 @@ pcustom_0arg (const struct arglist *adesc, FILE *hfile) { int i, j; - int (*var)[3][MAX_LEV] = adesc->var; + int (*var)[3][MAX_LEV] = static_cast( adesc->var ); fprintf (hfile, "int %s[3][MAX_LEV] = {\n", adesc->customstring); @@ -738,7 +738,7 @@ pcustom_uint (const struct arglist *adesc, FILE *hfile) { int i, j; - unsigned int (*var)[3][MAX_LEV] = adesc->var; + unsigned int (*var)[3][MAX_LEV] = static_cast( adesc->var ); fprintf (hfile, "unsigned int %s[3][MAX_LEV] = {\n", adesc->customstring); @@ -762,7 +762,7 @@ pcustom_char (const struct arglist *adesc, FILE *hfile) { int i, j; - int (*var)[3][MAX_LEV] = adesc->var; + int (*var)[3][MAX_LEV] = static_cast( adesc->var ); fprintf (hfile, "int %s[3][MAX_LEV] = {\n", adesc->customstring); @@ -796,7 +796,7 @@ psummary_0arg (const struct arglist *adesc, FILE *f) { int idu, lev; - int (*var)[3][MAX_LEV] = adesc->var; + int (*var)[3][MAX_LEV] = static_cast( adesc->var ); for (idu = 0; idu < 3; idu++) { for (lev = 0; lev <= maxlevel; lev++) { @@ -838,7 +838,7 @@ psummary_uint (const struct arglist *adesc, FILE *f) { int idu, lev; - unsigned int (*var)[3][MAX_LEV] = adesc->var; + unsigned int (*var)[3][MAX_LEV] = static_cast( adesc->var ); for (idu = 0; idu < 3; idu++) { for (lev = 0; lev <= maxlevel; lev++) { @@ -860,7 +860,7 @@ psummary_luint (const struct arglist *adesc, FILE *f) { int idu, lev; - unsigned int (*var)[3][MAX_LEV] = adesc->var; + unsigned int (*var)[3][MAX_LEV] = static_cast( adesc->var ); for (idu = 0; idu < 3; idu++) { for (lev = 0; lev <= maxlevel; lev++) { @@ -893,7 +893,7 @@ psummary_char (const struct arglist *adesc, FILE *f) { int idu, lev; - int (*var)[3][MAX_LEV] = adesc->var; + int (*var)[3][MAX_LEV] = static_cast( adesc->var ); for (idu = 0; idu < 3; idu++) { for (lev = 0; lev <= maxlevel; lev++) { @@ -1077,7 +1077,7 @@ "(-help option gives usage information).\n\n"); for (adesc = args; adesc->optstring != NULL; adesc++) - if (adesc->sumf != (void (*)())NULL) + if (adesc->sumf != (void (*)(const arglist*, FILE*))NULL) adesc->sumf (adesc, stdout); } @@ -1807,7 +1807,7 @@ int pid = getpid(); struct arglist *adesc; struct stat st; - char *cmdline = malloc(4096); /* XXX add overflow checking or make this more dynamic */ + char *cmdline = (char *) malloc(4096); /* XXX add overflow checking or make this more dynamic */ char *psrc, *plib; int x; @@ -1835,7 +1835,7 @@ psrc = "."; plib = getenv ("D4_LIB"); if (plib == NULL || *plib == 0) { - plib = malloc (strlen(psrc)+strlen("/libd4.a")+1); + plib = (char *) malloc (strlen(psrc)+strlen("/libd4.a")+1); if (plib == NULL) die ("no memory for libd4.a pathname\n"); strcpy (plib, psrc); diff -Naur d4-7/misc.c d4-7new/misc.c --- d4-7/misc.c 1997-12-11 03:08:30.000000000 -0500 +++ d4-7new/misc.c 2005-10-31 15:42:06.000000000 -0500 @@ -77,7 +77,7 @@ d4new (d4cache *larger) { static int nextcacheid = 1; - d4cache *c = calloc (1, sizeof(d4cache)); + d4cache *c = (d4cache *) calloc (1, sizeof(d4cache)); if (c == NULL) return NULL; @@ -197,13 +197,13 @@ /* it looks ok, now initialize */ c->numsets = (1<lg2size) / ((1<lg2blocksize) * c->assoc); - c->stack = calloc (c->numsets+((c->flags&D4F_CCC)!=0), + c->stack = (d4stackhead *) calloc (c->numsets+((c->flags&D4F_CCC)!=0), sizeof(d4stackhead)); if (c->stack == NULL) goto fail10; nnodes = c->numsets * (1 + c->assoc) + (c->numsets * c->assoc + 1) * ((c->flags&D4F_CCC)!=0); - nodes = calloc (nnodes, sizeof(d4stacknode)); + nodes = (d4stacknode *) calloc (nnodes, sizeof(d4stacknode)); if (nodes == NULL) goto fail11; for (i = 0; i < nnodes; i++) @@ -237,7 +237,7 @@ /* make a printable name if the user didn't pick one */ if (c->name == NULL) { - c->name = malloc (30); + c->name = (char *) malloc (30); if (c->name == NULL) goto fail12; sprintf (c->name, "%s%d", @@ -247,7 +247,7 @@ #if D4_HASHSIZE > 0 d4stackhash.size = D4_HASHSIZE; #endif - d4stackhash.table = calloc (d4stackhash.size, sizeof(d4stacknode*)); + d4stackhash.table = (d4stacknode **) calloc (d4stackhash.size, sizeof(d4stacknode*)); if (d4stackhash.table == NULL) goto fail13; return 0; @@ -608,7 +608,7 @@ d4pendfree = m->next; return m; } - m = malloc (sizeof(*m)); /* no need to get too fancy here */ + m = (d4pendstack *) malloc (sizeof(*m)); /* no need to get too fancy here */ if (m != NULL) return m; fprintf (stderr, "DineroIV ***error: no memory for pending mref\n"); diff -Naur d4-7/ref.c d4-7new/ref.c --- d4-7/ref.c 1997-12-11 03:01:23.000000000 -0500 +++ d4-7new/ref.c 2005-10-31 15:42:06.000000000 -0500 @@ -541,9 +541,9 @@ int oldmaxranges = c->maxranges; c->maxranges = (c->maxranges + 10) * 2; if (c->ranges == NULL) /* don't trust realloc(NULL,...) */ - c->ranges = malloc (c->maxranges * sizeof(*c->ranges)); + c->ranges = (d4range *) malloc (c->maxranges * sizeof(*c->ranges)); else - c->ranges = realloc (c->ranges, c->maxranges * sizeof(*c->ranges)); + c->ranges = (d4range *) realloc (c->ranges, c->maxranges * sizeof(*c->ranges)); if (c->ranges == NULL) { fprintf (stderr, "DineroIV: can't allocate more " "bitmap pointers for cache %s (%d so far, total %d)\n", @@ -558,7 +558,7 @@ c->ranges[i+1] = c->ranges[i]; } c->ranges[i+1].addr = sbaddr & ~(D4_BITMAP_RSIZE-1); - c->ranges[i+1].bitmap = calloc ((((D4_BITMAP_RSIZE + sbsize - 1) + c->ranges[i+1].bitmap = (char *) calloc ((((D4_BITMAP_RSIZE + sbsize - 1) / sbsize) + CHAR_BIT - 1) / CHAR_BIT, 1); if (c->ranges[i+1].bitmap == NULL) { fprintf (stderr, "DineroIV: can't allocate another bitmap "