Skip to content

Commit 814d631

Browse files
committed
Add format checking to Stream methods
1 parent 51df320 commit 814d631

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

platform/Stream.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "platform/FileLike.h"
2121
#include "platform/FileHandle.h"
2222
#include "platform/NonCopyable.h"
23+
#include "mbed_toolchain.h"
2324
#include <cstdio>
2425
#include <cstdarg>
2526

@@ -47,10 +48,10 @@ class Stream : public FileLike, private NonCopyable<Stream> {
4748
int puts(const char *s);
4849
int getc();
4950
char *gets(char *s, int size);
50-
int printf(const char *format, ...);
51-
int scanf(const char *format, ...);
52-
int vprintf(const char *format, std::va_list args);
53-
int vscanf(const char *format, std::va_list args);
51+
int printf(const char *format, ...) MBED_PRINTF_METHOD(1, 2);
52+
int scanf(const char *format, ...) MBED_SCANF_METHOD(1, 2);
53+
int vprintf(const char *format, std::va_list args) MBED_PRINTF_METHOD(1, 0);
54+
int vscanf(const char *format, std::va_list args) MBED_SCANF_METHOD(1, 0);
5455

5556
operator std::FILE *()
5657
{

platform/mbed_toolchain.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@
356356

357357
#ifndef MBED_PRINTF_METHOD
358358
#if defined(__GNUC__) || defined(__CC_ARM)
359-
#define MBED_PRINTF_METHOD(format_idx, first_param_idx) __attribute__ ((__format__(__printf__, format_idx+1, first_param_idx+1)))
359+
#define MBED_PRINTF_METHOD(format_idx, first_param_idx) __attribute__ ((__format__(__printf__, format_idx+1, first_param_idx == 0 ? 0 : first_param_idx+1)))
360360
#else
361361
#define MBED_PRINTF_METHOD(format_idx, first_param_idx)
362362
#endif
@@ -372,7 +372,7 @@
372372

373373
#ifndef MBED_SCANF_METHOD
374374
#if defined(__GNUC__) || defined(__CC_ARM)
375-
#define MBED_SCANF_METHOD(format_idx, first_param_idx) __attribute__ ((__format__(__scanf__, format_idx+1, first_param_idx+1)))
375+
#define MBED_SCANF_METHOD(format_idx, first_param_idx) __attribute__ ((__format__(__scanf__, format_idx+1, first_param_idx == 0 ? 0 : first_param_idx+1)))
376376
#else
377377
#define MBED_SCANF_METHOD(format_idx, first_param_idx)
378378
#endif

0 commit comments

Comments
 (0)