mirror of
https://github.com/samba-team/samba.git
synced 2025-02-23 09:57:40 +03:00
lib/ccan/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. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit e764d0a27d2b6748ea7d343042ec7d6dda1f6aae)
This commit is contained in:
parent
ab2c07b8f0
commit
3b390b754e
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user