Except when they appear in the condition operand of a COND_EXPR
,
logical `and' and `or' operators are simplified as follows:
a = b && c
becomes
T1 = (bool)b; if (T1) T1 = (bool)c; a = T1;
Note that T1
in this example cannot be an expression temporary,
because it has two different assignments.