This commit adds QEMU_WARN_UNUSED_RESULT, a macro for the gcc function attribute `warn_unused_result`. The utility of this attribute is to ensure functions that return values that need to be inspected are not ignored by the caller.
Signed-off-by: Manos Pitsidianakis <manos.pitsidiana...@linaro.org> --- include/qemu/compiler.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index c797f0d457..7ddbf1f1cf 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -212,6 +212,20 @@ # define QEMU_USED #endif +/* + * From GCC documentation: + * + * The warn_unused_result attribute causes a warning to be emitted if a + * caller of the function with this attribute does not use its return value. + * This is useful for functions where not checking the result is either a + * security problem or always a bug, such as realloc. + */ +#if __has_attribute(warn_unused_result) +# define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define QEMU_WARN_UNUSED_RESULT +#endif + /* * Ugly CPP trick that is like "defined FOO", but also works in C * code. Useful to replace #ifdef with "if" statements; assumes -- 2.39.2