diff options
author | Mike Frysinger <vapier@gentoo.org> | 2021-06-27 23:21:26 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2021-06-29 02:14:58 -0400 |
commit | a1d9117f94cd835b266c6ec17b4cdcf4ce31b9ee (patch) | |
tree | a2a63af1428c51402143b8ba2b9458e1a7bb54ee /include/sim | |
parent | 54e66d16e880f84a56caf1fd4ac9a5ffc3568bc3 (diff) | |
download | binutils-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/ChangeLog | 5 | ||||
-rw-r--r-- | include/sim/callback.h | 12 |
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 */ |