diff options
author | Nick Mathewson <nickm@torproject.org> | 2008-12-11 20:23:46 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2008-12-11 20:23:46 +0000 |
commit | 4277b0e9265ca24d324e210ded904f1588b24df1 (patch) | |
tree | a022c52e7a9311407e62cabd8b91d27703b62d9d /src | |
parent | d9aa57253d7baebda2409c4f10b2989bacab3572 (diff) | |
download | tor-4277b0e9265ca24d324e210ded904f1588b24df1.tar.gz tor-4277b0e9265ca24d324e210ded904f1588b24df1.zip |
Remove some cargo-cult gcc hacks around tor_assert and predict_unlikely; instead, use the standard convert-to-boolean hack of "svn st"
svn:r17597
Diffstat (limited to 'src')
-rw-r--r-- | src/common/compat.h | 4 | ||||
-rw-r--r-- | src/common/util.h | 10 |
2 files changed, 3 insertions, 11 deletions
diff --git a/src/common/compat.h b/src/common/compat.h index df3cfba952..336c8cd136 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -143,7 +143,7 @@ extern INLINE double U64_TO_DBL(uint64_t x) { * except that it tells the compiler that the branch will be taken most of the * time. This can generate slightly better code with some CPUs. */ -#define PREDICT_LIKELY(exp) __builtin_expect((exp), 1) +#define PREDICT_LIKELY(exp) __builtin_expect(!!(exp), 1) /** Macro: Evaluates to <b>exp</b> and hints the compiler that the value * of <b>exp</b> will probably be false. * @@ -151,7 +151,7 @@ extern INLINE double U64_TO_DBL(uint64_t x) { * except that it tells the compiler that the branch will usually not be * taken. This can generate slightly better code with some CPUs. */ -#define PREDICT_UNLIKELY(exp) __builtin_expect((exp), 0) +#define PREDICT_UNLIKELY(exp) __builtin_expect(!!(exp), 0) #else #define ATTR_NORETURN #define ATTR_PURE diff --git a/src/common/util.h b/src/common/util.h index 4f8182949c..e8d78c9847 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -41,18 +41,10 @@ #error "Sorry; we don't support building with NDEBUG." #endif -#if defined(__GNUC__) -/* Give an int-valued version of !x that won't confuse PREDICT_UNLIKELY, - * which does poorly with pointer types on some versions of glibc. */ -#define IS_FALSE_AS_INT(x) ((x) == ((typeof(x)) 0)) -#else -#define IS_FALSE_AS_INT(x) !(x) -#endif - /** Like assert(3), but send assertion failures to the log as well as to * stderr. */ #define tor_assert(expr) STMT_BEGIN \ - if (PREDICT_UNLIKELY(IS_FALSE_AS_INT(expr))) { \ + if (PREDICT_UNLIKELY(!(expr))) { \ log(LOG_ERR, LD_BUG, "%s:%d: %s: Assertion %s failed; aborting.", \ _SHORT_FILE_, __LINE__, __func__, #expr); \ fprintf(stderr,"%s:%d %s: Assertion %s failed; aborting.\n", \ |