Ian Lance Taylor wrote:
The description of tcc_statement in tree.h says "A statement
expression, which have side effects but usually no interesting value."

There are a number of entries in cp/cp-tree.def which are marked as
tcc_expression, although they seem to me to be better described as
tcc_statement, to wit:


In a quick look at the C++ front end, I can only find one bit of code
which cares whether it is looking at a tcc_expression or a
tcc_statement: value_dependent_expression_p in pt.c.  That function
will always return false for a statement.  For all of the tree codes
listed above, currently class tcc_expression, the function will call
itself recursively on expression operands.  I haven't tried to track
all the calls to see whether any of the above codes can be passed to
value_dependent_expression_p, but it doesn't seem likely.

None of the statement nodes you mention can be value dependent. If that's the only place that cares, they should be tcc_statement.

Anyhow, I'm testing the obvious patch to use tcc_statement instead of
tcc_expression in cp-tree.def, and I will submit it to gcc-patches if
it works.  At the moment I'm curious as to whether anybody has a
reason why these codes should be tcc_expression rather than
tcc_statement.
I cannot think of any.

nathan
--
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
[EMAIL PROTECTED]    ::     http://www.planetfall.pwp.blueyonder.co.uk



Reply via email to