I noticed that GCC >= 3.3 (not tried the ones before) automatically branches out the "if" code (and follow-through the "else" code, if there). Is that a coincidence or a rule we can rely on going forward?