
On Fri, Nov 20, 2020 at 06:57:10AM -0500, John Ferlan wrote:
On 11/16/20 10:36 AM, Pavel Hrdina wrote:
Inspired by QEMU code.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- meson.build | 14 -------------- src/internal.h | 4 ++++ 2 files changed, 4 insertions(+), 14 deletions(-)
diff --git a/meson.build b/meson.build index cecaad199d..dbbc9632f1 100644 --- a/meson.build +++ b/meson.build @@ -142,20 +142,6 @@ if get_option('test_coverage') endif
-# Detect when running under the clang static analyzer's scan-build driver -# or Coverity-prevent's cov-build. Define STATIC_ANALYSIS accordingly. - -rc = run_command( - 'sh', '-c', - 'test -n "${CCC_ANALYZER_HTML}"' + - ' -o -n "${CCC_ANALYZER_ANALYSIS+set}"' + - ' -o -n "$COVERITY_BUILD_COMMAND$COVERITY_LD_PRELOAD"', -) -if rc.returncode() == 0 - conf.set('STATIC_ANALYSIS', 1) -endif - - # Add RPATH information when building for a non-standard prefix, or # when explicitly requested to do so
diff --git a/src/internal.h b/src/internal.h index d167e56b48..5226667d3d 100644 --- a/src/internal.h +++ b/src/internal.h @@ -29,6 +29,10 @@ #include <stdlib.h> #include "glibcompat.h"
+#if defined __clang_analyzer__ || defined __COVERITY__
^^ Bah humbug ... what defines __COVERITY__ then?
In my Coverity environment, nothing... OK, sure I can add it, no problem but something in QEMU's coverity build environment must do that as it's not predefined as far as I can tell.
Hi John, There is no need to add it anywhere. When building something using coverity it is indeed not defined so GCC will ignore any code guarded with __COVERITY__. The __COVERITY__ is defined by cov-emit binary which is executed by cov-build internally which creates the files that are later analyzed. This is directly from cov-emit --help: Description The cov-emit command parses a source file and outputs it into a directory (emit repository) that can later be analyzed with cov-analyze. The cov-emit command is typically called by cov-translate, which is in turn typically called by cov-build (cov-emit is a low-level command and is not normally called directly). The cov-emit command defines the __COVERITY__ preprocessor symbol. Pavel