rewrote a few expressions with undefined evaluation order (for which gcc versions < 4.7.3 never warned?!)