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.
Tested x86_64-pc-linux-gnu. OK for trunk? --- gcc/tree.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gcc/tree.h b/gcc/tree.h index 2c8973f34e2..5f27f02df9e 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -4349,9 +4349,12 @@ tree_strip_any_location_wrapper (tree exp) /* True if NODE 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. */ base-commit: 483e400870601f650c80f867ec781cd5f83507d6 -- 2.27.0