Probably caused by `exceptions:goto`, this is the output of `fib` without arc on 1.6.10: N_LIB_PRIVATE N_NIMCALL(NI, fib)(NI n) { NI result; result = (NI)0; { if (!(n < ((NI) 2))) goto LA3_; result = n; } goto LA1_; LA3_: ; { NI T6_; NI T7_; T6_ = (NI)0; T6_ = fib((NI)(n - ((NI) 1))); T7_ = (NI)0; T7_ = fib((NI)(n - ((NI) 2))); result = (NI)(T6_ + T7_); } LA1_: ; return result; } Run
And with arc: N_LIB_PRIVATE N_NIMCALL(NI, fib)(NI n) { NI result; NI colontmpD_; NI colontmpD__2; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NI)0; colontmpD_ = (NI)0; colontmpD__2 = (NI)0; { if (!(n < ((NI) 2))) goto LA3_; colontmpD_ = n; result = colontmpD_; } goto LA1_; LA3_: ; { NI T6_; NI T7_; T6_ = (NI)0; T6_ = fib((NI)(n - ((NI) 1))); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; T7_ = (NI)0; T7_ = fib((NI)(n - ((NI) 2))); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; colontmpD__2 = (NI)(T6_ + T7_); result = colontmpD__2; } LA1_: ; }BeforeRet_: ; return result; } Run