tree: Change error_operand_p to an inline function
authorJason Merrill <jason@redhat.com>
Tue, 31 Aug 2021 16:54:37 +0000 (12:54 -0400)
committerJason Merrill <jason@redhat.com>
Tue, 7 Sep 2021 18:09:38 +0000 (14:09 -0400)
I've thought for a while that many of the macros in tree.h and such should
become inline functions.  This one in particular was confusing Coverity; the
null check in the macro made it think that all code guarded by
error_operand_p would also need null checks.

gcc/ChangeLog:

* tree.h (error_operand_p): Change to inline function.

gcc/tree.h

index 1559fe0..1b51420 100644 (file)
@@ -4365,11 +4365,14 @@ tree_strip_any_location_wrapper (tree exp)
 #define long_long_integer_type_node    integer_types[itk_long_long]
 #define long_long_unsigned_type_node   integer_types[itk_unsigned_long_long]
 
-/* True if NODE is an erroneous expression.  */
+/* True if T is an erroneous expression.  */
 
-#define error_operand_p(NODE)                                  \
-  ((NODE) == error_mark_node                                   \
-   || ((NODE) && TREE_TYPE ((NODE)) == error_mark_node))
+inline bool
+error_operand_p (const_tree t)
+{
+  return (t == error_mark_node
+         || (t && TREE_TYPE (t) == error_mark_node));
+}
 
 /* Return the number of elements encoded directly in a VECTOR_CST.  */