branch conditions can have sideeffects