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

Reply via email to