diff --git a/ccan/likely/_info b/ccan/likely/_info index 252169b362c8bf21ef9e21530df1b58db8e983d8..ac43cc2b1a943702c80844f01ffbdb1c5079a751 100644 --- a/ccan/likely/_info +++ b/ccan/likely/_info @@ -9,6 +9,9 @@ * help you annotate rare paths in your code for the convenience of the * compiler and the reader. * + * With CCAN_LIKELY_DEBUG defined, it provides statistics for each + * likely()/unlikely() call. + * * License: LGPL (v2.1 or any later version) * Author: Rusty Russell <rusty@rustcorp.com.au> * @@ -35,11 +38,20 @@ int main(int argc, char *argv[]) return 1; if (strcmp(argv[1], "depends") == 0) { +#ifdef CCAN_LIKELY_DEBUG printf("ccan/str\n"); printf("ccan/htable\n"); printf("ccan/hash\n"); +#endif + return 0; + } + if (strcmp(argv[1], "testdepends") == 0) { +#ifndef CCAN_LIKELY_DEBUG + printf("ccan/str\n"); + printf("ccan/htable\n"); + printf("ccan/hash\n"); +#endif return 0; } - return 1; } diff --git a/ccan/likely/likely.h b/ccan/likely/likely.h index 410772dbde78a37ec99c64261758961ae2f2821b..8683a2c94782104153ebe98f976eac38d61e45ba 100644 --- a/ccan/likely/likely.h +++ b/ccan/likely/likely.h @@ -2,7 +2,6 @@ #ifndef CCAN_LIKELY_H #define CCAN_LIKELY_H #include "config.h" -#include <ccan/str/str.h> #include <stdbool.h> #ifndef CCAN_LIKELY_DEBUG @@ -57,6 +56,8 @@ #define unlikely(cond) (!!(cond)) #endif #else /* CCAN_LIKELY_DEBUG versions */ +#include <ccan/str/str.h> + #define likely(cond) \ (_likely_trace(!!(cond), 1, stringify(cond), __FILE__, __LINE__)) #define unlikely(cond) \ @@ -65,9 +66,6 @@ long _likely_trace(bool cond, bool expect, const char *condstr, const char *file, unsigned int line); -#endif - -#ifdef CCAN_LIKELY_DEBUG /** * likely_stats - return description of abused likely()/unlikely() * @min_hits: minimum number of hits diff --git a/ccan/likely/test/run-debug.c b/ccan/likely/test/run-debug.c index afb21e2be2fd1fd966df24d6e0cf80228cafc38b..83f22afab2bf622141ebb4330af9c88e9de96c4f 100644 --- a/ccan/likely/test/run-debug.c +++ b/ccan/likely/test/run-debug.c @@ -98,3 +98,8 @@ int main(int argc, char *argv[]) exit(exit_status()); } + +/* Fools ccanlint: it doesn't think we use str, htable or hash. */ +#include <ccan/hash/hash.h> +#include <ccan/htable/htable.h> +#include <ccan/str/str.h>