aboutsummaryrefslogtreecommitdiff
path: root/include/sim
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2021-06-27 23:21:26 -0400
committerMike Frysinger <vapier@gentoo.org>2021-06-29 02:14:58 -0400
commita1d9117f94cd835b266c6ec17b4cdcf4ce31b9ee (patch)
treea2a63af1428c51402143b8ba2b9458e1a7bb54ee /include/sim
parent54e66d16e880f84a56caf1fd4ac9a5ffc3568bc3 (diff)
downloadbinutils-a1d9117f94cd835b266c6ec17b4cdcf4ce31b9ee.zip
binutils-a1d9117f94cd835b266c6ec17b4cdcf4ce31b9ee.tar.gz
binutils-a1d9117f94cd835b266c6ec17b4cdcf4ce31b9ee.tar.bz2
sim: callback: add printf attributes
This helps these funcs get printf format checking coverage. The sim-io.c hack as a result is a bit unfortunate, but the compiler throws warnings when printing with empty strings. In this one case, we actually want that due to the side-effect of the callback halting execution for us.
Diffstat (limited to 'include/sim')
-rw-r--r--include/sim/ChangeLog5
-rw-r--r--include/sim/callback.h12
2 files changed, 13 insertions, 4 deletions
diff --git a/include/sim/ChangeLog b/include/sim/ChangeLog
index 0897a52..21a9778 100644
--- a/include/sim/ChangeLog
+++ b/include/sim/ChangeLog
@@ -1,3 +1,8 @@
+2021-06-29 Mike Frysinger <vapier@gentoo.org>
+
+ * sim/callback.h (struct host_callback_struct): Add ATTRIBUTE_PRINTF
+ to printf functions.
+
2021-06-24 Mike Frysinger <vapier@gentoo.org>
* sim/callback.h (struct host_callback_struct): Add arg5, arg6, and
diff --git a/include/sim/callback.h b/include/sim/callback.h
index be72f45..06aa2d4 100644
--- a/include/sim/callback.h
+++ b/include/sim/callback.h
@@ -113,18 +113,22 @@ struct host_callback_struct
int (*init) (host_callback *);
/* depreciated, use vprintf_filtered - Talk to the user on a console. */
- void (*printf_filtered) (host_callback *, const char *, ...);
+ void (*printf_filtered) (host_callback *, const char *, ...)
+ ATTRIBUTE_PRINTF_2;
/* Talk to the user on a console. */
- void (*vprintf_filtered) (host_callback *, const char *, va_list);
+ void (*vprintf_filtered) (host_callback *, const char *, va_list)
+ ATTRIBUTE_PRINTF (2, 0);
/* Same as vprintf_filtered but to stderr. */
- void (*evprintf_filtered) (host_callback *, const char *, va_list);
+ void (*evprintf_filtered) (host_callback *, const char *, va_list)
+ ATTRIBUTE_PRINTF (2, 0);
/* Print an error message and "exit".
In the case of gdb "exiting" means doing a longjmp back to the main
command loop. */
- void (*error) (host_callback *, const char *, ...) ATTRIBUTE_NORETURN;
+ void (*error) (host_callback *, const char *, ...)
+ ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF_2;
int last_errno; /* host format */