Commit e3dc93be authored by Markus Armbruster's avatar Markus Armbruster
Browse files

libqtest: Enable compile-time format string checking



qtest_qmp() & friends pass their format string and variable arguments
to qobject_from_vjsonf_nofail().  Unlike qobject_from_jsonv(), they
aren't decorated with GCC_FMT_ATTR().  Fix that to get compile-time
format string checking.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Message-Id: <20180806065344.7103-22-armbru@redhat.com>
parent c44a56d8
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
@@ -82,7 +82,8 @@ void qtest_quit(QTestState *s);
 *
 * Sends a QMP message to QEMU and returns the response.
 */
QDict *qtest_qmp(QTestState *s, const char *fmt, ...);
QDict *qtest_qmp(QTestState *s, const char *fmt, ...)
    GCC_FMT_ATTR(2, 3);

/**
 * qtest_qmp_send:
@@ -93,7 +94,8 @@ QDict *qtest_qmp(QTestState *s, const char *fmt, ...);
 *
 * Sends a QMP message to QEMU and leaves the response in the stream.
 */
void qtest_qmp_send(QTestState *s, const char *fmt, ...);
void qtest_qmp_send(QTestState *s, const char *fmt, ...)
    GCC_FMT_ATTR(2, 3);

/**
 * qtest_qmpv:
@@ -105,7 +107,8 @@ void qtest_qmp_send(QTestState *s, const char *fmt, ...);
 *
 * Sends a QMP message to QEMU and returns the response.
 */
QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap);
QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap)
    GCC_FMT_ATTR(2, 0);

/**
 * qtest_qmp_vsend:
@@ -117,7 +120,8 @@ QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap);
 *
 * Sends a QMP message to QEMU and leaves the response in the stream.
 */
void qtest_qmp_vsend(QTestState *s, const char *fmt, va_list ap);
void qtest_qmp_vsend(QTestState *s, const char *fmt, va_list ap)
    GCC_FMT_ATTR(2, 0);

/**
 * qtest_receive:
@@ -574,7 +578,7 @@ static inline void qtest_end(void)
 *
 * Sends a QMP message to QEMU and returns the response.
 */
QDict *qmp(const char *fmt, ...);
QDict *qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2);

/**
 * qmp_send:
@@ -584,7 +588,7 @@ QDict *qmp(const char *fmt, ...);
 *
 * Sends a QMP message to QEMU and leaves the response in the stream.
 */
void qmp_send(const char *fmt, ...);
void qmp_send(const char *fmt, ...) GCC_FMT_ATTR(1, 2);

/**
 * qmp_receive:
@@ -943,10 +947,10 @@ static inline int64_t clock_set(int64_t val)
}

QDict *qmp_fd_receive(int fd);
void qmp_fd_vsend(int fd, const char *fmt, va_list ap);
void qmp_fd_send(int fd, const char *fmt, ...);
QDict *qmp_fdv(int fd, const char *fmt, va_list ap);
QDict *qmp_fd(int fd, const char *fmt, ...);
void qmp_fd_vsend(int fd, const char *fmt, va_list ap) GCC_FMT_ATTR(2, 0);
void qmp_fd_send(int fd, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
QDict *qmp_fdv(int fd, const char *fmt, va_list ap) GCC_FMT_ATTR(2, 0);
QDict *qmp_fd(int fd, const char *fmt, ...) GCC_FMT_ATTR(2, 3);

/**
 * qtest_cb_for_every_machine: