From 4ee202d5cffd73e73311b889ea1ce51a2b8cc7eb Mon Sep 17 00:00:00 2001 From: David Lovemore Date: Thu, 3 May 2012 15:17:04 +0100 Subject: [PATCH] Adding casts to varargs in diagnostic output Copied from Perforce Change: 178092 ServerID: perforce.ravenbrook.com --- mps/code/arenavm.c | 41 +++++++++++++++++++++++++---------------- mps/code/diag.c | 32 ++++++++++++++++---------------- mps/code/locus.c | 6 +++--- mps/code/poolamc.c | 44 ++++++++++++++++++++++---------------------- mps/code/trace.c | 20 ++++++++++---------- mps/code/vmix.c | 8 ++++++-- 6 files changed, 82 insertions(+), 69 deletions(-) diff --git a/mps/code/arenavm.c b/mps/code/arenavm.c index 40a4d28a9b7..71e828e27c6 100644 --- a/mps/code/arenavm.c +++ b/mps/code/arenavm.c @@ -1086,9 +1086,10 @@ static Res vmArenaExtend(VMArena vmArena, Size size) DIAG_SINGLEF(( "vmArenaExtend_Start", - "to accommodate size $W, try chunkSize $W", size, chunkSize, + "to accommodate size $W, try chunkSize $W", (WriteFW)size, (WriteFW)chunkSize, " (VMArenaReserved currently $W bytes)\n", - VMArenaReserved(VMArena2Arena(vmArena)), NULL )); + (WriteFW)VMArenaReserved(VMArena2Arena(vmArena)), + NULL )); /* .chunk-create.fail: If we fail, try again with a smaller size */ { @@ -1111,9 +1112,10 @@ static Res vmArenaExtend(VMArena vmArena, Size size) for(; chunkSize > chunkHalf; chunkSize -= sliceSize) { if(chunkSize < chunkMin) { DIAG_SINGLEF(( "vmArenaExtend_FailMin", - "no remaining address-space chunk >= min($W)", chunkMin, + "no remaining address-space chunk >= min($W)", (WriteFW)chunkMin, " (so VMArenaReserved remains $W bytes)\n", - VMArenaReserved(VMArena2Arena(vmArena)), NULL )); + (WriteFW)VMArenaReserved(VMArena2Arena(vmArena)), + NULL )); return ResRESOURCE; } res = VMChunkCreate(&newChunk, vmArena, chunkSize); @@ -1126,9 +1128,10 @@ static Res vmArenaExtend(VMArena vmArena, Size size) vmArenaExtend_Done: DIAG_SINGLEF(( "vmArenaExtend_Done", - "Request for new chunk of VM $W bytes succeeded", chunkSize, + "Request for new chunk of VM $W bytes succeeded", (WriteFW)chunkSize, " (VMArenaReserved now $W bytes)\n", - VMArenaReserved(VMArena2Arena(vmArena)), NULL )); + (WriteFW)VMArenaReserved(VMArena2Arena(vmArena)), + NULL )); return res; } @@ -1689,16 +1692,22 @@ static void VMCompact(Arena arena, Trace trace) || vmem0 != vmem1 || vmem1 != vmem2) { DIAG_SINGLEF(( "VMCompact", - "pre-collection vmem was $Um$3, ", M_whole(vmem0), M_frac(vmem0), - "peaked at $Um$3, ", M_whole(vmem1), M_frac(vmem1), - "released $Um$3, ", M_whole(vmemD), M_frac(vmemD), - "now $Um$3", M_whole(vmem2), M_frac(vmem2), - " (why $U", trace->why, - ": $Um$3", M_whole(trace->condemned), M_frac(trace->condemned), - "[->$Um$3", M_whole(live), M_frac(live), - " $U%-live", livePerc, - " $Um$3-stuck]", M_whole(trace->preservedInPlaceSize), M_frac(trace->preservedInPlaceSize), - " ($Um$3-not)", M_whole(trace->notCondemned), M_frac(trace->notCondemned), + "pre-collection vmem was $Um$3, ", + (WriteFU)M_whole(vmem0), (WriteFU)M_frac(vmem0), + "peaked at $Um$3, ", (WriteFU)M_whole(vmem1), (WriteFU)M_frac(vmem1), + "released $Um$3, ", (WriteFU)M_whole(vmemD), (WriteFU)M_frac(vmemD), + "now $Um$3", (WriteFU)M_whole(vmem2), (WriteFU)M_frac(vmem2), + " (why $U", (WriteFU)trace->why, + ": $Um$3", + (WriteFU)M_whole(trace->condemned), (WriteFU)M_frac(trace->condemned), + "[->$Um$3", (WriteFU)M_whole(live), (WriteFU)M_frac(live), + " $U%-live", (WriteFU)livePerc, + " $Um$3-stuck]", + (WriteFU)M_whole(trace->preservedInPlaceSize), + (WriteFU)M_frac(trace->preservedInPlaceSize), + " ($Um$3-not)", + (WriteFU)M_whole(trace->notCondemned), + (WriteFU)M_frac(trace->notCondemned), " )", NULL)); } diff --git a/mps/code/diag.c b/mps/code/diag.c index 03d95492c90..1cca976da03 100644 --- a/mps/code/diag.c +++ b/mps/code/diag.c @@ -194,7 +194,7 @@ enum { static void version_diag(void) { DIAG_SINGLEF(( "MPSVersion", - "$S", MPSVersion(), NULL )); + "$S", (WriteFS)MPSVersion(), NULL )); } static void rules_diag(Rule rules) @@ -207,8 +207,8 @@ static void rules_diag(Rule rules) " rules:\n", NULL )); for(ir = 0; rules[ir].action != NULL; ir++) { DIAG_DECL( Rule rule = &rules[ir]; ) - DIAG_MOREF(( "$S$S/$S/$S\n", rule->action, rule->tag, - rule->para, rule->line, + DIAG_MOREF(( "$S$S/$S/$S\n", (WriteFS)rule->action, (WriteFS)rule->tag, + (WriteFS)rule->para, (WriteFS)rule->line, NULL )); } DIAG_END("DiagFilter_Rules"); @@ -378,7 +378,7 @@ static void filterStream_Output(Diag diag, Rule rules) if(rules[ir].action[0] == '+' || diag->overflow) { if(nolinesyet) { res = WriteF(filterStream_under(), - DIAG_PREFIX_TAGSTART "$S {", diag->tag, NULL); + DIAG_PREFIX_TAGSTART "$S {", (WriteFS)diag->tag, NULL); AVER(res == ResOK); nolinesyet = FALSE; } @@ -452,7 +452,7 @@ static void filterStream_TagEnd(mps_lib_FILE *stream, const char *tag) (void) WriteF(filterStream_under(), "\nWARNING: diag tag \"$S\" is current, " "but got DIAG_END(\"$S\"). (They must match).", - diag->tag, tag, NULL); + (WriteFS)diag->tag, (WriteFS)tag, NULL); } AVER(StringEqual(diag->tag, tag)); @@ -551,7 +551,7 @@ static void diagTagBegin(mps_lib_FILE *stream, const char *tag) filterStream_TagBegin(stream, tag); } else { Res res; - res = WriteF(stream, DIAG_PREFIX_TAGSTART "$S {\n", tag, NULL); + res = WriteF(stream, DIAG_PREFIX_TAGSTART "$S {\n", (WriteFS)tag, NULL); AVER(res == ResOK); } } @@ -672,7 +672,7 @@ static void patternOccurs_test(Bool expect, const char *patt, static void diag_test(void) { - DIAG_SINGLEF(( "DIAGTEST_Tag1", "text $U.\n", 42, NULL )); + DIAG_SINGLEF(( "DIAGTEST_Tag1", "text $U.\n", (WriteFU)42, NULL )); DIAG_SINGLEF(( "DIAGTEST_EmptyDiag", NULL )); @@ -682,12 +682,12 @@ static void diag_test(void) StringEqual("Fred", "Fred"), NULL )); - DIAG_MOREF(("Fred = Tom: $U.\n", StringEqual("Fred", "Tom"), NULL)); - DIAG_MOREF(("Tom = Fred: $U.\n", StringEqual("Tom", "Fred"), NULL)); - DIAG_MOREF(("0 = Fred: $U.\n", StringEqual("", "Fred"), NULL)); - DIAG_MOREF(("Fred = 0: $U.\n", StringEqual("Fred", ""), NULL)); - DIAG_MOREF(("0 = 0: $U.\n", StringEqual("", ""), NULL)); - DIAG_MOREF(("0 = 000: $U.\n", StringEqual("", "\0\0"), NULL)); + DIAG_MOREF(("Fred = Tom: $U.\n", (WriteFU)StringEqual("Fred", "Tom"), NULL)); + DIAG_MOREF(("Tom = Fred: $U.\n", (WriteFU)StringEqual("Tom", "Fred"), NULL)); + DIAG_MOREF(("0 = Fred: $U.\n", (WriteFU)StringEqual("", "Fred"), NULL)); + DIAG_MOREF(("Fred = 0: $U.\n", (WriteFU)StringEqual("Fred", ""), NULL)); + DIAG_MOREF(("0 = 0: $U.\n", (WriteFU)StringEqual("", ""), NULL)); + DIAG_MOREF(("0 = 000: $U.\n", (WriteFU)StringEqual("", "\0\0"), NULL)); DIAG_END("DIAGTEST_StringEqual"); DIAG_FIRSTF(( "DIAGTEST_patternOccurs", NULL )); @@ -718,11 +718,11 @@ static void diag_test(void) DIAG_END("DIAGTEST_patternOccurs"); #if 0 - DIAG_FIRSTF(( "TestTag2", "text $U.\n", 42, NULL )); + DIAG_FIRSTF(( "TestTag2", "text $U.\n", (WriteFU)42, NULL )); DIAG_MOREF(( NULL )); - DIAG_MOREF(( "string $S.\n", "fooey!", NULL )); + DIAG_MOREF(( "string $S.\n", (WriteFS)"fooey!", NULL )); DIAG_MOREF(( NULL )); - DIAG_MOREF(( "Another string $S.\n", "baloney!", NULL )); + DIAG_MOREF(( "Another string $S.\n", (WriteFS)"baloney!", NULL )); DIAG_END( "TestTag2" ); #endif } diff --git a/mps/code/locus.c b/mps/code/locus.c index 2c94d0f71b3..56e7a1208c6 100644 --- a/mps/code/locus.c +++ b/mps/code/locus.c @@ -296,9 +296,9 @@ Res ChainCondemnAuto(double *mortalityReturn, Chain chain, Trace trace) } while (genNewSize >= gen->capacity * (Size)1024); DIAG_SINGLEF(( "ChainCondemnAuto", - "condemn gens [0..$U]", topCondemnedGenSerial, - " (of $U)", chain->genCount, - " of this chain $P.", (void*)chain, + "condemn gens [0..$U]", (WriteFU)topCondemnedGenSerial, + " (of $U)", (WriteFU)chain->genCount, + " of this chain $P.", (WriteFP)chain, NULL )); /* Condemn everything in these zones. */ diff --git a/mps/code/poolamc.c b/mps/code/poolamc.c index fc33cbbe548..a2e429da7cb 100644 --- a/mps/code/poolamc.c +++ b/mps/code/poolamc.c @@ -2219,28 +2219,28 @@ static void AMCTraceEnd(Pool pool, Trace trace) if(amc->pageretstruct[ti].pRet >= pRetMin) { DIAG_SINGLEF(( "AMCTraceEnd_pageret", - " $U", ArenaEpoch(pool->arena), - " $U", trace->why, - " $S", trace->emergency ? "Emergency" : "-", - " $U", amc->pageretstruct[ti].pCond, - " $U", amc->pageretstruct[ti].pRet, ",", - " $U", amc->pageretstruct[ti].pCS, - " $U", amc->pageretstruct[ti].pRS, ",", - " $U", amc->pageretstruct[ti].sCM, - " $U", amc->pageretstruct[ti].pCM, - " $U", amc->pageretstruct[ti].sRM, - " $U", amc->pageretstruct[ti].pRM, - " $U", amc->pageretstruct[ti].pRM1, - " $U", amc->pageretstruct[ti].pRMrr, - " $U", amc->pageretstruct[ti].pRMr1, ",", - " $U", amc->pageretstruct[ti].sCL, - " $U", amc->pageretstruct[ti].pCL, - " $U", amc->pageretstruct[ti].sRL, - " $U", amc->pageretstruct[ti].pRL, - " $U", amc->pageretstruct[ti].pRLr, - " (page = $Ub,", ArenaAlign(pool->arena), - " Large >= $Up,", AMCLargeSegPAGES, - " pRetMin $U)", pRetMin, + " $U", (WriteFU)ArenaEpoch(pool->arena), + " $U", (WriteFU)trace->why, + " $S", (WriteFS)(trace->emergency ? "Emergency" : "-"), + " $U", (WriteFU)amc->pageretstruct[ti].pCond, + " $U", (WriteFU)amc->pageretstruct[ti].pRet, ",", + " $U", (WriteFU)amc->pageretstruct[ti].pCS, + " $U", (WriteFU)amc->pageretstruct[ti].pRS, ",", + " $U", (WriteFU)amc->pageretstruct[ti].sCM, + " $U", (WriteFU)amc->pageretstruct[ti].pCM, + " $U", (WriteFU)amc->pageretstruct[ti].sRM, + " $U", (WriteFU)amc->pageretstruct[ti].pRM, + " $U", (WriteFU)amc->pageretstruct[ti].pRM1, + " $U", (WriteFU)amc->pageretstruct[ti].pRMrr, + " $U", (WriteFU)amc->pageretstruct[ti].pRMr1, ",", + " $U", (WriteFU)amc->pageretstruct[ti].sCL, + " $U", (WriteFU)amc->pageretstruct[ti].pCL, + " $U", (WriteFU)amc->pageretstruct[ti].sRL, + " $U", (WriteFU)amc->pageretstruct[ti].pRL, + " $U", (WriteFU)amc->pageretstruct[ti].pRLr, + " (page = $Ub,", (WriteFU)ArenaAlign(pool->arena), + " Large >= $Up,", (WriteFU)AMCLargeSegPAGES, + " pRetMin $U)", (WriteFU)pRetMin, NULL )); } diff --git a/mps/code/trace.c b/mps/code/trace.c index e553d160318..6e8c8b262b0 100644 --- a/mps/code/trace.c +++ b/mps/code/trace.c @@ -309,7 +309,7 @@ static void traceSetSignalEmergency(TraceSet ts, Arena arena) Trace trace; DIAG_SINGLEF(( "traceSetSignalEmergency", - "traceSet: $B", ts, NULL )); + "traceSet: $B", (WriteFB)ts, NULL )); TRACE_SET_ITER(ti, trace, ts, arena) trace->emergency = TRUE; @@ -1527,20 +1527,20 @@ static void TraceStartGenDesc_diag(GenDesc desc, int i) NULL )); } else { DIAG_WRITEF(( DIAG_STREAM, - " GenDesc [$U]", i, + " GenDesc [$U]", (WriteFU)i, NULL )); } DIAG_WRITEF(( DIAG_STREAM, " $P capacity: $U KiB, mortality $D\n", - (void *)desc, desc->capacity, desc->mortality, - " ZoneSet:$B\n", desc->zones, + (WriteFP)desc, (WriteFU)desc->capacity, (WriteFD)desc->mortality, + " ZoneSet:$B\n", (WriteFB)desc->zones, NULL )); RING_FOR(n, &desc->locusRing, nn) { DIAG_DECL( PoolGen gen = RING_ELT(PoolGen, genRing, n); ) DIAG_WRITEF(( DIAG_STREAM, - " PoolGen $U ($S)", gen->nr, gen->pool->class->name, - " totalSize $U", gen->totalSize, - " newSize $U\n", gen->newSizeAtCreate, + " PoolGen $U ($S)", (WriteFU)gen->nr, (WriteFS)gen->pool->class->name, + " totalSize $U", (WriteFU)gen->totalSize, + " newSize $U\n", (WriteFU)gen->newSizeAtCreate, NULL )); } } @@ -1606,14 +1606,14 @@ void TraceStart(Trace trace, double mortality, double finishingTime) DIAG_FIRSTF(( "TraceStart", "because code $U: $S\n", - trace->why, TraceStartWhyToString(trace->why), + (WriteFU)trace->why, (WriteFS)TraceStartWhyToString(trace->why), NULL )); DIAG( ArenaDescribe(arena, DIAG_STREAM); ); DIAG_MOREF(( " white set:$B\n", - trace->white, + (WriteFB)trace->white, NULL )); { @@ -1626,7 +1626,7 @@ void TraceStart(Trace trace, double mortality, double finishingTime) RING_FOR(node, &arena->chainRing, nextNode) { Chain chain = RING_ELT(Chain, chainRing, node); DIAG_WRITEF(( DIAG_STREAM, - " Chain $P\n", (void *)chain, + " Chain $P\n", (WriteFP)chain, NULL )); for(i = 0; i < chain->genCount; ++i) { diff --git a/mps/code/vmix.c b/mps/code/vmix.c index 71f6354a32c..f5ba622f7c9 100644 --- a/mps/code/vmix.c +++ b/mps/code/vmix.c @@ -164,7 +164,9 @@ Res VMCreate(VM *vmReturn, Size size) DIAG_SINGLEF(( "VM_ix_Create_ok", "[$W..<$W>..$W)", - vm->base, (char*)vm->limit - (char*)vm->base, vm->limit, + (WriteFW)vm->base, + (WriteFW)AddrOffset(vm->base, vm->limit), + (WriteFW)vm->limit, NULL )); *vmReturn = vm; @@ -188,7 +190,9 @@ void VMDestroy(VM vm) DIAG_SINGLEF(( "VM_ix_Destroy", "[$W..<$W>..$W)", - vm->base, (char*)vm->limit - (char*)vm->base, vm->limit, + (WriteFW)vm->base, + (WriteFW)AddrOffset(vm->base, vm->limit), + (WriteFW)vm->limit, NULL )); /* This appears to be pretty pointless, since the descriptor */