From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43054) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPQU3-00066D-SQ for qemu-devel@nongnu.org; Tue, 19 Jul 2016 04:34:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bPQTy-0003LY-Lw for qemu-devel@nongnu.org; Tue, 19 Jul 2016 04:34:31 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:34311) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPQTy-0003LL-G6 for qemu-devel@nongnu.org; Tue, 19 Jul 2016 04:34:26 -0400 Received: by mail-wm0-x242.google.com with SMTP id q128so2024498wma.1 for ; Tue, 19 Jul 2016 01:34:26 -0700 (PDT) Received: from donizetti.lan (94-39-158-5.adsl-ull.clienti.tiscali.it. [94.39.158.5]) by smtp.gmail.com with ESMTPSA id o142sm20886055wme.20.2016.07.19.01.34.24 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jul 2016 01:34:25 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Tue, 19 Jul 2016 10:34:11 +0200 Message-Id: <1468917259-8475-5-git-send-email-pbonzini@redhat.com> In-Reply-To: <1468917259-8475-1-git-send-email-pbonzini@redhat.com> References: <1468917259-8475-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PULL 04/12] compiler: never omit assertions if using a static analysis tool List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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 --- include/qemu/compiler.h | 3 +++ tcg/tcg.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) 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) \ -- 2.7.4