From: Rusty Russell Date: Wed, 26 Oct 2011 06:26:22 +0000 (+1030) Subject: compiler, ilog: IDEMPOTENT "idempotent does not mean what you think it means" X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=e764d0a27d2b6748ea7d343042ec7d6dda1f6aae compiler, ilog: IDEMPOTENT "idempotent does not mean what you think it means" Actually, I don't even think it means that. But rename it to something which is sane. Thanks to David Gibson for reporting. --- diff --git a/ccan/compiler/_info b/ccan/compiler/_info index e42ebb0f..9f394539 100644 --- a/ccan/compiler/_info +++ b/ccan/compiler/_info @@ -10,7 +10,7 @@ * For functions not called in fast paths (aka. cold functions) * - PRINTF_FMT * For functions which take printf-style parameters. - * - IDEMPOTENT + * - CONST_FUNCTION * For functions which return the same value for same parameters. * - NEEDED * For functions and variables which must be emitted even if unused. @@ -18,7 +18,7 @@ * For functions and variables which need not be emitted if unused. * - UNUSED * For parameters which are not used. - * - IS_COMPILE_CONSTANT + * - IS_COMPILE_CONSTANT() * For using different tradeoffs for compiletime vs runtime evaluation. * * License: Public Domain diff --git a/ccan/compiler/compiler.h b/ccan/compiler/compiler.h index 74e0f183..fcb89c8f 100644 --- a/ccan/compiler/compiler.h +++ b/ccan/compiler/compiler.h @@ -61,18 +61,18 @@ #endif #endif -#ifndef IDEMPOTENT +#ifndef CONST_FUNCTION #if HAVE_ATTRIBUTE_CONST /** - * IDEMPOTENT - a function's return depends only on its argument + * CONST_FUNCTION - a function's return depends only on its argument * * This allows the compiler to assume that the function will return the exact * same value for the exact same arguments. This implies that the function * must not use global variables, or dereference pointer arguments. */ -#define IDEMPOTENT __attribute__((const)) +#define CONST_FUNCTION __attribute__((const)) #else -#define IDEMPOTENT +#define CONST_FUNCTION #endif #endif diff --git a/ccan/ilog/ilog.h b/ccan/ilog/ilog.h index 1a471c2d..e52f0423 100644 --- a/ccan/ilog/ilog.h +++ b/ccan/ilog/ilog.h @@ -25,7 +25,7 @@ * return 1U << ilog32(i-1); * } */ -int ilog32(uint32_t _v) IDEMPOTENT; +int ilog32(uint32_t _v) CONST_FUNCTION; /** * ilog32_nz - Integer binary logarithm of a non-zero 32-bit value. @@ -44,7 +44,7 @@ int ilog32(uint32_t _v) IDEMPOTENT; * return ilog32_nz(i) - 1; * } */ -int ilog32_nz(uint32_t _v) IDEMPOTENT; +int ilog32_nz(uint32_t _v) CONST_FUNCTION; /** * ilog64 - Integer binary logarithm of a 64-bit value. @@ -56,7 +56,7 @@ int ilog32_nz(uint32_t _v) IDEMPOTENT; * See Also: * ilog64_nz(), ilog32() */ -int ilog64(uint64_t _v) IDEMPOTENT; +int ilog64(uint64_t _v) CONST_FUNCTION; /** * ilog64_nz - Integer binary logarithm of a non-zero 64-bit value. @@ -68,7 +68,7 @@ int ilog64(uint64_t _v) IDEMPOTENT; * See Also: * ilog64(), ilog32_nz() */ -int ilog64_nz(uint64_t _v) IDEMPOTENT; +int ilog64_nz(uint64_t _v) CONST_FUNCTION; /** * STATIC_ILOG_32 - The integer logarithm of an (unsigned, 32-bit) constant.