[PATCH 07/11] Restore an RB_COLOR macro, for the benefit of

Sebastian Huber sebastian.huber@embedded-brains.de
Mon Oct 19 16:05:20 GMT 2020


From: dougm <dougm@FreeBSD.org>

a bit of DIAGNOSTIC code that depends on it.

Reported by:	rpokala, mjguzik
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D25204
---
 newlib/libc/include/sys/tree.h | 6 ++++++
 1 file changed, 6 insertions(+)

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.
-- 
2.26.2



More information about the Newlib mailing list