Message ID | 1468600102-4274-1-git-send-email-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/15/2016 09:58 PM, Paolo Bonzini wrote: > Assertions help both Coverity and the clang static analyzer avoid > false positives, but on the other hand both are confused when > the condition is compiled as (void)(x != FOO). Always expand > assertion macros when using Coverity or clang, through a new > QEMU_STATIC_ANALYSIS preprocessor symbol. > > This fixes a couple false positives in TCG. > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > include/qemu/compiler.h | 3 +++ > tcg/tcg.h | 2 +- > 2 files changed, 4 insertions(+), 1 deletion(-) Reviewed-by: Richard Henderson <rth@twiddle.net> r~
diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index b64f899..338d3a6 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -3,6 +3,9 @@ #ifndef COMPILER_H #define COMPILER_H +#if defined __clang_analyzer__ || defined __COVERITY__ +#define QEMU_STATIC_ANALYSIS 1 +#endif /*---------------------------------------------------------------------------- | The macro QEMU_GNUC_PREREQ tests for minimum version of the GNU C compiler. diff --git a/tcg/tcg.h b/tcg/tcg.h index 66ae0c7..6046dcd 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -191,7 +191,7 @@ typedef uint64_t tcg_insn_unit; #endif -#ifdef CONFIG_DEBUG_TCG +#if defined CONFIG_DEBUG_TCG || defined QEMU_STATIC_ANALYSIS # define tcg_debug_assert(X) do { assert(X); } while (0) #elif QEMU_GNUC_PREREQ(4, 5) # define tcg_debug_assert(X) \
Assertions help both Coverity and the clang static analyzer avoid false positives, but on the other hand both are confused when the condition is compiled as (void)(x != FOO). Always expand assertion macros when using Coverity or clang, through a new QEMU_STATIC_ANALYSIS preprocessor symbol. This fixes a couple false positives in TCG. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- include/qemu/compiler.h | 3 +++ tcg/tcg.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-)