summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordougm <dougm@FreeBSD.org>2020-06-10 02:50:25 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-10-26 14:18:46 +0100
commite83aad1851e8fa453c53e1663141f48014ea4a7c (patch)
tree488d41d6687fdc8b322badaa6a87a77faf3f8653
parent5b29be92e3267109c3cb48d22fa9e0f09aa9d150 (diff)
downloadcygnal-e83aad1851e8fa453c53e1663141f48014ea4a7c.tar.gz
cygnal-e83aad1851e8fa453c53e1663141f48014ea4a7c.tar.bz2
cygnal-e83aad1851e8fa453c53e1663141f48014ea4a7c.zip
Restore an RB_COLOR macro, for the benefit of
a bit of DIAGNOSTIC code that depends on it. Reported by: rpokala, mjguzik Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D25204
-rw-r--r--newlib/libc/include/sys/tree.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/newlib/libc/include/sys/tree.h b/newlib/libc/include/sys/tree.h
index 29b731822..7c2053981 100644
--- a/newlib/libc/include/sys/tree.h
+++ b/newlib/libc/include/sys/tree.h
@@ -333,6 +333,12 @@ struct { \
#define RB_TRUE 1
#define RB_FALSE 0
+/* For debugging support */
+#define RB_COLOR(elm, field) (RB_PARENT(elm, field) == NULL ? RB_FALSE : \
+ RB_LEFT(RB_PARENT(elm, field), field) == elm ? \
+ RB_RED_LF(RB_PARENT(elm, field), field) : \
+ RB_RED_RT(RB_PARENT(elm, field), field)
+
/*
* Something to be invoked in a loop at the root of every modified subtree,
* from the bottom up to the root, to update augmented node data.