On Thu, Sep 02, 2021 at 10:41:52AM -0400, Jason Merrill via Gcc-patches wrote: > 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?
Please! One nit: > --- > 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. */ s/NODE/T/ > -#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 > Marek