CONDITION が複数回評価されると等価にならなくなる可能性がでてくるので、
下のような、コンパイラがやってるっぽいことをすればいいと思う

(CONDITION)?goto LABEL_IF_TRUE001:goto LABEL_IF_FALSE001;
LABEL_IF_TRUE001:
...
goto LABEL_IF_END001
LABEL_IF_FALSE001:
...
LABEL_IF_END001: