Paolo Bonzini <pbonz...@redhat.com> writes: [...] >> This workaround does NOT work if pragmas used. "#pragma GCC diagnostic >> error "-Wredundant-decls"" re-enables warnings as errors. > > The solution is to use push/pop like this: > > diff --git a/coroutine-ucontext.c b/coroutine-ucontext.c > index 867a662..4bf2cde 100644 > --- a/coroutine-ucontext.c > +++ b/coroutine-ucontext.c > @@ -169,6 +169,7 @@ Coroutine *qemu_coroutine_new(void) > #ifdef CONFIG_VALGRIND_H > #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE > /* Work around an unused variable in the valgrind.h macro... */ > +#pragma GCC diagnostic push > #pragma GCC diagnostic ignored "-Wunused-but-set-variable" > #endif > static inline void valgrind_stack_deregister(CoroutineUContext *co) > @@ -176,7 +177,7 @@ static inline void > valgrind_stack_deregister(CoroutineUContext *co) > VALGRIND_STACK_DEREGISTER(co->valgrind_stack_id); > } > #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE > -#pragma GCC diagnostic error "-Wunused-but-set-variable" > +#pragma GCC diagnostic pop > #endif > #endif > > diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h > index b032f52..882e2a3 100644 > --- a/include/ui/qemu-pixman.h > +++ b/include/ui/qemu-pixman.h > @@ -8,11 +8,12 @@ > > /* pixman-0.16.0 headers have a redundant declaration */ > #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE > +#pragma GCC diagnostic push > #pragma GCC diagnostic ignored "-Wredundant-decls" > #endif > #include <pixman.h> > #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE > -#pragma GCC diagnostic error "-Wredundant-decls" > +#pragma GCC diagnostic pop > #endif > > #include "qemu/typedefs.h" > > Untested, feel free to resubmit with my Signed-off-by. > > Paolo
You missed the one in ui/gtk.c. My patch covers it, and also configure.