瀏覽代碼

LibC: Enable compiler warnings for printf format strings

Sahan Fernando 4 年之前
父節點
當前提交
6b01d1cf14
共有 3 個文件被更改,包括 16 次插入16 次删除
  1. 4 4
      AK/kstdio.h
  2. 3 3
      Kernel/kstdio.h
  3. 9 9
      Libraries/LibC/stdio.h

+ 4 - 4
AK/kstdio.h

@@ -33,11 +33,11 @@
 #        include <AK/Types.h>
 #        include <AK/Types.h>
 #        include <stdarg.h>
 #        include <stdarg.h>
 extern "C" {
 extern "C" {
-int vdbgprintf(const char* fmt, va_list);
-int dbgprintf(const char* fmt, ...);
+int vdbgprintf(const char* fmt, va_list) __attribute__((format(printf, 1, 0)));
+int dbgprintf(const char* fmt, ...) __attribute__((format(printf, 1, 2)));
 int dbgputstr(const char*, ssize_t);
 int dbgputstr(const char*, ssize_t);
-int sprintf(char* buf, const char* fmt, ...);
-int snprintf(char* buffer, size_t, const char* fmt, ...);
+int sprintf(char* buf, const char* fmt, ...) __attribute__((format(printf, 2, 3)));
+int snprintf(char* buffer, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4)));
 }
 }
 #    endif
 #    endif
 #else
 #else

+ 3 - 3
Kernel/kstdio.h

@@ -29,11 +29,11 @@
 #include <AK/Types.h>
 #include <AK/Types.h>
 
 
 extern "C" {
 extern "C" {
-int dbgprintf(const char* fmt, ...);
+int dbgprintf(const char* fmt, ...) __attribute__((format(printf, 1, 2)));
 int dbgputstr(const char*, int);
 int dbgputstr(const char*, int);
 int kernelputstr(const char*, int);
 int kernelputstr(const char*, int);
-int kprintf(const char* fmt, ...);
-int snprintf(char* buf, size_t, const char* fmt, ...);
+int kprintf(const char* fmt, ...) __attribute__((format(printf, 1, 2)));
+int snprintf(char* buf, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4)));
 void set_serial_debug(bool on_or_off);
 void set_serial_debug(bool on_or_off);
 int get_serial_debug();
 int get_serial_debug();
 }
 }

+ 9 - 9
Libraries/LibC/stdio.h

@@ -85,17 +85,17 @@ int feof(FILE*);
 int fflush(FILE*);
 int fflush(FILE*);
 size_t fread(void* ptr, size_t size, size_t nmemb, FILE*);
 size_t fread(void* ptr, size_t size, size_t nmemb, FILE*);
 size_t fwrite(const void* ptr, size_t size, size_t nmemb, FILE*);
 size_t fwrite(const void* ptr, size_t size, size_t nmemb, FILE*);
-int vprintf(const char* fmt, va_list);
-int vfprintf(FILE*, const char* fmt, va_list);
-int vsprintf(char* buffer, const char* fmt, va_list);
-int vsnprintf(char* buffer, size_t, const char* fmt, va_list);
-int fprintf(FILE*, const char* fmt, ...);
-int printf(const char* fmt, ...);
-int dbgprintf(const char* fmt, ...);
+int vprintf(const char* fmt, va_list) __attribute__((format(printf, 1, 0)));
+int vfprintf(FILE*, const char* fmt, va_list) __attribute__((format(printf, 2, 0)));
+int vsprintf(char* buffer, const char* fmt, va_list) __attribute__((format(printf, 2, 0)));
+int vsnprintf(char* buffer, size_t, const char* fmt, va_list) __attribute__((format(printf, 3, 0)));
+int fprintf(FILE*, const char* fmt, ...) __attribute__((format(printf, 2, 3)));
+int printf(const char* fmt, ...) __attribute__((format(printf, 1, 2)));
+int dbgprintf(const char* fmt, ...) __attribute__((format(printf, 1, 2)));
 void dbgputch(char);
 void dbgputch(char);
 int dbgputstr(const char*, ssize_t);
 int dbgputstr(const char*, ssize_t);
-int sprintf(char* buffer, const char* fmt, ...);
-int snprintf(char* buffer, size_t, const char* fmt, ...);
+int sprintf(char* buffer, const char* fmt, ...) __attribute__((format(printf, 2, 3)));
+int snprintf(char* buffer, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4)));
 int putchar(int ch);
 int putchar(int ch);
 int putc(int ch, FILE*);
 int putc(int ch, FILE*);
 int puts(const char*);
 int puts(const char*);