mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-29 16:38:05 +08:00
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.
This commit is contained in:
@ -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>
|
2021-06-24 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
* sim/callback.h (struct host_callback_struct): Add arg5, arg6, and
|
* sim/callback.h (struct host_callback_struct): Add arg5, arg6, and
|
||||||
|
@ -113,18 +113,22 @@ struct host_callback_struct
|
|||||||
int (*init) (host_callback *);
|
int (*init) (host_callback *);
|
||||||
|
|
||||||
/* depreciated, use vprintf_filtered - Talk to the user on a console. */
|
/* 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. */
|
/* 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. */
|
/* 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".
|
/* Print an error message and "exit".
|
||||||
In the case of gdb "exiting" means doing a longjmp back to the main
|
In the case of gdb "exiting" means doing a longjmp back to the main
|
||||||
command loop. */
|
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 */
|
int last_errno; /* host format */
|
||||||
|
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2021-06-29 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
|
* sim-io.c (sim_io_error): Change "" to " ".
|
||||||
|
|
||||||
2021-06-29 Mike Frysinger <vapier@gentoo.org>
|
2021-06-29 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
* callback.c (sim_cb_printf, sim_cb_eprintf): Delete.
|
* callback.c (sim_cb_printf, sim_cb_eprintf): Delete.
|
||||||
|
@ -309,7 +309,9 @@ sim_io_error (SIM_DESC sd,
|
|||||||
va_start (ap, fmt);
|
va_start (ap, fmt);
|
||||||
STATE_CALLBACK (sd)->evprintf_filtered (STATE_CALLBACK (sd), fmt, ap);
|
STATE_CALLBACK (sd)->evprintf_filtered (STATE_CALLBACK (sd), fmt, ap);
|
||||||
va_end (ap);
|
va_end (ap);
|
||||||
STATE_CALLBACK (sd)->error (STATE_CALLBACK (sd), "");
|
/* Printing a space here avoids empty printf compiler warnings. Not ideal,
|
||||||
|
but we want error's side-effect where it halts processing. */
|
||||||
|
STATE_CALLBACK (sd)->error (STATE_CALLBACK (sd), " ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user