SGC: use PRIdPTR and PRIxPTR

Avoid compiler warnings by using the right format string.
This commit is contained in:
Matthew Flatt 2015-08-12 14:40:51 -06:00
parent 3f53d214c6
commit 02574d2501
5 changed files with 67 additions and 60 deletions

View File

@ -35,7 +35,10 @@ test: $(OBJS) test.@LTO@
gcobjects: $(OBJS)
sgc.@LTO@: $(srcdir)/sgc.c $(srcdir)/autostat.inc $(srcdir)/collect.inc $(srcdir)/../utils/splay.c
EXTRA_DEPS = $(srcdir)/autostat.inc $(srcdir)/collect.inc \
$(srcdir)/../utils/splay.c $(srcdir)/../utils/schiptr.h
sgc.@LTO@: $(srcdir)/sgc.c $(EXTRA_DEPS)
$(CC) $(CFLAGS) $(CPPFLAGS) @OPTIONS@ -DSGC_EXPORTS -I.. -c $(srcdir)/sgc.c -o sgc.@LTO@
test.@LTO@: $(srcdir)/test.c

View File

@ -50,6 +50,8 @@
# endif
#endif
#include "../utils/schiptr.h"
/****************************************************************************/
/* Option bundles */
/****************************************************************************/
@ -2023,15 +2025,15 @@ void GC_dump(void)
FPRINTF(STDERR, "Begin Map\n");
FPRINTF(STDERR,
"allocated: %ld collectable: %ld uncollectable: %ld\n"
"including known overhead: %ld scheduled gc: %ld last collect depth: %ld\n"
"managed: %ld managed including overhead: %ld\n"
"sector used: %ld sector free: %ld sector total: %ld\n"
"sector range: %ld sector administration: %ld\n"
"num sector allocs: %ld num sector frees: %ld\n"
"allocated: %"PRIdPTR" collectable: %"PRIdPTR" uncollectable: %"PRIdPTR"\n"
"including known overhead: %"PRIdPTR" scheduled gc: %"PRIdPTR" last collect depth: %"PRIdPTR"\n"
"managed: %"PRIdPTR" managed including overhead: %"PRIdPTR"\n"
"sector used: %"PRIdPTR" sector free: %"PRIdPTR" sector total: %"PRIdPTR"\n"
"sector range: %"PRIdPTR" sector administration: %"PRIdPTR"\n"
"num sector allocs: %"PRIdPTR" num sector frees: %"PRIdPTR"\n"
"num disappearing links: %d num finalizations: %d queued: %d\n"
#if STAMP_AND_REMEMBER_SOURCE
"current clock: %ld\n"
"current clock: %"PRIdPTR"\n"
#endif
, mem_use + mem_uncollectable_use, mem_use, mem_uncollectable_use,
mem_real_use, mem_limit, collect_mem_use,
@ -2058,11 +2060,11 @@ void GC_dump(void)
#if DUMP_BLOCK_MAPS
FPRINTF(STDERR, "roots: ======================================\n");
for (i = 0; i < roots_count; i += 2)
FPRINTF(STDERR, ">%lx-%lx", roots[i], roots[i + 1]);
FPRINTF(STDERR, ">%"PRIxPTR"-%"PRIxPTR"", roots[i], roots[i + 1]);
FPRINTF(STDERR, "\n");
FPRINTF(STDERR, "stack: ======================================\n");
FPRINTF(STDERR, ">%lx-%lx>%lx-%lx\n",
FPRINTF(STDERR, ">%"PRIxPTR"-%"PRIxPTR">%"PRIxPTR"-%"PRIxPTR"\n",
trace_stack_start, trace_stack_end, trace_reg_start, trace_reg_end);
#endif
@ -2087,7 +2089,7 @@ void GC_dump(void)
FPRINTF(STDERR, "%d:", block->size);
#if DUMP_BLOCK_MAPS
FPRINTF(STDERR, "[%lx]", block->start - (uintptr_t)block);
FPRINTF(STDERR, "[%"PRIxPTR"]", block->start - (uintptr_t)block);
#endif
while (block) {
@ -2109,9 +2111,9 @@ void GC_dump(void)
#if DUMP_BLOCK_MAPS
FPRINTF(STDERR,
">%lxx%d"
">%"PRIxPTR"x%d"
#if STAMP_AND_REMEMBER_SOURCE
"@%ld-%ld:%lx-%lx"
"@%"PRIdPTR"-%"PRIdPTR":%"PRIxPTR"-%"PRIxPTR""
#endif
, (uintptr_t)block, counter
#if STAMP_AND_REMEMBER_SOURCE
@ -2139,10 +2141,10 @@ void GC_dump(void)
for (c = *(cs->othersptr); c; c = cnext) {
uintptr_t size = c->end - c->start;
FPRINTF(STDERR, "%ld:", size);
FPRINTF(STDERR, "%"PRIdPTR":", size);
#if DUMP_BLOCK_MAPS
FPRINTF(STDERR, "[%lx]", c->start - (uintptr_t)c);
FPRINTF(STDERR, "[%"PRIxPTR"]", c->start - (uintptr_t)c);
#endif
cnext = c->next;
@ -2154,9 +2156,9 @@ void GC_dump(void)
if (size == (t->end - t->start)) {
#if DUMP_BLOCK_MAPS
FPRINTF(STDERR,
">%lx"
">%"PRIxPTR""
#if STAMP_AND_REMEMBER_SOURCE
"@%ld:%lx"
"@%"PRIdPTR":%"PRIxPTR""
#endif
, (uintptr_t)t
#if STAMP_AND_REMEMBER_SOURCE
@ -2207,7 +2209,7 @@ void GC_dump(void)
}
#endif
FPRINTF(STDERR, "total size: %ld\n", total);
FPRINTF(STDERR, "total size: %"PRIdPTR"\n", total);
}
FPRINTF(STDERR, "summary: ======================================\n");
@ -2215,13 +2217,13 @@ void GC_dump(void)
for (j = 0; j < num_common_sets; j++) {
GC_Set *cs = common_sets[j];
FPRINTF(STDERR,
"%12s: %10ld [%s/%s]\n",
"%12s: %10"PRIdPTR" [%s/%s]\n",
cs->name, cs->total,
cs->atomic ? "atomic" : (cs->code ? "code" : "pointerful"),
cs->uncollectable ? "eternal" : "collectable");
total += cs->total;
}
FPRINTF(STDERR, "%12s: %10ld\n", "total", total);
FPRINTF(STDERR, "%12s: %10"PRIdPTR"\n", "total", total);
}
#endif
FPRINTF(STDERR, "End Map\n");
@ -2651,7 +2653,7 @@ static void *do_malloc(SET_NO_BACKINFO
|| block->top < block->start
|| block->top > block->end)
FPRINTF(STDERR,
"bad block: %ld %ld %ld %ld\n",
"bad block: %"PRIdPTR" %"PRIdPTR" %"PRIdPTR" %"PRIdPTR"\n",
size, block->start, block->top, block->end);
#endif
@ -3080,7 +3082,7 @@ static void free_chunk(MemoryChunk *k, MemoryChunk **prev, GC_Set *set)
mem_real_use -= (k->end - k->start + sizeof(MemoryChunk));
#if PRINT && 0
FPRINTF(STDERR, "free chunk: %ld (%ld) %d %d\n",
FPRINTF(STDERR, "free chunk: %"PRIdPTR" (%"PRIdPTR") %d %d\n",
(uintptr_t)k, k->end - k->start,
set->atomic, set->uncollectable);
#endif
@ -3121,7 +3123,7 @@ void GC_free(void *p)
if (!found) {
# if CHECK_FREES
char b[256];
sprintf(b, "GC_free failed! %lx\n", (intptr_t)p);
sprintf(b, "GC_free failed! %"PRIxPTR"\n", (intptr_t)p);
free_error(b);
# endif
return;
@ -3138,13 +3140,13 @@ void GC_free(void *p)
# if CHECK_FREES
if (block->free[pos] & fbit) {
char b[256];
sprintf(b, "Block element already free! %lx\n", (intptr_t)p);
sprintf(b, "Block element already free! %"PRIxPTR"\n", (intptr_t)p);
return;
}
# if EXTRA_FREE_CHECKS
if (block->set_no != 5) {
char b[256];
sprintf(b, "GC_free on ptr from wrong block! %lx\n", (intptr_t)p);
sprintf(b, "GC_free on ptr from wrong block! %"PRIxPTR"\n", (intptr_t)p);
free_error(b);
return;
}
@ -3196,7 +3198,7 @@ void GC_free(void *p)
# if CHECK_FREES && EXTRA_FREE_CHECKS
if (chunk->set_no != 5) {
char b[256];
sprintf(b, "GC_free on ptr from wrong block! %lx\n", (intptr_t)p);
sprintf(b, "GC_free on ptr from wrong block! %"PRIxPTR"\n", (intptr_t)p);
free_error(b);
return;
}
@ -3210,7 +3212,7 @@ void GC_free(void *p)
# if CHECK_FREES
else {
char b[256];
sprintf(b, "GC_free on block interior! %lx != %lx\n",
sprintf(b, "GC_free on block interior! %"PRIxPTR" != %"PRIxPTR"\n",
(intptr_t)p, (intptr_t)PAD_FORWARD(found));
free_error(b);
}
@ -3247,7 +3249,7 @@ static void bad_pad(char *where, void *s, int type, intptr_t sz, intptr_t diff,
intptr_t pd, intptr_t expect)
{
FPRINTF(STDERR,
"pad %s violation at %lx <%d>, len %ld (diff %ld+%ld): %lx != %lx\n",
"pad %s violation at %"PRIxPTR" <%d>, len %"PRIdPTR" (diff %"PRIdPTR"+%"PRIdPTR"): %"PRIxPTR" != %"PRIxPTR"\n",
where, (uintptr_t)s, type, sz, diff, offset, pd, expect);
}
#endif
@ -3470,7 +3472,7 @@ static void collect_finish_common(BlockOfMemory **blocks,
|| block->top < block->start
|| block->top > block->end)
FPRINTF(STDERR,
"bad block: %ld %ld %ld %ld\n",
"bad block: %"PRIdPTR" %"PRIdPTR" %"PRIdPTR" %"PRIdPTR"\n",
size, block->start, block->top, block->end);
#endif
@ -3785,7 +3787,7 @@ static void push_stack(void *stack_now)
end = PTR_TO_INT(stack_now);
#if PRINT && STAMP_AND_REMEMBER_SOURCE
FPRINTF(STDERR, "stack in [%lx, %lx]\n", start, end);
FPRINTF(STDERR, "stack in [%"PRIxPTR", %"PRIxPTR"]\n", start, end);
#endif
if (start < end) {
@ -3813,7 +3815,7 @@ static void push_stack(void *stack_now)
prepare_stack_collect();
#if PRINT && STAMP_AND_REMEMBER_SOURCE
FPRINTF(STDERR, "jmpbuf in [%lx, %lx]\n", start, end);
FPRINTF(STDERR, "jmpbuf in [%"PRIxPTR", %"PRIxPTR"]\n", start, end);
#endif
}
@ -4082,7 +4084,7 @@ static void mark_common_for_finalizations(BlockOfMemory **blocks, int atomic)
#if WATCH_FOR_FINALIZATION_CYCLES
collect();
if (IS_MARKED(block->free[apos] & bit))
FPRINTF(STDERR, "cycle: %lx\n", p);
FPRINTF(STDERR, "cycle: %"PRIxPTR"\n", p);
#endif
}
}
@ -4482,7 +4484,7 @@ static void do_GC_gcollect(void *stack_now)
intptr_t orig_mem_use = mem_use;
intptr_t start_time;
start_time = GETTIME();
FPRINTF(STDERR, "gc at %ld (%ld): %ld after %ld msecs\n",
FPRINTF(STDERR, "gc at %"PRIdPTR" (%"PRIdPTR"): %"PRIdPTR" after %"PRIdPTR" msecs\n",
mem_use, sector_mem_use,
# if GET_MEM_VIA_SBRK
(intptr_t)sbrk(0),
@ -4528,7 +4530,7 @@ static void do_GC_gcollect(void *stack_now)
# endif
INITTIME();
PRINTTIME((STDERR, "gc: init start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: init start: %"PRIdPTR"\n", GETTIMEREL()));
for (j = 0; j < num_common_sets; j++) {
# if ALLOW_SET_LOCKING
@ -4547,18 +4549,18 @@ static void do_GC_gcollect(void *stack_now)
# if CHECK
if (num_chunks != chk_count) {
FPRINTF(STDERR, "bad chunk count: %ld != %ld\n", num_chunks, chk_count);
FPRINTF(STDERR, "bad chunk count: %"PRIdPTR" != %"PRIdPTR"\n", num_chunks, chk_count);
}
if (num_blocks != cmn_count) {
FPRINTF(STDERR, "bad block count: %ld != %ld\n", num_blocks, cmn_count);
FPRINTF(STDERR, "bad block count: %"PRIdPTR" != %"PRIdPTR"\n", num_blocks, cmn_count);
}
# endif
# if PRINT
FPRINTF(STDERR, "gc at %ld (%ld)\n", mem_use, mem_real_use);
FPRINTF(STDERR, "gc at %"PRIdPTR" (%"PRIdPTR")\n", mem_use, mem_real_use);
FPRINTF(STDERR,
"low: %lx hi: %lx blocks: %ld chunks: %ld\n",
"low: %"PRIxPTR" hi: %"PRIxPTR" blocks: %"PRIdPTR" chunks: %"PRIdPTR"\n",
low_plausible, high_plausible,
num_blocks, num_chunks);
# endif
@ -4609,7 +4611,7 @@ static void do_GC_gcollect(void *stack_now)
# endif
}
PRINTTIME((STDERR, "gc: root collect start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: root collect start: %"PRIdPTR"\n", GETTIMEREL()));
# if ALLOW_TRACE_COUNT
collect_trace_count = 0;
@ -4643,20 +4645,20 @@ static void do_GC_gcollect(void *stack_now)
root_marked = mem_use;
# endif
PRINTTIME((STDERR, "gc: stack push start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: stack push start: %"PRIdPTR"\n", GETTIMEREL()));
/*** Mark from stack ***/
push_stack(stack_now);
# if PRINT && 0
FPRINTF(STDERR, "stack until: %ld\n", collect_end_stackbased);
FPRINTF(STDERR, "stack until: %"PRIdPTR"\n", collect_end_stackbased);
# endif
# if ALLOW_TRACE_PATH
current_trace_source = "stack";
# endif
PRINTTIME((STDERR, "gc: stack collect start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: stack collect start: %"PRIdPTR"\n", GETTIMEREL()));
collect();
@ -4665,7 +4667,7 @@ static void do_GC_gcollect(void *stack_now)
collect_trace_count = 0;
# endif
PRINTTIME((STDERR, "gc: uncollectable start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: uncollectable start: %"PRIdPTR"\n", GETTIMEREL()));
/*** Uncollectable and pointerful ***/
for (j = 0; j < num_common_sets; j++)
@ -4696,10 +4698,10 @@ static void do_GC_gcollect(void *stack_now)
# endif
if (GC_push_last_roots) {
PRINTTIME((STDERR, "gc: last roots push start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: last roots push start: %"PRIdPTR"\n", GETTIMEREL()));
/*** ``Last'' roots external hook ***/
GC_push_last_roots();
PRINTTIME((STDERR, "gc: last roots start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: last roots start: %"PRIdPTR"\n", GETTIMEREL()));
}
# if ALLOW_TRACE_PATH
@ -4714,7 +4716,7 @@ static void do_GC_gcollect(void *stack_now)
collect_trace_count = 0;
# endif
PRINTTIME((STDERR, "gc: queue finalize start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: queue finalize start: %"PRIdPTR"\n", GETTIMEREL()));
# if ALLOW_TRACE_PATH
current_trace_source = "finalization";
@ -4727,7 +4729,7 @@ static void do_GC_gcollect(void *stack_now)
traced_from_finals = collect_trace_count;
# endif
PRINTTIME((STDERR, "gc: finish start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: finish start: %"PRIdPTR"\n", GETTIMEREL()));
low_plausible = high_plausible = 0;
@ -4743,11 +4745,11 @@ static void do_GC_gcollect(void *stack_now)
flush_freed_sectors();
#endif
PRINTTIME((STDERR, "gc: all done: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: all done: %"PRIdPTR"\n", GETTIMEREL()));
# if PRINT
FPRINTF(STDERR,
"done %ld (%ld), %ld from stack\n", mem_use, mem_real_use,
"done %"PRIdPTR" (%"PRIdPTR"), %"PRIdPTR" from stack\n", mem_use, mem_real_use,
mem_use - root_marked);
# endif
@ -4782,7 +4784,7 @@ static void do_GC_gcollect(void *stack_now)
#endif
#if PRINT_INFO_PER_GC
FPRINTF(STDERR, "done %ld (%ld); recovered %ld in %ld msecs\n",
FPRINTF(STDERR, "done %"PRIdPTR" (%"PRIdPTR"); recovered %"PRIdPTR" in %"PRIdPTR" msecs\n",
mem_use, sector_mem_use, orig_mem_use - mem_use,
(intptr_t)GETTIME() - start_time);
# if SHOW_SECTOR_MAPS_AT_GC
@ -4803,9 +4805,9 @@ static void do_GC_gcollect(void *stack_now)
GC_collect_end_callback();
/* Run queued finalizers. Garbage collections may happen: */
PRINTTIME((STDERR, "gc: finalize start: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: finalize start: %"PRIdPTR"\n", GETTIMEREL()));
run_finalizers();
PRINTTIME((STDERR, "gc: finalize end: %ld\n", GETTIMEREL()));
PRINTTIME((STDERR, "gc: finalize end: %"PRIdPTR"\n", GETTIMEREL()));
#if MARK_STATS
fprintf(STDERR,

View File

@ -303,7 +303,7 @@ SCONFIG = $(srcdir)/../sconfig.h $(srcdir)/../uconfig.h ../mzconfig.h
COMMON_HEADERS = $(srcdir)/schpriv.h $(srcdir)/schexn.h $(SCONFIG) $(srcdir)/../include/scheme.h \
$(srcdir)/../include/schthread.h $(srcdir)/mzrt.h $(srcdir)/mzrt_cas.inc \
$(srcdir)/longdouble/longdouble.h
$(srcdir)/longdouble/longdouble.h $(srcdir)/../utils/schiptr.h
JIT_HEADERS = $(srcdir)/jit.h $(srcdir)/jitfpu.h $(srcdir)/stypes.h \
$(srcdir)/lightning/i386/core.h $(srcdir)/lightning/i386/core-common.h \
$(srcdir)/lightning/i386/asm.h $(srcdir)/lightning/i386/asm-common.h \

View File

@ -2536,13 +2536,7 @@ Scheme_Object *scheme_load_delayed_code(int pos, struct Scheme_Load_Delay *ld);
intptr_t scheme_get_print_width(void);
#ifndef PRIdPTR
# ifndef PRINTF_INTPTR_SIZE_PREFIX
# define PRINTF_INTPTR_SIZE_PREFIX "l"
# endif
# define PRIdPTR PRINTF_INTPTR_SIZE_PREFIX "d"
# define PRIxPTR PRINTF_INTPTR_SIZE_PREFIX "x"
#endif
#include "../utils/schiptr.h"
/*========================================================================*/
/* compile and link */

View File

@ -0,0 +1,8 @@
#ifndef PRIdPTR
# ifndef PRINTF_INTPTR_SIZE_PREFIX
# define PRINTF_INTPTR_SIZE_PREFIX "l"
# endif
# define PRIdPTR PRINTF_INTPTR_SIZE_PREFIX "d"
# define PRIxPTR PRINTF_INTPTR_SIZE_PREFIX "x"
#endif