fix compile_if bug