From 5bb0c4f88bbfad8173c32dcda304867a22e09add Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 15 Dec 2008 10:50:33 -0800 Subject: [PATCH] check printf format strings R=r DELTA=18 (16 added, 0 deleted, 2 changed) OCL=21177 CL=21185 --- src/runtime/Makefile | 4 ++-- src/runtime/runtime.h | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/runtime/Makefile b/src/runtime/Makefile index 2cb5cfa0ae..4575318039 100644 --- a/src/runtime/Makefile +++ b/src/runtime/Makefile @@ -54,10 +54,10 @@ clean: rm -f *.$(O) *.a runtime.acid %.$O: %.c - $(CC) -w $< + $(CC) -wF $< sys_file.$O: sys_file.c sys_types.h $(OS_H) - $(CC) -w -D$(GOARCH)_$(GOOS) $< + $(CC) -wF -D$(GOARCH)_$(GOOS) $< %.$O: %.s $(AS) $< diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h index b2395e2368..94ff6d7ca0 100644 --- a/src/runtime/runtime.h +++ b/src/runtime/runtime.h @@ -281,6 +281,22 @@ int32 funcline(Func*, uint64); void* stackalloc(uint32); void stackfree(void*); +#pragma varargck argpos printf 1 + +#pragma varargck type "d" int32 +#pragma varargck type "d" uint32 +#pragma varargck type "D" int64 +#pragma varargck type "D" uint64 +#pragma varargck type "x" int32 +#pragma varargck type "x" uint32 +#pragma varargck type "X" int64 +#pragma varargck type "X" uint64 +#pragma varargck type "p" void* +#pragma varargck type "p" uint64 +#pragma varargck type "s" int8* +#pragma varargck type "s" uint8* +#pragma varargck type "S" string + // TODO(rsc): Remove. These are only temporary, // for the mark and sweep collector. void stoptheworld(void); -- 2.48.1