[PATCH] evaluate_statement() fixes
commitc0d5017c32494fc780c6fd47c36183057a7ca6af
authorAlexander Viro <viro@www.linux.org.uk>
Sat, 14 Aug 2004 05:58:58 +0000 (13 22:58 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 8 Apr 2005 04:02:48 +0000 (7 21:02 -0700)
treedbe2ea3b860d85851ed1bb09a93798066240ca15
parent0f5cdc423ee1720f4909fc731c24bf1b7ad5a3e9
[PATCH] evaluate_statement() fixes

1) Eliminate double evaluate_conditional() on loop condition -
we get the same reference both in ->iterator_post_condition and
->iterator_pre_condition and evaluate_statement() didn't take that
into account.
2) In handling of if() do not bail if evaluate_conditional()
had failed - that way we'll catch what there is to catch in ->if_true
and ->if_false (their evaluation doesn't depend on type errors in
condition) _and_ won't get noise from linearizer confused by unevaluated
statements.
3) In <expr>; do not try to degenerate the expression if
evaluate_expression() had failed - again, less noise that way.

Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
evaluate.c