Coder Social home page Coder Social logo

Comments (8)

ringabout avatar ringabout commented on May 31, 2024 2

related to #22852

from nim.

ringabout avatar ringabout commented on May 31, 2024 1

!nim c

proc foo() =
  for _ in @[1, 3, 5]:
    discard "abcde"[25..<10]
    break
  echo "Passed"

when isMainModule:
  foo()

from nim.

ringabout avatar ringabout commented on May 31, 2024 1

!nim c --gc:refc

proc foo() =
  for _ in @[1, 3, 5]:
    discard "abcde"[25..<10]
    break
  echo "Passed"

when isMainModule:
  foo()

from nim.

ringabout avatar ringabout commented on May 31, 2024 1

It seems to be an issue of goto exception

from nim.

gcr avatar gcr commented on May 31, 2024

Removing the break hides the issue.

The diff between the two generated codes is illuminating. Without the break, the flow jumps much farther to BeforeRet_ and the unitialized value isn't dereferenced at all.

from nim.

gcr avatar gcr commented on May 31, 2024

!nim c

proc foo() =
  for _ in @[1, 3, 5]:
    discard "abcde"[25..<10]
    break
  echo "Passed"

when isMainModule:
  foo()

from nim.

github-actions avatar github-actions commented on May 31, 2024
🐧 Linux bisect by @ringabout (member)
devel 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Traceback (most recent call last)
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
Segmentation fault (core dumped)
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34)       raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]

IR

Compiled filesize 98.38 Kb (100,736 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA;
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
struct NimStrPayload {
 NI cap;
 NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
 NI len;
 NimStrPayload* p;
};
struct tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA {
 NI a;
 NI b;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
static N_INLINE(NimStringV2, X5BX5D___temp_u91)(NimStringV2 s_p0, tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA x_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringV2, mnewString)(NI len_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimPrepareStrMutationImpl__system_u2413)(NimStringV2* s_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4608)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA, dotdot___temp_u34)(NI a_p0, NI b_p1);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u128)(tySequence__qwqHTkRvwhrRyENtudHQ7g dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u254)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[5+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 5 | NIM_STRLIT_FLAG, "abcde" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_7 = {5, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6};
static const struct {
NI cap; NIM_CHAR data[147+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 147 | NIM_STRLIT_FLAG, "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/iterators.nim(254, 11) `len(a) == L` the length of the seq changed while iterating over it" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_9 = {147, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8};
static const struct {
NI cap; NIM_CHAR data[6+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_11 = { 6 | NIM_STRLIT_FLAG, "Passed" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_10 = {{6, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_11}}
;
extern NIM_THREADVAR TFrame* framePtr__system_u2688;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4392;
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0) {
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = !(((*s_p0).p == ((NimStrPayload*) NIM_NIL)));
  if (!(T3_)) goto LA4_;
  T3_ = ((NI)((*(*s_p0).p).cap & ((NI)IL64(4611686018427387904))) == ((NI)IL64(4611686018427387904)));
LA4_: ;
  if (!T3_) goto LA5_;
  nimPrepareStrMutationImpl__system_u2413(s_p0);
 }
LA5_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u2688 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u2688).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u2688;
 framePtr__system_u2688 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u4608();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u2688 = (*framePtr__system_u2688).prev;
}
static N_INLINE(NimStringV2, X5BX5D___temp_u91)(NimStringV2 s_p0, tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA x_p1) {
 NimStringV2 result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/indices.nim");
{	a = x_p1.a;
 if (nimSubInt(x_p1.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); goto BeforeRet_;
 };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto BeforeRet_;
 };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI)0) || (L) > ((NI)IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI)0), ((NI)IL64(9223372036854775807))); goto BeforeRet_;
 }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI)0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if (i < 0 || i >= result.len){ raiseIndexError2(i,result.len-1); goto BeforeRet_;
    }
    nimPrepareStrMutationV2((&result));
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); goto BeforeRet_;
    };
    if ((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) < 0 || (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) >= s_p0.len){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),s_p0.len-1); goto BeforeRet_;
    }
    result.p->data[i] = s_p0.p->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); goto BeforeRet_;
    };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 }BeforeRet_: ;
 popFrame();
 return result;
}
static N_INLINE(tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA, dotdot___temp_u34)(NI a_p0, NI b_p1) {
 tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-#devel/lib/system.nim");
 result.a = a_p0;
 result.b = b_p1;
 popFrame();
 return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
 NIM_BOOL* result;
 result = (&nimInErrorMode__system_u4392);
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void) {
NIM_BOOL* nimErr_;
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 {
  tySequence__qwqHTkRvwhrRyENtudHQ7g colontmp_;
  NI* _;
  NI i;
  NI L;
  NI T3_;
  colontmp_.len = 0; colontmp_.p = NIM_NIL;
  _ = (NI*)0;
  colontmp_.len = 3; colontmp_.p = (tySequence__qwqHTkRvwhrRyENtudHQ7g_Content*) newSeqPayload(3, sizeof(NI), NIM_ALIGNOF(NI));
  colontmp_.p->data[0] = ((NI)1);
  colontmp_.p->data[1] = ((NI)3);
  colontmp_.p->data[2] = ((NI)5);
  i = ((NI)0);
  T3_ = colontmp_.len;
  L = T3_;
  {
   while (1) {
    NimStringV2 colontmpD_;
    tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA T7_;
    if (!(i < L)) goto LA5;
    colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
    if (i < 0 || i >= colontmp_.len){ raiseIndexError2(i,colontmp_.len-1); goto LA6_;
    }
    _ = (&colontmp_.p->data[i]);
    T7_ = dotdot___temp_u34(((NI)25), ((NI)9));
    colontmpD_ = X5BX5D___temp_u91(TM__SRd76hP9cMfCzdUO857UhQQ_7, T7_);
    if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
    (void)(colontmpD_);
    if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
    eqdestroy___temp_u128(colontmp_);
    goto LA1;
    i += ((NI)1);
    {
     NI T10_;
     T10_ = colontmp_.len;
     if (!!((T10_ == L))) goto LA11_;
     failedAssertImpl__stdZassertions_u254(TM__SRd76hP9cMfCzdUO857UhQQ_9);
     if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
    }
LA11_: ;
    {
     LA6_:;
    }
    {
     if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
    }
    if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
   } LA5: ;
  }
  {
   LA2_:;
  }
  {
   eqdestroy___temp_u128(colontmp_);
  }
  if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_10, 1);
 }BeforeRet_: ;
 popFrame();
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
#if 0
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000();
 (*inner)();
#else
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000();
 PreMainInner();
#endif
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
#if 0
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 (*inner)();
#else
 PreMain();
 NimMainInner();
#endif
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
NIM_BOOL* nimErr_;
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
 foo__temp_u1();
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 BeforeRet_: ;
 nimTestErrorFlag();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:44:57
  • Finished 2024-03-25T02:44:58
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
stable 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Traceback (most recent call last)
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
Segmentation fault (core dumped)
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 96.27 Kb (98,576 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ;
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
struct NimStrPayload {
 NI cap;
 NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
 NI len;
 NimStrPayload* p;
};
struct tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ {
 NI a;
 NI b;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
static N_INLINE(NimStringV2, X5BX5D___temp_u93)(NimStringV2 s_p0, tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ x_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringV2, mnewString)(NI len_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimPrepareStrMutationImpl__system_u2440)(NimStringV2* s_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4621)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ, dotdot___temp_u36)(NI a_p0, NI b_p1);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u130)(tySequence__qwqHTkRvwhrRyENtudHQ7g dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[5+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 5 | NIM_STRLIT_FLAG, "abcde" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_7 = {5, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6};
static const struct {
NI cap; NIM_CHAR data[146+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_9 = { 146 | NIM_STRLIT_FLAG, "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_10 = {146, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_9};
static const struct {
NI cap; NIM_CHAR data[6+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_12 = { 6 | NIM_STRLIT_FLAG, "Passed" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_11 = {{6, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_12}}
;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4403;
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0) {
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = !(((*s_p0).p == ((NimStrPayload*) NIM_NIL)));
  if (!(T3_)) goto LA4_;
  T3_ = ((NI)((*(*s_p0).p).cap & ((NI)IL64(4611686018427387904))) == ((NI)IL64(4611686018427387904)));
LA4_: ;
  if (!T3_) goto LA5_;
  nimPrepareStrMutationImpl__system_u2440(s_p0);
 }
LA5_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u4020;
 framePtr__system_u4020 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u4621();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
static N_INLINE(NimStringV2, X5BX5D___temp_u93)(NimStringV2 s_p0, tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ x_p1) {
 NimStringV2 result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/indices.nim");
{	a = x_p1.a;
 if (nimSubInt(x_p1.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); goto BeforeRet_;
 };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto BeforeRet_;
 };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI)0) || (L) > ((NI)IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI)0), ((NI)IL64(9223372036854775807))); goto BeforeRet_;
 }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI)0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if (i < 0 || i >= result.len){ raiseIndexError2(i,result.len-1); goto BeforeRet_;
    }
    nimPrepareStrMutationV2((&result));
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); goto BeforeRet_;
    };
    if ((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) < 0 || (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) >= s_p0.len){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),s_p0.len-1); goto BeforeRet_;
    }
    result.p->data[i] = s_p0.p->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); goto BeforeRet_;
    };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 }BeforeRet_: ;
 popFrame();
 return result;
}
static N_INLINE(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ, dotdot___temp_u36)(NI a_p0, NI b_p1) {
 tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system.nim");
 result.a = a_p0;
 result.b = b_p1;
 popFrame();
 return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
 NIM_BOOL* result;
 result = (&nimInErrorMode__system_u4403);
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void) {
NIM_BOOL* nimErr_;
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 {
  tySequence__qwqHTkRvwhrRyENtudHQ7g colontmp_;
  NI* _;
  NI i;
  NI L;
  NI T3_;
  colontmp_.len = 0; colontmp_.p = NIM_NIL;
  _ = (NI*)0;
  colontmp_.len = 3; colontmp_.p = (tySequence__qwqHTkRvwhrRyENtudHQ7g_Content*) newSeqPayload(3, sizeof(NI), NIM_ALIGNOF(NI));
  colontmp_.p->data[0] = ((NI)1);
  colontmp_.p->data[1] = ((NI)3);
  colontmp_.p->data[2] = ((NI)5);
  i = ((NI)0);
  T3_ = colontmp_.len;
  L = T3_;
  {
   while (1) {
    NimStringV2 colontmpD_;
    tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ T7_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_8;
    if (!(i < L)) goto LA5;
    colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
    if (i < 0 || i >= colontmp_.len){ raiseIndexError2(i,colontmp_.len-1); goto LA6_;
    }
    _ = (&colontmp_.p->data[i]);
    T7_ = dotdot___temp_u36(((NI)25), ((NI)9));
    colontmpD_ = X5BX5D___temp_u93(TM__SRd76hP9cMfCzdUO857UhQQ_7, T7_);
    if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
    (void)(colontmpD_);
    if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
    eqdestroy___temp_u130(colontmp_);
    goto LA1;
    if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_8)) { raiseOverflow(); goto LA6_;
    };
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_8);
    {
     NI T10_;
     T10_ = colontmp_.len;
     if (!!((T10_ == L))) goto LA11_;
     failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_10);
     if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
    }
LA11_: ;
    {
     LA6_:;
    }
    {
     if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
    }
    if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
   } LA5: ;
  }
  {
   LA2_:;
  }
  {
   eqdestroy___temp_u130(colontmp_);
  }
  if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_11, 1);
 }BeforeRet_: ;
 popFrame();
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
#if 0
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
 (*inner)();
#else
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
 PreMainInner();
#endif
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
#if 0
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 (*inner)();
#else
 PreMain();
 NimMainInner();
#endif
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
NIM_BOOL* nimErr_;
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
 foo__temp_u1();
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 BeforeRet_: ;
 nimTestErrorFlag();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:44:58
  • Finished 2024-03-25T02:44:59
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
2.0.2 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Traceback (most recent call last)
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
Segmentation fault (core dumped)
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 96.27 Kb (98,576 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ;
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
struct NimStrPayload {
 NI cap;
 NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
 NI len;
 NimStrPayload* p;
};
struct tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ {
 NI a;
 NI b;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
static N_INLINE(NimStringV2, X5BX5D___temp_u93)(NimStringV2 s_p0, tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ x_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringV2, mnewString)(NI len_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimPrepareStrMutationImpl__system_u2440)(NimStringV2* s_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4621)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ, dotdot___temp_u36)(NI a_p0, NI b_p1);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u130)(tySequence__qwqHTkRvwhrRyENtudHQ7g dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u310)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[5+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 5 | NIM_STRLIT_FLAG, "abcde" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_7 = {5, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6};
static const struct {
NI cap; NIM_CHAR data[146+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_9 = { 146 | NIM_STRLIT_FLAG, "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_10 = {146, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_9};
static const struct {
NI cap; NIM_CHAR data[6+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_12 = { 6 | NIM_STRLIT_FLAG, "Passed" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_11 = {{6, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_12}}
;
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4403;
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0) {
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = !(((*s_p0).p == ((NimStrPayload*) NIM_NIL)));
  if (!(T3_)) goto LA4_;
  T3_ = ((NI)((*(*s_p0).p).cap & ((NI)IL64(4611686018427387904))) == ((NI)IL64(4611686018427387904)));
LA4_: ;
  if (!T3_) goto LA5_;
  nimPrepareStrMutationImpl__system_u2440(s_p0);
 }
LA5_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u4020;
 framePtr__system_u4020 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u4621();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
static N_INLINE(NimStringV2, X5BX5D___temp_u93)(NimStringV2 s_p0, tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ x_p1) {
 NimStringV2 result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/indices.nim");
{	a = x_p1.a;
 if (nimSubInt(x_p1.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); goto BeforeRet_;
 };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); goto BeforeRet_;
 };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI)0) || (L) > ((NI)IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI)0), ((NI)IL64(9223372036854775807))); goto BeforeRet_;
 }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI)0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if (i < 0 || i >= result.len){ raiseIndexError2(i,result.len-1); goto BeforeRet_;
    }
    nimPrepareStrMutationV2((&result));
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); goto BeforeRet_;
    };
    if ((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) < 0 || (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) >= s_p0.len){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),s_p0.len-1); goto BeforeRet_;
    }
    result.p->data[i] = s_p0.p->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); goto BeforeRet_;
    };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 }BeforeRet_: ;
 popFrame();
 return result;
}
static N_INLINE(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ, dotdot___temp_u36)(NI a_p0, NI b_p1) {
 tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system.nim");
 result.a = a_p0;
 result.b = b_p1;
 popFrame();
 return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
 NIM_BOOL* result;
 result = (&nimInErrorMode__system_u4403);
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void) {
NIM_BOOL* nimErr_;
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
 {
  tySequence__qwqHTkRvwhrRyENtudHQ7g colontmp_;
  NI* _;
  NI i;
  NI L;
  NI T3_;
  colontmp_.len = 0; colontmp_.p = NIM_NIL;
  _ = (NI*)0;
  colontmp_.len = 3; colontmp_.p = (tySequence__qwqHTkRvwhrRyENtudHQ7g_Content*) newSeqPayload(3, sizeof(NI), NIM_ALIGNOF(NI));
  colontmp_.p->data[0] = ((NI)1);
  colontmp_.p->data[1] = ((NI)3);
  colontmp_.p->data[2] = ((NI)5);
  i = ((NI)0);
  T3_ = colontmp_.len;
  L = T3_;
  {
   while (1) {
    NimStringV2 colontmpD_;
    tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ T7_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_8;
    if (!(i < L)) goto LA5;
    colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
    if (i < 0 || i >= colontmp_.len){ raiseIndexError2(i,colontmp_.len-1); goto LA6_;
    }
    _ = (&colontmp_.p->data[i]);
    T7_ = dotdot___temp_u36(((NI)25), ((NI)9));
    colontmpD_ = X5BX5D___temp_u93(TM__SRd76hP9cMfCzdUO857UhQQ_7, T7_);
    if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
    (void)(colontmpD_);
    if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
    eqdestroy___temp_u130(colontmp_);
    goto LA1;
    if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_8)) { raiseOverflow(); goto LA6_;
    };
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_8);
    {
     NI T10_;
     T10_ = colontmp_.len;
     if (!!((T10_ == L))) goto LA11_;
     failedAssertImpl__stdZassertions_u310(TM__SRd76hP9cMfCzdUO857UhQQ_10);
     if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
    }
LA11_: ;
    {
     LA6_:;
    }
    {
     if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
    }
    if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
   } LA5: ;
  }
  {
   LA2_:;
  }
  {
   eqdestroy___temp_u130(colontmp_);
  }
  if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_11, 1);
 }BeforeRet_: ;
 popFrame();
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
#if 0
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
 (*inner)();
#else
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
 PreMainInner();
#endif
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
#if 0
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 (*inner)();
#else
 PreMain();
 NimMainInner();
#endif
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
NIM_BOOL* nimErr_;
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
 foo__temp_u1();
 if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
 BeforeRet_: ;
 nimTestErrorFlag();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:44:59
  • Finished 2024-03-25T02:45:00
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
1.6.14 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system.nim []
/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '
fatal.nim(54)            sysFatal
Error: unhandled exception: options.nim(645, 14) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 104.76 Kb (107,272 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_TNimKind__3rC59cFdCULJbp2tHLSZMXQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__3rC59cFdCULJbp2tHLSZMXQ kind;
tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w;
struct TNimNode {
tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ {
NI a;
NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_1)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NimStringDesc*, X5BX5D___temp_69)(NimStringDesc* s, tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ x);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ, dotdot___temp_33)(NI a, NI b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/iterators.nim(240, 11) `len(a) == L` the length of the seq changed while iterating over it", 147);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_9 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10)}
;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op) {
 tySequence__qwqHTkRvwhrRyENtudHQ7g* a;
 NI T1_;
 a = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)p;
 T1_ = (NI)0;
}
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__system_2564 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__system_2564).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__system_2564;
 framePtr__system_2564 = s;
 {
  if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
  callDepthLimitReached__system_2997();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_2564 = (*framePtr__system_2564).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___temp_69)(NimStringDesc* s, tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ x) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system.nim");
 result = NIM_NIL;
 a = x.a;
 if (nimSubInt(x.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI) 0) || (L) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI) 0), ((NI) IL64(9223372036854775807))); }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI) 0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if (i < 0 || i >= (result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); }
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); };
    if ((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) < 0 || (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) >= (s ? s->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s ? s->Sup.len : 0)-1); }
    result->data[i] = s->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_INLINE(tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ, dotdot___temp_33)(NI a, NI b) {
 tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ));
 result.a = a;
 result.b = b;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_1)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI* _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI*)0;
  colontmp_ = NIM_NIL;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI) 1);
  colontmp_->data[1] = ((NI) 3);
  colontmp_->data[2] = ((NI) 5);
  i = ((NI) 0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ T5_;
    NimStringDesc* T6_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i < L)) goto LA4;
    if (i < 0 || i >= (colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
    _ = (&colontmp_->data[i]);
    T5_ = dotdot___temp_33(((NI) 25), ((NI) 9));
    T6_ = NIM_NIL;
    T6_ = X5BX5D___temp_69(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
    }
    LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_9, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
 N_LIB_PRIVATE int cmdCount;
 N_LIB_PRIVATE char** cmdLine;
 N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000();
 atmtempdotnim_DatInit000();
 (*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__temp_1();
 popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.size = sizeof(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.align = NIM_ALIGNOF(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.kind = 24;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.flags = 2;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.marker = Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g;
}

Stats

  • Started 2024-03-25T02:45:02
  • Finished 2024-03-25T02:45:03
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
1.4.8 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system.nim []
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '

IR

Compiled filesize 97.47 Kb (99,808 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system/iterato"
"rs.nim(204, 11) `len(a) == L` the length of the seq changed whil"
"e iterating over it", 146);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_9 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10)}
;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system.nim");
 result = (NimStringDesc*)0;
 a = x.a;
 if (nimSubInt(x.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI) 0) || (L) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI) 0), ((NI) IL64(9223372036854775807))); }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI) 0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if ((NU)(i) >= (NU)(result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); }
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); };
    if ((NU)((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)) >= (NU)(s ? s->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s ? s->Sup.len : 0)-1); }
    result->data[i] = s->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b) {
 tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 result.a = a;
 result.b = b;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI* _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI*)0;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTI__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI) 1);
  colontmp_->data[1] = ((NI) 3);
  colontmp_->data[2] = ((NI) 5);
  i = ((NI) 0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T5_;
    NimStringDesc* T6_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i < L)) goto LA4;
    if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
    _ = (&colontmp_->data[i]);
    T5_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 25), ((NI) 9));
    T6_ = (NimStringDesc*)0;
    T6_ = X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
    }
    LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_9, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__EzBZaa239as9bFx8yeHDoTOw();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:45:05
  • Finished 2024-03-25T02:45:06
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
1.2.18 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system.nim []
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeError]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '

IR

Compiled filesize 97.52 Kb (99,856 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NOINLINE(void, chckNil)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system/iterat"
"ors.nim(189, 11) `len(a) == L` the length of the seq changed whi"
"le iterating over it", 147);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_9 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10)}
;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA8_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system.nim");
 result = NIM_NIL;
 a = x.a;
 if (nimSubInt(x.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI) 0) || (L) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI) 0), ((NI) IL64(9223372036854775807))); }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI) 0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if ((NU)(i) >= (NU)(result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); }
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); };
    if ((NU)((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)) >= (NU)(s ? s->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s ? s->Sup.len : 0)-1); }
    result->data[i] = s->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b) {
 tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 chckNil((void*)(&result));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 result.a = a;
 result.b = b;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI)0;
  colontmp_ = NIM_NIL;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTI__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI) 1);
  colontmp_->data[1] = ((NI) 3);
  colontmp_->data[2] = ((NI) 5);
  i = ((NI) 0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T5_;
    NimStringDesc* T6_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i < L)) goto LA4;
    if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
    _ = colontmp_->data[i];
    T5_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 25), ((NI) 9));
    T6_ = NIM_NIL;
    T6_ = X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
    }
    LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_9, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__EzBZaa239as9bFx8yeHDoTOw();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:45:08
  • Finished 2024-03-25T02:45:08
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
1.0.10 👎 FAIL

Output

Error: Command failed: nim c --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system.nim []
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 [RangeError]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '

IR

Compiled filesize 92.56 Kb (94,784 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
static N_INLINE(NI, subInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_NOINLINE(void, chckNil)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
NIM_CONST struct {
TGenericSeq Sup;
NI data[3];
} TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{3, 3 | NIM_STRLIT_FLAG}, {((NI) 1),
((NI) 3),
((NI) 5)}};
NIM_CONST tySequence__qwqHTkRvwhrRyENtudHQ7g* TM__SRd76hP9cMfCzdUO857UhQQ_2 = ((tySequence__qwqHTkRvwhrRyENtudHQ7g*)&TM__SRd76hP9cMfCzdUO857UhQQ_3);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system/iterat"
"ors.nim(189, 11) `len(a) == L` the length of the seq changed whi"
"le iterating over it", 147);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_12, "Passed", 6);
NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_11 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_12)}
;
static N_INLINE(NI, subInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
 result = (NI)((NU64)(a) - (NU64)(b));
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = (((NI) 0) <= (NI)(result ^ a));
  if (T3_) goto LA4_;
  T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU64) ~(b))));
  LA4_: ;
  if (!T3_) goto LA5_;
  goto BeforeRet_;
 }
 LA5_: ;
 raiseOverflow();
 }BeforeRet_: ;
 return result;
}
static N_INLINE(NI, addInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
 result = (NI)((NU64)(a) + (NU64)(b));
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = (((NI) 0) <= (NI)(result ^ a));
  if (T3_) goto LA4_;
  T3_ = (((NI) 0) <= (NI)(result ^ b));
  LA4_: ;
  if (!T3_) goto LA5_;
  goto BeforeRet_;
 }
 LA5_: ;
 raiseOverflow();
 }BeforeRet_: ;
 return result;
}
static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {	NI result;
{	result = (NI)0;
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = (a <= i);
  if (!(T3_)) goto LA4_;
  T3_ = (i <= b);
  LA4_: ;
  if (!T3_) goto LA5_;
  result = i;
  goto BeforeRet_;
 }
 goto LA1_;
 LA5_: ;
 {
  raiseRangeError(((NI64) (i)));
 }
 LA1_: ;
 }BeforeRet_: ;
 return result;
}
static N_INLINE(void, nimFrame)(TFrame* s) {	NI T1_;
 T1_ = (NI)0;
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
  T1_ = ((NI) 0);
 }
 goto LA2_;
 LA4_: ;
 {
  T1_ = ((NI) ((NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
 }
 LA2_: ;
 (*s).calldepth = ((NI16) (T1_));
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA9_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA9_: ;
}
static N_INLINE(void, popFrame)(void) {	framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {	NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system.nim");
 result = (NimStringDesc*)0;
 a = x.a;
 TM__SRd76hP9cMfCzdUO857UhQQ_4 = subInt(x.b, a);
 TM__SRd76hP9cMfCzdUO857UhQQ_5 = addInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4), ((NI) 1));
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
 result = mnewString(((NI)chckRange(L, ((NI) 0), ((NI) IL64(9223372036854775807)))));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI) 0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_6;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if ((NU)(i) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(i,(result ? result->Sup.len : 0)-1);
    TM__SRd76hP9cMfCzdUO857UhQQ_6 = addInt(i, a);
    if ((NU)((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_6)) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_6),(s ? s->Sup.len : 0)-1);
    result->data[i] = s->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_6)];
    TM__SRd76hP9cMfCzdUO857UhQQ_7 = addInt(i_2, ((NI) 1));
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {	void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b) {	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 chckNil((void*)(&result));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 result.a = a;
 result.b = b;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void) {	nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI _;
  NI i;
  NI L;
  _ = (NI)0;
  i = ((NI) 0);
  L = ((NI) 3);
  {
   while (1) {
    tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T4_;
    NimStringDesc* T5_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_9;
    if (!(i < L)) goto LA3;
    if ((NU)(i) >= (NU)(TM__SRd76hP9cMfCzdUO857UhQQ_2 ? TM__SRd76hP9cMfCzdUO857UhQQ_2->Sup.len : 0)) raiseIndexError2(i,(TM__SRd76hP9cMfCzdUO857UhQQ_2 ? TM__SRd76hP9cMfCzdUO857UhQQ_2->Sup.len : 0)-1);
    _ = TM__SRd76hP9cMfCzdUO857UhQQ_2->data[i];
    T4_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 25), ((NI) 9));
    T5_ = (NimStringDesc*)0;
    T5_ = X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8), T4_);
    (void)(T5_);
    goto LA1;
    TM__SRd76hP9cMfCzdUO857UhQQ_9 = addInt(i, ((NI) 1));
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_9);
    {
     if (!!((((NI) 3) == L))) goto LA8_;
     failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10));
    }
    LA8_: ;
   } LA3: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_11, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {	nimGC_setStackBottom(locals);
}
void PreMainInner(void) {
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__EzBZaa239as9bFx8yeHDoTOw();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:45:10
  • Finished 2024-03-25T02:45:11
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
Stats
  • GCC 11.4.0
  • Clang 14.0.0
  • NodeJS 19.1
  • Created 2024-03-25T02:44:28Z
  • Comments 3
  • Commands nim c --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim

🤖 Bug found in 17 minutes bisecting 7 commits at 0 commits per second

from nim.

github-actions avatar github-actions commented on May 31, 2024
🐧 Linux bisect by @ringabout (member)
devel 👎 FAIL

Output

Error: Command failed: nim c --gc:refc --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
command line(1, 2) Warning: `gc:option` is deprecated; use `mm:option` instead [Deprecated]
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-#devel/lib/system/indices.nim []
/home/runner/.choosenim/toolchains/nim-#devel/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34)       raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]

IR

Compiled filesize 106.84 Kb (109,400 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA;
struct TGenericSeq {
 NI len;
 NI reserved;
};
typedef NU8 tyEnum_TNimKind__ClA3xuAkmIebTG0trkhp7w;
typedef NU8 tySet_tyEnum_TNimTypeFlag__lkZ7PEzlp5IUJlUpsPWkog;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p_p0, NI op_p1);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p_p0);
struct TNimType {
 NI size;
 NI align;
 tyEnum_TNimKind__ClA3xuAkmIebTG0trkhp7w kind;
 tySet_tyEnum_TNimTypeFlag__lkZ7PEzlp5IUJlUpsPWkog flags;
 TNimType* base;
 TNimNode* node;
 void* finalizer;
 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__IIT6i6x8UigmmmGU9bo5uUw;
struct TNimNode {
 tyEnum_TNimNodeKind__IIT6i6x8UigmmmGU9bo5uUw kind;
 NI offset;
 TNimType* typ;
 NCSTRING name;
 NI len;
 TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
 NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA {
 NI a;
 NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ_p0, NI len_p1);
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
static N_INLINE(NimStringDesc*, X5BX5D___temp_u84)(NimStringDesc* s_p0, tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA x_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u3151)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA, dotdot___temp_u33)(NI a_p0, NI b_p1);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u69)(NimStringDesc* msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args_p0, NI args_p0Len_0);
static N_INLINE(void, initStackBottomWith)(void* locals_p0);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom_p0);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystematsexceptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_7, "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/iterators.nim(254, 11) `len(a) == L` the length of the seq changed while iterating over it", 147);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_9, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_8 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_9)}
;
extern NIM_THREADVAR TFrame* framePtr__system_u2625;
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op) {
 tySequence__qwqHTkRvwhrRyENtudHQ7g* a;
 NI T1_;
 a = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)p;
 T1_ = (NI)0;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u2625 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u2625).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u2625;
 framePtr__system_u2625 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u3151();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u2625 = (*framePtr__system_u2625).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___temp_u84)(NimStringDesc* s_p0, tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA x_p1) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-#devel/lib/system/indices.nim");
 result = NIM_NIL;
 a = x_p1.a;
 if (nimSubInt(x_p1.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); 	};
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); 	};
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI)0) || (L) > ((NI)IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI)0), ((NI)IL64(9223372036854775807))); 	}
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI)0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if (i < 0 || i >= (result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); 				}
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); 				};
    if ((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) < 0 || (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) >= (s_p0 ? s_p0->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s_p0 ? s_p0->Sup.len : 0)-1); 				}
    result->data[i] = s_p0->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); 				};
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
 nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
}
static N_INLINE(tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA, dotdot___temp_u33)(NI a_p0, NI b_p1) {
 tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-#devel/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA));
 result.a = a_p0;
 result.b = b_p1;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI* _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI*)0;
  colontmp_ = NIM_NIL;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI)1);
  colontmp_->data[1] = ((NI)3);
  colontmp_->data[2] = ((NI)5);
  i = ((NI)0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__vuwRJgdcPWbEO9cIdyL6bxA T5_;
    NimStringDesc* T6_;
    if (!(i < L)) goto LA4;
    if (i < 0 || i >= (colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); 				}
    _ = (&colontmp_->data[i]);
    T5_ = dotdot___temp_u33(((NI)25), ((NI)9));
    T6_ = NIM_NIL;
    T6_ = X5BX5D___temp_u84(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    i += ((NI)1);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__stdZassertions_u69(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_7));
    }
LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_8, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals_p0) {
 nimGC_setStackBottom(locals_p0);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
#if 1
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystematsexceptionsdotnim_DatInit000();
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000();
 atmtempdotnim_DatInit000();
 (*inner)();
#else
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystematsexceptionsdotnim_DatInit000();
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000();
 atmtempdotnim_DatInit000();
 PreMainInner();
#endif
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
#if 1
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
#else
 PreMain();
 initStackBottomWith((void *)&inner);
 NimMainInner();
#endif
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__temp_u1();
 popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.size = sizeof(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.align = NIM_ALIGNOF(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.kind = 24;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.flags = 2;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.marker = Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g;
}

Stats

  • Started 2024-03-25T02:46:52
  • Finished 2024-03-25T02:46:52
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
stable 👎 FAIL

Output

Error: Command failed: nim c --gc:refc --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
command line(1, 2) Warning: `gc:option` is deprecated; use `mm:option` instead [Deprecated]
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/indices.nim []
/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 106.81 Kb (109,376 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ;
struct TGenericSeq {
 NI len;
 NI reserved;
};
typedef NU8 tyEnum_TNimKind__tkzilgOTS67iC3a7h549aiw;
typedef NU8 tySet_tyEnum_TNimTypeFlag__9aI2dAe9cy2LQ7Dp9cypyl4rA;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p_p0, NI op_p1);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p_p0);
struct TNimType {
 NI size;
 NI align;
 tyEnum_TNimKind__tkzilgOTS67iC3a7h549aiw kind;
 tySet_tyEnum_TNimTypeFlag__9aI2dAe9cy2LQ7Dp9cypyl4rA flags;
 TNimType* base;
 TNimNode* node;
 void* finalizer;
 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__wYCe8vXIm9cHBnYL2fAWT2A;
struct TNimNode {
 tyEnum_TNimNodeKind__wYCe8vXIm9cHBnYL2fAWT2A kind;
 NI offset;
 TNimType* typ;
 NCSTRING name;
 NI len;
 TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
 NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ {
 NI a;
 NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ_p0, NI len_p1);
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
static N_INLINE(NimStringDesc*, X5BX5D___temp_u86)(NimStringDesc* s_p0, tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ x_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u3134)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ, dotdot___temp_u35)(NI a_p0, NI b_p1);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u85)(NimStringDesc* msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args_p0, NI args_p0Len_0);
static N_INLINE(void, initStackBottomWith)(void* locals_p0);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom_p0);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystematsexceptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it", 146);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_9 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10)}
;
extern NIM_THREADVAR TFrame* framePtr__system_u2601;
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op) {
 tySequence__qwqHTkRvwhrRyENtudHQ7g* a;
 NI T1_;
 a = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)p;
 T1_ = (NI)0;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u2601 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u2601).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u2601;
 framePtr__system_u2601 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u3134();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u2601 = (*framePtr__system_u2601).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___temp_u86)(NimStringDesc* s_p0, tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ x_p1) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/indices.nim");
 result = NIM_NIL;
 a = x_p1.a;
 if (nimSubInt(x_p1.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); 	};
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); 	};
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI)0) || (L) > ((NI)IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI)0), ((NI)IL64(9223372036854775807))); 	}
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI)0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if (i < 0 || i >= (result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); 				}
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); 				};
    if ((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) < 0 || (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) >= (s_p0 ? s_p0->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s_p0 ? s_p0->Sup.len : 0)-1); 				}
    result->data[i] = s_p0->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); 				};
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
 nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
}
static N_INLINE(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ, dotdot___temp_u35)(NI a_p0, NI b_p1) {
 tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ));
 result.a = a_p0;
 result.b = b_p1;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI* _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI*)0;
  colontmp_ = NIM_NIL;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI)1);
  colontmp_->data[1] = ((NI)3);
  colontmp_->data[2] = ((NI)5);
  i = ((NI)0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ T5_;
    NimStringDesc* T6_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i < L)) goto LA4;
    if (i < 0 || i >= (colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); 				}
    _ = (&colontmp_->data[i]);
    T5_ = dotdot___temp_u35(((NI)25), ((NI)9));
    T6_ = NIM_NIL;
    T6_ = X5BX5D___temp_u86(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); 				};
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__stdZassertions_u85(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
    }
LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_9, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals_p0) {
 nimGC_setStackBottom(locals_p0);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
#if 1
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystematsexceptionsdotnim_DatInit000();
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
 atmtempdotnim_DatInit000();
 (*inner)();
#else
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystematsexceptionsdotnim_DatInit000();
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
 atmtempdotnim_DatInit000();
 PreMainInner();
#endif
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
#if 1
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
#else
 PreMain();
 initStackBottomWith((void *)&inner);
 NimMainInner();
#endif
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__temp_u1();
 popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.size = sizeof(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.align = NIM_ALIGNOF(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.kind = 24;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.flags = 2;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.marker = Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g;
}

Stats

  • Started 2024-03-25T02:46:53
  • Finished 2024-03-25T02:46:53
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
2.0.2 👎 FAIL

Output

Error: Command failed: nim c --gc:refc --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
command line(1, 2) Warning: `gc:option` is deprecated; use `mm:option` instead [Deprecated]
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/indices.nim []
/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp'
assertions.nim(34)       raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 106.81 Kb (109,376 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#define nimfr_(proc, file) \
TFrame FR_; \
FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename;NI len;VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#define nimln_(n) \
 FR_.line = n;
#define nimlf_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ;
struct TGenericSeq {
 NI len;
 NI reserved;
};
typedef NU8 tyEnum_TNimKind__tkzilgOTS67iC3a7h549aiw;
typedef NU8 tySet_tyEnum_TNimTypeFlag__9aI2dAe9cy2LQ7Dp9cypyl4rA;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p_p0, NI op_p1);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p_p0);
struct TNimType {
 NI size;
 NI align;
 tyEnum_TNimKind__tkzilgOTS67iC3a7h549aiw kind;
 tySet_tyEnum_TNimTypeFlag__9aI2dAe9cy2LQ7Dp9cypyl4rA flags;
 TNimType* base;
 TNimNode* node;
 void* finalizer;
 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__wYCe8vXIm9cHBnYL2fAWT2A;
struct TNimNode {
 tyEnum_TNimNodeKind__wYCe8vXIm9cHBnYL2fAWT2A kind;
 NI offset;
 TNimType* typ;
 NCSTRING name;
 NI len;
 TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
 NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ {
 NI a;
 NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ_p0, NI len_p1);
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
static N_INLINE(NimStringDesc*, X5BX5D___temp_u86)(NimStringDesc* s_p0, tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ x_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u3134)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ, dotdot___temp_u35)(NI a_p0, NI b_p1);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u85)(NimStringDesc* msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args_p0, NI args_p0Len_0);
static N_INLINE(void, initStackBottomWith)(void* locals_p0);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom_p0);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystematsexceptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it", 146);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_9 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10)}
;
extern NIM_THREADVAR TFrame* framePtr__system_u2601;
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op) {
 tySequence__qwqHTkRvwhrRyENtudHQ7g* a;
 NI T1_;
 a = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)p;
 T1_ = (NI)0;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
 {
  if (!(framePtr__system_u2601 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s_p0).calldepth = ((NI16)0);
 }
 goto LA1_;
LA3_: ;
 {
  (*s_p0).calldepth = (NI16)((*framePtr__system_u2601).calldepth + ((NI16)1));
 }
LA1_: ;
 (*s_p0).prev = framePtr__system_u2601;
 framePtr__system_u2601 = s_p0;
 {
  if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
  callDepthLimitReached__system_u3134();
 }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_u2601 = (*framePtr__system_u2601).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___temp_u86)(NimStringDesc* s_p0, tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ x_p1) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system/indices.nim");
 result = NIM_NIL;
 a = x_p1.a;
 if (nimSubInt(x_p1.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); 	};
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); 	};
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI)0) || (L) > ((NI)IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI)0), ((NI)IL64(9223372036854775807))); 	}
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI)0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if (i < 0 || i >= (result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); 				}
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); 				};
    if ((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) < 0 || (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) >= (s_p0 ? s_p0->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s_p0 ? s_p0->Sup.len : 0)-1); 				}
    result->data[i] = s_p0->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); 				};
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
 nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
}
static N_INLINE(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ, dotdot___temp_u35)(NI a_p0, NI b_p1) {
 tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-2.0.2/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ));
 result.a = a_p0;
 result.b = b_p1;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_u1)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI* _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI*)0;
  colontmp_ = NIM_NIL;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI)1);
  colontmp_->data[1] = ((NI)3);
  colontmp_->data[2] = ((NI)5);
  i = ((NI)0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__Lvf9biZHqTuFCIXux82nvqQ T5_;
    NimStringDesc* T6_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i < L)) goto LA4;
    if (i < 0 || i >= (colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); 				}
    _ = (&colontmp_->data[i]);
    T5_ = dotdot___temp_u35(((NI)25), ((NI)9));
    T6_ = NIM_NIL;
    T6_ = X5BX5D___temp_u86(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    if (nimAddInt(i, ((NI)1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); 				};
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__stdZassertions_u85(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
    }
LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_9, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals_p0) {
 nimGC_setStackBottom(locals_p0);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
#if 1
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystematsexceptionsdotnim_DatInit000();
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
 atmtempdotnim_DatInit000();
 (*inner)();
#else
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystematsexceptionsdotnim_DatInit000();
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot2atslibatssystemdotnim_Init000();
 atmtempdotnim_DatInit000();
 PreMainInner();
#endif
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
#if 1
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
#else
 PreMain();
 initStackBottomWith((void *)&inner);
 NimMainInner();
#endif
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__temp_u1();
 popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.size = sizeof(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.align = NIM_ALIGNOF(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.kind = 24;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.flags = 2;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.marker = Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g;
}

Stats

  • Started 2024-03-25T02:46:54
  • Finished 2024-03-25T02:46:54
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
1.6.14 👎 FAIL

Output

Error: Command failed: nim c --gc:refc --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system.nim []
/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '
fatal.nim(54)            sysFatal
Error: unhandled exception: options.nim(645, 14) `false` errGenerated [AssertionDefect]

IR

Compiled filesize 104.76 Kb (107,272 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_TNimKind__3rC59cFdCULJbp2tHLSZMXQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__3rC59cFdCULJbp2tHLSZMXQ kind;
tySet_tyEnum_TNimTypeFlag__z9aX9aBGjlpDIC58y9bKcsmzA flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w;
struct TNimNode {
tyEnum_TNimNodeKind__XtzEyxd2A8uwMJcYYak9c7w kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ {
NI a;
NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_1)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NimStringDesc*, X5BX5D___temp_69)(NimStringDesc* s, tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ x);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ, dotdot___temp_33)(NI a, NI b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system/iterators.nim(240, 11) `len(a) == L` the length of the seq changed while iterating over it", 147);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_9 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10)}
;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
extern TFrame* framePtr__system_2564;
static N_NIMCALL(void, Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g)(void* p, NI op) {
 tySequence__qwqHTkRvwhrRyENtudHQ7g* a;
 NI T1_;
 a = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)p;
 T1_ = (NI)0;
}
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__system_2564 == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__system_2564).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__system_2564;
 framePtr__system_2564 = s;
 {
  if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
  callDepthLimitReached__system_2997();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__system_2564 = (*framePtr__system_2564).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___temp_69)(NimStringDesc* s, tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ x) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system.nim");
 result = NIM_NIL;
 a = x.a;
 if (nimSubInt(x.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI) 0) || (L) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI) 0), ((NI) IL64(9223372036854775807))); }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI) 0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if (i < 0 || i >= (result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); }
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); };
    if ((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) < 0 || (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4) >= (s ? s->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s ? s->Sup.len : 0)-1); }
    result->data[i] = s->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_INLINE(tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ, dotdot___temp_33)(NI a, NI b) {
 tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-1.6.14/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ));
 result.a = a;
 result.b = b;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__temp_1)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI* _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI*)0;
  colontmp_ = NIM_NIL;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI) 1);
  colontmp_->data[1] = ((NI) 3);
  colontmp_->data[2] = ((NI) 5);
  i = ((NI) 0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__ZwT1AdT5SpvzfXpu31YpBQ T5_;
    NimStringDesc* T6_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i < L)) goto LA4;
    if (i < 0 || i >= (colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
    _ = (&colontmp_->data[i]);
    T5_ = dotdot___temp_33(((NI) 25), ((NI) 9));
    T6_ = NIM_NIL;
    T6_ = X5BX5D___temp_69(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
    }
    LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_9, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
 N_LIB_PRIVATE int cmdCount;
 N_LIB_PRIVATE char** cmdLine;
 N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_DatInit000();
 initStackBottomWith((void *)&inner);
 atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot14atslibatssystemdotnim_Init000();
 atmtempdotnim_DatInit000();
 (*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__temp_1();
 popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.size = sizeof(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.align = NIM_ALIGNOF(tySequence__qwqHTkRvwhrRyENtudHQ7g*);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.kind = 24;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.flags = 2;
NTIseqLintT__qwqHTkRvwhrRyENtudHQ7g_.marker = Marker_tySequence__qwqHTkRvwhrRyENtudHQ7g;
}

Stats

  • Started 2024-03-25T02:46:57
  • Finished 2024-03-25T02:46:58
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
1.4.8 👎 FAIL

Output

Error: Command failed: nim c --gc:refc --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system.nim []
/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeDefect]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '

IR

Compiled filesize 97.47 Kb (99,808 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system/iterato"
"rs.nim(204, 11) `len(a) == L` the length of the seq changed whil"
"e iterating over it", 146);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_9 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10)}
;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == ((TFrame*) NIM_NIL))) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system.nim");
 result = (NimStringDesc*)0;
 a = x.a;
 if (nimSubInt(x.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI) 0) || (L) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI) 0), ((NI) IL64(9223372036854775807))); }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI) 0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if ((NU)(i) >= (NU)(result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); }
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); };
    if ((NU)((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)) >= (NU)(s ? s->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s ? s->Sup.len : 0)-1); }
    result->data[i] = s->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b) {
 tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-1.4.8/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 result.a = a;
 result.b = b;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI* _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI*)0;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTI__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI) 1);
  colontmp_->data[1] = ((NI) 3);
  colontmp_->data[2] = ((NI) 5);
  i = ((NI) 0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T5_;
    NimStringDesc* T6_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i < L)) goto LA4;
    if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
    _ = (&colontmp_->data[i]);
    T5_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 25), ((NI) 9));
    T6_ = (NimStringDesc*)0;
    T6_ = X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
    }
    LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_9, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__EzBZaa239as9bFx8yeHDoTOw();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:47:00
  • Finished 2024-03-25T02:47:01
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
1.2.18 👎 FAIL

Output

Error: Command failed: nim c --gc:refc --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system.nim []
/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 notin 0 .. 9223372036854775807 [RangeError]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '

IR

Compiled filesize 97.52 Kb (99,856 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NOINLINE(void, chckNil)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_6, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system/iterat"
"ors.nim(189, 11) `len(a) == L` the length of the seq changed whi"
"le iterating over it", 147);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "Passed", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_9 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10)}
;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
static N_INLINE(void, nimFrame)(TFrame* s) {
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA3_;
  (*s).calldepth = ((NI16) 0);
 }
 goto LA1_;
 LA3_: ;
 {
  (*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
 }
 LA1_: ;
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA8_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {
 NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_2;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_3;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system.nim");
 result = NIM_NIL;
 a = x.a;
 if (nimSubInt(x.b, a, &TM__SRd76hP9cMfCzdUO857UhQQ_2)) { raiseOverflow(); };
 if (nimAddInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_2), ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_3)) { raiseOverflow(); };
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_3);
 if ((L) < ((NI) 0) || (L) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(L, ((NI) 0), ((NI) IL64(9223372036854775807))); }
 result = mnewString(((NI) (L)));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI) 0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if ((NU)(i) >= (NU)(result ? result->Sup.len : 0)){ raiseIndexError2(i,(result ? result->Sup.len : 0)-1); }
    if (nimAddInt(i, a, &TM__SRd76hP9cMfCzdUO857UhQQ_4)) { raiseOverflow(); };
    if ((NU)((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)) >= (NU)(s ? s->Sup.len : 0)){ raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4),(s ? s->Sup.len : 0)-1); }
    result->data[i] = s->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4)];
    if (nimAddInt(i_2, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_5)) { raiseOverflow(); };
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
 void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
 nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b) {
 tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-1.2.18/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 chckNil((void*)(&result));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 result.a = a;
 result.b = b;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void) {
 nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI _;
  tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
  NI i;
  NI L;
  NI T2_;
  _ = (NI)0;
  colontmp_ = NIM_NIL;
  colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTI__qwqHTkRvwhrRyENtudHQ7g_), 3);
  colontmp_->data[0] = ((NI) 1);
  colontmp_->data[1] = ((NI) 3);
  colontmp_->data[2] = ((NI) 5);
  i = ((NI) 0);
  T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
  L = T2_;
  {
   while (1) {
    tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T5_;
    NimStringDesc* T6_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i < L)) goto LA4;
    if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
    _ = colontmp_->data[i];
    T5_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 25), ((NI) 9));
    T6_ = NIM_NIL;
    T6_ = X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_6), T5_);
    (void)(T6_);
    goto LA1;
    if (nimAddInt(i, ((NI) 1), &TM__SRd76hP9cMfCzdUO857UhQQ_7)) { raiseOverflow(); };
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
    {
     NI T9_;
     T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
     if (!!((T9_ == L))) goto LA10_;
     failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8));
    }
    LA10_: ;
   } LA4: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_9, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
 nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__EzBZaa239as9bFx8yeHDoTOw();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:47:03
  • Finished 2024-03-25T02:47:04
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
1.0.10 👎 FAIL

Output

Error: Command failed: nim c --gc:refc --run  -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim temp
/home/runner/work/Nim/Nim/temp.nim foo
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system.nim []
/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system/fatal.nim sysFatal
Error: unhandled exception: value out of range: -15 [RangeError]
Error: execution of an external program failed: '/home/runner/work/Nim/Nim/temp '

IR

Compiled filesize 92.56 Kb (94,784 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#  define nimfr_(proc, file) \
 TFrame FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
#  define nimfrs_(proc, file, slots, length) \
 struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
#  define nimln_(n, file) \
 FR_.line = n; FR_.filename = file;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
TGenericSeq Sup;
NI data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
static N_INLINE(NI, subInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_NOINLINE(void, chckNil)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
extern TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
NIM_CONST struct {
TGenericSeq Sup;
NI data[3];
} TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{3, 3 | NIM_STRLIT_FLAG}, {((NI) 1),
((NI) 3),
((NI) 5)}};
NIM_CONST tySequence__qwqHTkRvwhrRyENtudHQ7g* TM__SRd76hP9cMfCzdUO857UhQQ_2 = ((tySequence__qwqHTkRvwhrRyENtudHQ7g*)&TM__SRd76hP9cMfCzdUO857UhQQ_3);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_8, "abcde", 5);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_10, "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system/iterat"
"ors.nim(189, 11) `len(a) == L` the length of the seq changed whi"
"le iterating over it", 147);
STRING_LITERAL(TM__SRd76hP9cMfCzdUO857UhQQ_12, "Passed", 6);
NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_11 = {((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_12)}
;
static N_INLINE(NI, subInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
 result = (NI)((NU64)(a) - (NU64)(b));
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = (((NI) 0) <= (NI)(result ^ a));
  if (T3_) goto LA4_;
  T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU64) ~(b))));
  LA4_: ;
  if (!T3_) goto LA5_;
  goto BeforeRet_;
 }
 LA5_: ;
 raiseOverflow();
 }BeforeRet_: ;
 return result;
}
static N_INLINE(NI, addInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
 result = (NI)((NU64)(a) + (NU64)(b));
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = (((NI) 0) <= (NI)(result ^ a));
  if (T3_) goto LA4_;
  T3_ = (((NI) 0) <= (NI)(result ^ b));
  LA4_: ;
  if (!T3_) goto LA5_;
  goto BeforeRet_;
 }
 LA5_: ;
 raiseOverflow();
 }BeforeRet_: ;
 return result;
}
static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {	NI result;
{	result = (NI)0;
 {
  NIM_BOOL T3_;
  T3_ = (NIM_BOOL)0;
  T3_ = (a <= i);
  if (!(T3_)) goto LA4_;
  T3_ = (i <= b);
  LA4_: ;
  if (!T3_) goto LA5_;
  result = i;
  goto BeforeRet_;
 }
 goto LA1_;
 LA5_: ;
 {
  raiseRangeError(((NI64) (i)));
 }
 LA1_: ;
 }BeforeRet_: ;
 return result;
}
static N_INLINE(void, nimFrame)(TFrame* s) {	NI T1_;
 T1_ = (NI)0;
 {
  if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
  T1_ = ((NI) 0);
 }
 goto LA2_;
 LA4_: ;
 {
  T1_ = ((NI) ((NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
 }
 LA2_: ;
 (*s).calldepth = ((NI16) (T1_));
 (*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
 framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
 {
  if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA9_;
  callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
 }
 LA9_: ;
}
static N_INLINE(void, popFrame)(void) {	framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
static N_INLINE(NimStringDesc*, X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {	NimStringDesc* result;
 NI a;
 NI L;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
 NI TM__SRd76hP9cMfCzdUO857UhQQ_5;
 nimfr_("[]", "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system.nim");
 result = (NimStringDesc*)0;
 a = x.a;
 TM__SRd76hP9cMfCzdUO857UhQQ_4 = subInt(x.b, a);
 TM__SRd76hP9cMfCzdUO857UhQQ_5 = addInt((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_4), ((NI) 1));
 L = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_5);
 result = mnewString(((NI)chckRange(L, ((NI) 0), ((NI) IL64(9223372036854775807)))));
 {
  NI i;
  NI i_2;
  i = (NI)0;
  i_2 = ((NI) 0);
  {
   while (1) {
    NI TM__SRd76hP9cMfCzdUO857UhQQ_6;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_7;
    if (!(i_2 < L)) goto LA3;
    i = i_2;
    if ((NU)(i) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(i,(result ? result->Sup.len : 0)-1);
    TM__SRd76hP9cMfCzdUO857UhQQ_6 = addInt(i, a);
    if ((NU)((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_6)) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2((NI)(TM__SRd76hP9cMfCzdUO857UhQQ_6),(s ? s->Sup.len : 0)-1);
    result->data[i] = s->data[(NI)(TM__SRd76hP9cMfCzdUO857UhQQ_6)];
    TM__SRd76hP9cMfCzdUO857UhQQ_7 = addInt(i_2, ((NI) 1));
    i_2 = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_7);
   } LA3: ;
  }
 }
 popFrame();
 return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {	void* T1_;
 T1_ = (void*)0;
 T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___BokNSDrKN1xmV1nA01G9brAsystem)(NI a, NI b) {	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
 nimfr_("..", "/home/runner/.choosenim/toolchains/nim-1.0.10/lib/system.nim");
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 chckNil((void*)(&result));
 nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
 result.a = a;
 result.b = b;
 popFrame();
 return result;
}
N_LIB_PRIVATE N_NIMCALL(void, foo__EzBZaa239as9bFx8yeHDoTOw)(void) {	nimfr_("foo", "/home/runner/work/Nim/Nim/temp.nim");
 {
  NI _;
  NI i;
  NI L;
  _ = (NI)0;
  i = ((NI) 0);
  L = ((NI) 3);
  {
   while (1) {
    tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T4_;
    NimStringDesc* T5_;
    NI TM__SRd76hP9cMfCzdUO857UhQQ_9;
    if (!(i < L)) goto LA3;
    if ((NU)(i) >= (NU)(TM__SRd76hP9cMfCzdUO857UhQQ_2 ? TM__SRd76hP9cMfCzdUO857UhQQ_2->Sup.len : 0)) raiseIndexError2(i,(TM__SRd76hP9cMfCzdUO857UhQQ_2 ? TM__SRd76hP9cMfCzdUO857UhQQ_2->Sup.len : 0)-1);
    _ = TM__SRd76hP9cMfCzdUO857UhQQ_2->data[i];
    T4_ = dotdot___BokNSDrKN1xmV1nA01G9brAsystem(((NI) 25), ((NI) 9));
    T5_ = (NimStringDesc*)0;
    T5_ = X5BX5D___FPvLvuwqfYMFkcbGfPM8QQsystem(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_8), T4_);
    (void)(T5_);
    goto LA1;
    TM__SRd76hP9cMfCzdUO857UhQQ_9 = addInt(i, ((NI) 1));
    i = (NI)(TM__SRd76hP9cMfCzdUO857UhQQ_9);
    {
     if (!!((((NI) 3) == L))) goto LA8_;
     failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__SRd76hP9cMfCzdUO857UhQQ_10));
    }
    LA8_: ;
   } LA3: ;
  }
 } LA1: ;
 echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_11, 1);
 popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {	nimGC_setStackBottom(locals);
}
void PreMainInner(void) {
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
 void (*volatile inner)(void);
 inner = PreMainInner;
 systemDatInit000();
 initStackBottomWith((void *)&inner);
 systemInit000();
 (*inner)();
}
N_CDECL(void, NimMainInner)(void) {
 NimMainModule();
}
N_CDECL(void, NimMain)(void) {
 void (*volatile inner)(void);
 PreMain();
 inner = NimMainInner;
 initStackBottomWith((void *)&inner);
 (*inner)();
}
int main(int argc, char** args, char** env) {
 cmdLine = args;
 cmdCount = argc;
 gEnv = env;
 NimMain();
 return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
 nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
 foo__EzBZaa239as9bFx8yeHDoTOw();
 popFrame();
}
}

Stats

  • Started 2024-03-25T02:47:06
  • Finished 2024-03-25T02:47:06
  • Duration

AST

nnkStmtList.newTree(
  nnkProcDef.newTree(
    newIdentNode("foo"),
    newEmptyNode(),
    newEmptyNode(),
    nnkFormalParams.newTree(
      newEmptyNode()
    ),
    newEmptyNode(),
    newEmptyNode(),
    nnkStmtList.newTree(
      nnkForStmt.newTree(
        newIdentNode("_"),
        nnkPrefix.newTree(
          newIdentNode("@"),
          nnkBracket.newTree(
            newLit(1),
            newLit(3),
            newLit(5)
          )
        ),
        nnkStmtList.newTree(
          nnkDiscardStmt.newTree(
            nnkBracketExpr.newTree(
              newLit("abcde"),
              nnkInfix.newTree(
                newIdentNode("..<"),
                newLit(25),
                newLit(10)
              )
            )
          ),
          nnkBreakStmt.newTree(
            newEmptyNode()
          )
        )
      ),
      nnkCommand.newTree(
        newIdentNode("echo"),
        newLit("Passed")
      )
    )
  ),
  nnkWhenStmt.newTree(
    nnkElifBranch.newTree(
      newIdentNode("isMainModule"),
      nnkStmtList.newTree(
        nnkCall.newTree(
          newIdentNode("foo")
        )
      )
    )
  )
)
Stats
  • GCC 11.4.0
  • Clang 14.0.0
  • NodeJS 19.1
  • Created 2024-03-25T02:46:22Z
  • Comments 5
  • Commands nim c --gc:refc --run -d:nimDebug -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim

🤖 Bug found in 18 minutes bisecting 7 commits at 0 commits per second

from nim.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.