ccanlint: Correct default coverage tool for clang
authorDavid Gibson <david@gibson.dropbear.id.au>
Wed, 18 Jan 2017 21:56:48 +0000 (08:56 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 18 Jan 2017 23:23:38 +0000 (10:23 +1100)
Currently ccanlint defaults to using "gcov" as the coverage analysis tool
for any compiler defining __GNUC__.  That's generally correct for the
(system default) gcc.  However, clang also defines __GNUC__ because it
implements the GCC langauge extensions.  For clang, "gcov" is not the
correct coverage tool (clang does use roughly the gcov format, but unless
you're very lucky the system gcc and system clang won't use the same gcov
versions).

This changes the default coverage tool in the case of clang to the correct
"llvm-cov gcov".

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
tools/gcov.c

index c36f69b09da87500ed9654b82234a33544f39bf4..79528c1b9e855b705b3986fc2c683791a624db28 100644 (file)
@@ -13,7 +13,9 @@ bool run_gcov(const void *ctx, unsigned int *time_ms, char **output,
        bool rc;
 
        if (!gcov) {
-#ifdef __GNUC__
+#if defined(__clang__)
+               cmd = "llvm-cov gcov";
+#elif defined(__GNUC__)
                cmd = "gcov";
 #endif
        }