Document and simplify ResolveCondition.
- Introduce a temporary special case for temporary desctructors when resolving
the branch condition - in an upcoming patch, alexmc will change temporary
destructor conditions to not run through this logic, in which case we can remove
this (marked as FIXME); this currently fixes a crash.
- Simplify ResolveCondition; while documenting the function, I noticed that it
always returns the last statement - either that statement is the condition
itself (in which case the condition was returned anyway), or the rightmost
leaf is returned; for correctness, the rightmost leaf must be evaluated anyway
(which the CFG does in the last statement), thus we can just return the last
statement in that case, too. Added an assert to verify the invariant; no tests
break - please let me know if I'm missing obvious test cases here, or this
doesn't make sense for some other reason.
Please follow the new LLVM style with lowercase function names. This can also be static. (And the asterisks go on the right of the space.)