From 0403104f65dd8cce4c71270d492d0922a7f2702c Mon Sep 17 00:00:00 2001
From: Waffl3x <waff...@baylibre.com>
Date: Tue, 8 Jul 2025 19:28:12 -0600
Subject: [PATCH 2/3] tree: Add 7 and 8 argument TREE_CHECK_* and
 TREE_NOT_CHECK_*

I needed an 8 argument version of TREE_NOT_CHECK_*, it felt wrong to leave
a gap so the other versions are also added.  Maybe we should add a variadic
version instead though?

gcc/ChangeLog:

	* tree.h (TREE_CHECK7): Define.
	(TREE_NOT_CHECK7): Likewise.
	(TREE_CHECK8): Likewise.
	(TREE_NOT_CHECK8): Likewise.
	(tree_check7): New.
	(tree_not_check7): New.
	(tree_check8): New.
	(tree_not_check8): New.

Signed-off-by: Waffl3x <waff...@baylibre.com>
---
 gcc/tree.h | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 169 insertions(+)

diff --git a/gcc/tree.h b/gcc/tree.h
index 8b2d7fd481f..6c0ce8e0908 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -370,6 +370,23 @@ code_helper::is_builtin_fn () const
 #define TREE_NOT_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) \
 (tree_not_check6 ((T), __FILE__, __LINE__, __FUNCTION__, \
 			(CODE1), (CODE2), (CODE3), (CODE4), (CODE5), (CODE6)))
+#define TREE_CHECK7(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6, CODE7) \
+(tree_check7 ((T), __FILE__, __LINE__, __FUNCTION__, \
+	      (CODE1), (CODE2), (CODE3), (CODE4), (CODE5), (CODE6), (CODE7)))
+
+#define TREE_NOT_CHECK7(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6, CODE7) \
+(tree_not_check7 ((T), __FILE__, __LINE__, __FUNCTION__, \
+		  (CODE1), (CODE2), (CODE3), (CODE4), \
+		  (CODE5), (CODE6), (CODE7)))
+#define TREE_CHECK8(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6, CODE7, CODE8) \
+(tree_check8 ((T), __FILE__, __LINE__, __FUNCTION__, \
+	      (CODE1), (CODE2), (CODE3), (CODE4), \
+	      (CODE5), (CODE6), (CODE7), (CODE8)))
+
+#define TREE_NOT_CHECK8(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6, CODE7, CODE8) \
+(tree_not_check8 ((T), __FILE__, __LINE__, __FUNCTION__, \
+		  (CODE1), (CODE2), (CODE3), (CODE4), \
+		  (CODE5), (CODE6), (CODE7), CODE8))
 
 #define CONTAINS_STRUCT_CHECK(T, STRUCT) \
 (contains_struct_check ((T), (STRUCT), __FILE__, __LINE__, __FUNCTION__))
@@ -503,6 +520,10 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
 #define TREE_NOT_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) (T)
 #define TREE_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) (T)
 #define TREE_NOT_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) (T)
+#define TREE_CHECK7(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6, CODE7) (T)
+#define TREE_NOT_CHECK7(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6, CODE7) (T)
+#define TREE_CHECK8(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6, CODE7, CODE8) (T)
+#define TREE_NOT_CHECK8(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6, CODE7, CODE8) (T)
 #define TREE_CLASS_CHECK(T, CODE)		(T)
 #define TREE_RANGE_CHECK(T, CODE1, CODE2)	(T)
 #define TREE_NOT_RANGE_CHECK(T, CODE1, CODE2)	(T)
@@ -3863,6 +3884,80 @@ tree_not_check6 (tree __t, const char *__f, int __l, const char *__g,
   return __t;
 }
 
+inline tree
+tree_check7 (tree __t, const char *__f, int __l, const char *__g,
+	     enum tree_code __c1, enum tree_code __c2, enum tree_code __c3,
+	     enum tree_code __c4, enum tree_code __c5, enum tree_code __c6,
+	     enum tree_code __c7)
+{
+  if (TREE_CODE (__t) == __c1
+      || TREE_CODE (__t) == __c2
+      || TREE_CODE (__t) == __c3
+      || TREE_CODE (__t) == __c4
+      || TREE_CODE (__t) == __c5
+      || TREE_CODE (__t) == __c6
+      || TREE_CODE (__t) == __c7)
+    tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, __c6,
+		       __c7, 0);
+  return __t;
+}
+
+inline tree
+tree_not_check7 (tree __t, const char *__f, int __l, const char *__g,
+		 enum tree_code __c1, enum tree_code __c2, enum tree_code __c3,
+		 enum tree_code __c4, enum tree_code __c5, enum tree_code __c6,
+		 enum tree_code __c7)
+{
+  if (TREE_CODE (__t) == __c1
+      || TREE_CODE (__t) == __c2
+      || TREE_CODE (__t) == __c3
+      || TREE_CODE (__t) == __c4
+      || TREE_CODE (__t) == __c5
+      || TREE_CODE (__t) == __c6
+      || TREE_CODE (__t) == __c7)
+    tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5,
+			   __c6, __c7, 0);
+  return __t;
+}
+
+inline tree
+tree_check8 (tree __t, const char *__f, int __l, const char *__g,
+	     enum tree_code __c1, enum tree_code __c2, enum tree_code __c3,
+	     enum tree_code __c4, enum tree_code __c5, enum tree_code __c6,
+	     enum tree_code __c7, enum tree_code __c8)
+{
+  if (TREE_CODE (__t) == __c1
+      || TREE_CODE (__t) == __c2
+      || TREE_CODE (__t) == __c3
+      || TREE_CODE (__t) == __c4
+      || TREE_CODE (__t) == __c5
+      || TREE_CODE (__t) == __c6
+      || TREE_CODE (__t) == __c7
+      || TREE_CODE (__t) == __c8)
+    tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, __c6,
+		       __c7, __c8, 0);
+  return __t;
+}
+
+inline tree
+tree_not_check8 (tree __t, const char *__f, int __l, const char *__g,
+		 enum tree_code __c1, enum tree_code __c2, enum tree_code __c3,
+		 enum tree_code __c4, enum tree_code __c5, enum tree_code __c6,
+		 enum tree_code __c7, enum tree_code __c8)
+{
+  if (TREE_CODE (__t) == __c1
+      || TREE_CODE (__t) == __c2
+      || TREE_CODE (__t) == __c3
+      || TREE_CODE (__t) == __c4
+      || TREE_CODE (__t) == __c5
+      || TREE_CODE (__t) == __c6
+      || TREE_CODE (__t) == __c7
+      || TREE_CODE (__t) == __c8)
+    tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5,
+			   __c6, __c7, __c8, 0);
+  return __t;
+}
+
 inline tree
 contains_struct_check (tree __t, const enum tree_node_structure_enum __s,
                        const char *__f, int __l, const char *__g)
@@ -4161,6 +4256,80 @@ tree_not_check6 (const_tree __t, const char *__f, int __l, const char *__g,
   return __t;
 }
 
+inline const_tree
+tree_check7 (const_tree __t, const char *__f, int __l, const char *__g,
+	     enum tree_code __c1, enum tree_code __c2, enum tree_code __c3,
+	     enum tree_code __c4, enum tree_code __c5, enum tree_code __c6,
+	     enum tree_code __c7)
+{
+  if (TREE_CODE (__t) == __c1
+      || TREE_CODE (__t) == __c2
+      || TREE_CODE (__t) == __c3
+      || TREE_CODE (__t) == __c4
+      || TREE_CODE (__t) == __c5
+      || TREE_CODE (__t) == __c6
+      || TREE_CODE (__t) == __c7)
+    tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, __c6,
+		       __c7, 0);
+  return __t;
+}
+
+inline const_tree
+tree_not_check7 (const_tree __t, const char *__f, int __l, const char *__g,
+		 enum tree_code __c1, enum tree_code __c2, enum tree_code __c3,
+		 enum tree_code __c4, enum tree_code __c5, enum tree_code __c6,
+		 enum tree_code __c7)
+{
+  if (TREE_CODE (__t) == __c1
+      || TREE_CODE (__t) == __c2
+      || TREE_CODE (__t) == __c3
+      || TREE_CODE (__t) == __c4
+      || TREE_CODE (__t) == __c5
+      || TREE_CODE (__t) == __c6
+      || TREE_CODE (__t) == __c7)
+    tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5,
+			   __c6, __c7, 0);
+  return __t;
+}
+
+inline const_tree
+tree_check8 (const_tree __t, const char *__f, int __l, const char *__g,
+	     enum tree_code __c1, enum tree_code __c2, enum tree_code __c3,
+	     enum tree_code __c4, enum tree_code __c5, enum tree_code __c6,
+	     enum tree_code __c7, enum tree_code __c8)
+{
+  if (TREE_CODE (__t) == __c1
+      || TREE_CODE (__t) == __c2
+      || TREE_CODE (__t) == __c3
+      || TREE_CODE (__t) == __c4
+      || TREE_CODE (__t) == __c5
+      || TREE_CODE (__t) == __c6
+      || TREE_CODE (__t) == __c7
+      || TREE_CODE (__t) == __c8)
+    tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, __c6,
+		       __c7, __c8, 0);
+  return __t;
+}
+
+inline const_tree
+tree_not_check8 (const_tree __t, const char *__f, int __l, const char *__g,
+		 enum tree_code __c1, enum tree_code __c2, enum tree_code __c3,
+		 enum tree_code __c4, enum tree_code __c5, enum tree_code __c6,
+		 enum tree_code __c7, enum tree_code __c8)
+{
+  if (TREE_CODE (__t) == __c1
+      || TREE_CODE (__t) == __c2
+      || TREE_CODE (__t) == __c3
+      || TREE_CODE (__t) == __c4
+      || TREE_CODE (__t) == __c5
+      || TREE_CODE (__t) == __c6
+      || TREE_CODE (__t) == __c7
+      || TREE_CODE (__t) == __c8)
+    tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5,
+			   __c6, __c7, __c8, 0);
+  return __t;
+}
+
 inline const_tree
 contains_struct_check (const_tree __t, const enum tree_node_structure_enum __s,
                        const char *__f, int __l, const char *__g)
-- 
2.49.0

Reply via email to