summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2014-05-15 18:01:52 +1000
committerDamien Miller <djm@mindrot.org>2014-05-15 18:01:52 +1000
commit7f1c264d3049cd95234e91970ccb5406e1d15b27 (patch)
tree6a96515de44203cc221ea5e0019bbf7bcfd9e5f4
parente7429f2be8643e1100380a8a7389d85cc286c8fe (diff)
downloadopenssh-git-7f1c264d3049cd95234e91970ccb5406e1d15b27.tar.gz
- (djm) [sshbuf.c] need __predict_false
-rw-r--r--ChangeLog1
-rw-r--r--sshbuf.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6f8deb43..3d8b9af0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -139,6 +139,7 @@
[regress/unittests/test_helper/fuzz.c]
[regress/unittests/test_helper/test_helper.c]
Hook new unit tests into the build and "make tests"
+ - (djm) [sshbuf.c] need __predict_false
20140430
- (dtucker) [defines.h] Define __GNUC_PREREQ__ macro if we don't already
diff --git a/sshbuf.c b/sshbuf.c
index 36a8b92f..7f7b9f1d 100644
--- a/sshbuf.c
+++ b/sshbuf.c
@@ -28,6 +28,16 @@
#include "ssherr.h"
#include "sshbuf.h"
+/* XXX move to defines.h? */
+#if defined(__GNUC__) && \
+ ((__GNUC__ > (2)) || (__GNUC__ == (2) && __GNUC_MINOR__ >= (96)))
+#define __predict_true(exp) __builtin_expect(((exp) != 0), 1)
+#define __predict_false(exp) __builtin_expect(((exp) != 0), 0)
+#else
+#define __predict_true(exp) ((exp) != 0)
+#define __predict_false(exp) ((exp) != 0)
+#endif
+
static inline int
sshbuf_check_sanity(const struct sshbuf *buf)
{