Comments (4)
!nim c --gc:orc
when isMainModule:
type
TestObj = object of RootObj
TestTestObj = object of RootObj
testo: TestObj
proc `=destroy`(x: var TestTestObj) =
echo "Destructor for TestTestObj"
proc testCaseT() =
echo "\nTest Case T"
let tt1 {.used.} = TestTestObj(testo: TestObj())
proc main() =
testCaseT()
main()
from nim.
!nim c --gc:orc
when isMainModule:
type
TestObj = object of RootObj
TestTestObj = object of RootObj
testo: TestObj
proc `=destroy`(x: TestTestObj) =
echo "Destructor for TestTestObj"
proc testCaseT() =
echo "\nTest Case T"
let tt1 {.used.} = TestTestObj(testo: TestObj())
proc main() =
testCaseT()
main()
from nim.
🐧 Linux bisect by @ringabout (member)
devel 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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]
command line(1, 2) Warning: `gc:option` is deprecated; use `mm:option` instead [Deprecated]
/home/runner/work/Nim/Nim/@mtemp.nim.c:95:98: error: expected expression before ‘static’
95 | static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
| ^~~~~~
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘eqdestroy___temp_u4’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:148:21: error: ‘TM__SRd76hP9cMfCzdUO857UhQQ_3’ undeclared (first use in this function); did you mean ‘TM__SRd76hP9cMfCzdUO857UhQQ_6’?
148 | echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| TM__SRd76hP9cMfCzdUO857UhQQ_6
/home/runner/work/Nim/Nim/@mtemp.nim.c:148:21: note: each undeclared identifier is reported only once for each function it appears in
Error: execution of an external compiler program 'gcc -c -w -fmax-errors=3 -pthread -I'/home/runner/.choosenim/toolchains/nim-#devel/lib' -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1
assertions.nim(34) raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
void* vTable[SEQ_DECL_SIZE];
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4963)(void);
static N_INLINE(void, popFrame)(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);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4747;
extern NIM_THREADVAR TFrame* framePtr__system_u2655;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4747);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u2655 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u2655).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u2655;
framePtr__system_u2655 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4963();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u2655 = (*framePtr__system_u2655).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4((&(*((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:31:50
- Finished
2024-05-20T01:31:51
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
newIdentNode("TestTestObj"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
stable 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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/@mtemp.nim.c:94:98: error: expected expression before ‘static’
94 | static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
| ^~~~~~
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘eqdestroy___temp_u4’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:147:21: error: ‘TM__SRd76hP9cMfCzdUO857UhQQ_3’ undeclared (first use in this function); did you mean ‘TM__SRd76hP9cMfCzdUO857UhQQ_6’?
147 | echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| TM__SRd76hP9cMfCzdUO857UhQQ_6
/home/runner/work/Nim/Nim/@mtemp.nim.c:147:21: note: each undeclared identifier is reported only once for each function it appears in
Error: execution of an external compiler program 'gcc -c -w -fmax-errors=3 -pthread -I/home/runner/.choosenim/toolchains/nim-2.0.4/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u5035)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4817;
extern NIM_THREADVAR TFrame* framePtr__system_u4434;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4817);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4434 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4434).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4434;
framePtr__system_u4434 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u5035();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4434 = (*framePtr__system_u4434).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4((&(*((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:31:51
- Finished
2024-05-20T01:31:52
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
newIdentNode("TestTestObj"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
2.0.4 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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/@mtemp.nim.c:94:98: error: expected expression before ‘static’
94 | static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
| ^~~~~~
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘eqdestroy___temp_u4’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:147:21: error: ‘TM__SRd76hP9cMfCzdUO857UhQQ_3’ undeclared (first use in this function); did you mean ‘TM__SRd76hP9cMfCzdUO857UhQQ_6’?
147 | echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| TM__SRd76hP9cMfCzdUO857UhQQ_6
/home/runner/work/Nim/Nim/@mtemp.nim.c:147:21: note: each undeclared identifier is reported only once for each function it appears in
Error: execution of an external compiler program 'gcc -c -w -fmax-errors=3 -pthread -I/home/runner/.choosenim/toolchains/nim-2.0.4/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u5035)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4817;
extern NIM_THREADVAR TFrame* framePtr__system_u4434;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4817);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4434 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4434).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4434;
framePtr__system_u4434 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u5035();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4434 = (*framePtr__system_u4434).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4((&(*((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:31:52
- Finished
2024-05-20T01:31:53
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
newIdentNode("TestTestObj"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
1.6.20 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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(6, 3) Error: signature for '=destroy' must be proc[T: object](x: var T)
fatal.nim(54) sysFatal
Error: unhandled exception: options.nim(662, 14) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u5035)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4817;
extern NIM_THREADVAR TFrame* framePtr__system_u4434;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4817);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4434 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4434).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4434;
framePtr__system_u4434 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u5035();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4434 = (*framePtr__system_u4434).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4((&(*((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:31:55
- Finished
2024-05-20T01:31:56
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
newIdentNode("TestTestObj"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
1.4.8 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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/.choosenim/toolchains/nim-1.4.8/lib/system/bitmasks.nim(13, 3) Error: redefinition of 'PageShift'; previous declaration here: /home/runner/.choosenim/toolchains/nim-1.4.8/lib/system/bitmasks.nim(13, 3)
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u5035)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4817;
extern NIM_THREADVAR TFrame* framePtr__system_u4434;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4817);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4434 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4434).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4434;
framePtr__system_u4434 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u5035();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4434 = (*framePtr__system_u4434).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4((&(*((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:31:58
- Finished
2024-05-20T01:31:58
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
newIdentNode("TestTestObj"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
1.2.18 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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(6, 3) Error: signature for '=destroy' must be proc[T: object](x: var T)
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u5035)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4817;
extern NIM_THREADVAR TFrame* framePtr__system_u4434;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4817);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4434 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4434).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4434;
framePtr__system_u4434 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u5035();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4434 = (*framePtr__system_u4434).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4((&(*((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:32:00
- Finished
2024-05-20T01:32:01
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
newIdentNode("TestTestObj"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
1.0.10 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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) Error: 'none', 'boehm' or 'refc' expected, but 'orc' found
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u5035)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4817;
extern NIM_THREADVAR TFrame* framePtr__system_u4434;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4817);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4434 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4434).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4434;
framePtr__system_u4434 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u5035();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4434 = (*framePtr__system_u4434).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4((&(*((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:32:03
- Finished
2024-05-20T01:32:03
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
newIdentNode("TestTestObj"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.2
- Created
2024-05-20T01:31:20Z
- Comments
1
- Commands
nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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 16 minutes
bisecting 7
commits at 0
commits per second
from nim.
🐧 Linux bisect by @ringabout (member)
devel 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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]
command line(1, 2) Warning: `gc:option` is deprecated; use `mm:option` instead [Deprecated]
/home/runner/work/Nim/Nim/temp.nim(6, 3) Warning: A custom '=destroy' hook which takes a 'var T' parameter is deprecated; it should take a 'T' parameter [Deprecated]
/home/runner/work/Nim/Nim/@mtemp.nim.c:95:98: error: expected expression before ‘static’
95 | static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
| ^~~~~~
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘eqdestroy___temp_u4’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:148:21: error: ‘TM__SRd76hP9cMfCzdUO857UhQQ_3’ undeclared (first use in this function); did you mean ‘TM__SRd76hP9cMfCzdUO857UhQQ_6’?
148 | echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| TM__SRd76hP9cMfCzdUO857UhQQ_6
/home/runner/work/Nim/Nim/@mtemp.nim.c:148:21: note: each undeclared identifier is reported only once for each function it appears in
Error: execution of an external compiler program 'gcc -c -w -fmax-errors=3 -pthread -I'/home/runner/.choosenim/toolchains/nim-#devel/lib' -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1
assertions.nim(34) raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
void* vTable[SEQ_DECL_SIZE];
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4963)(void);
static N_INLINE(void, popFrame)(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);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4747;
extern NIM_THREADVAR TFrame* framePtr__system_u2655;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4747);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u2655 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u2655).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u2655;
framePtr__system_u2655 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u4963();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u2655 = (*framePtr__system_u2655).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4(((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:33:10
- Finished
2024-05-20T01:33:11
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
newIdentNode("TestTestObj")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
stable 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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(6, 3) Warning: A custom '=destroy' hook which takes a 'var T' parameter is deprecated; it should take a 'T' parameter [Deprecated]
/home/runner/work/Nim/Nim/@mtemp.nim.c:94:98: error: expected expression before ‘static’
94 | static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
| ^~~~~~
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘eqdestroy___temp_u4’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:147:21: error: ‘TM__SRd76hP9cMfCzdUO857UhQQ_3’ undeclared (first use in this function); did you mean ‘TM__SRd76hP9cMfCzdUO857UhQQ_6’?
147 | echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| TM__SRd76hP9cMfCzdUO857UhQQ_6
/home/runner/work/Nim/Nim/@mtemp.nim.c:147:21: note: each undeclared identifier is reported only once for each function it appears in
Error: execution of an external compiler program 'gcc -c -w -fmax-errors=3 -pthread -I/home/runner/.choosenim/toolchains/nim-2.0.4/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u5035)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4817;
extern NIM_THREADVAR TFrame* framePtr__system_u4434;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4817);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4434 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4434).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4434;
framePtr__system_u4434 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u5035();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4434 = (*framePtr__system_u4434).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4(((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:33:12
- Finished
2024-05-20T01:33:12
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
newIdentNode("TestTestObj")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
2.0.4 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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(6, 3) Warning: A custom '=destroy' hook which takes a 'var T' parameter is deprecated; it should take a 'T' parameter [Deprecated]
/home/runner/work/Nim/Nim/@mtemp.nim.c:94:98: error: expected expression before ‘static’
94 | static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
| ^~~~~~
/home/runner/work/Nim/Nim/@mtemp.nim.c: In function ‘eqdestroy___temp_u4’:
/home/runner/work/Nim/Nim/@mtemp.nim.c:147:21: error: ‘TM__SRd76hP9cMfCzdUO857UhQQ_3’ undeclared (first use in this function); did you mean ‘TM__SRd76hP9cMfCzdUO857UhQQ_6’?
147 | echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| TM__SRd76hP9cMfCzdUO857UhQQ_6
/home/runner/work/Nim/Nim/@mtemp.nim.c:147:21: note: each undeclared identifier is reported only once for each function it appears in
Error: execution of an external compiler program 'gcc -c -w -fmax-errors=3 -pthread -I/home/runner/.choosenim/toolchains/nim-2.0.4/lib -I/home/runner/work/Nim/Nim -o /home/runner/work/Nim/Nim/@mtemp.nim.c.o /home/runner/work/Nim/Nim/@mtemp.nim.c' failed with exit code: 1
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(681, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
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);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u5035)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_8 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_7 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_8}}
;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4817;
extern NIM_THREADVAR TFrame* framePtr__system_u4434;
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_5[2] = {3701606400, 3238797824};
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_ = {.destructor = (void*)rttiDestroy__temp_u52, .size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .align = (NI16) NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_5, .traceImpl = (void*)NIM_NIL, .flags = 0};
static NIM_CONST NU32 TM__SRd76hP9cMfCzdUO857UhQQ_6[2] = {3701606400, 223348224};
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .align = (NI16) NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ), .depth = 1, .display = TM__SRd76hP9cMfCzdUO857UhQQ_6, .traceImpl = (void*)NIM_NIL, .flags = 0};
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(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (&nimInErrorMode__system_u4817);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4434 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s_p0).calldepth = ((NI16)0);
}
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4434).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4434;
framePtr__system_u4434 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
callDepthLimitReached__system_u5035();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4434 = (*framePtr__system_u4434).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x_p0) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, rttiDestroy__temp_u52)(void* dest_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
eqdestroy___temp_u4(((tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg*) (dest_p0)));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_7, 1);
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u51)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_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();
main__temp_u51();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
Stats
- Started
2024-05-20T01:33:13
- Finished
2024-05-20T01:33:13
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
newIdentNode("TestTestObj")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
1.6.20 👍 OK
Output
Test Case T
Destructor for TestTestObj
IR
Compiled filesize95.02 Kb (97,296 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI align;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u35)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args, NI argsLen_0);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4838)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_5 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6}}
;
extern NIM_BOOL nimInErrorMode__system_u4667;
extern TFrame* framePtr__system_u4316;
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a, int v, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__system_u4667);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p, ((int) 0), size);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__system_u4316 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__system_u4316).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__system_u4316;
framePtr__system_u4316 = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
callDepthLimitReached__system_u4838();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4316 = (*framePtr__system_u4316).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_5, 1);
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u35)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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) {
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_Init000();
atmtempdotnim_DatInit000();
PreMainInner();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
PreMain();
NimMainInner();
}
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();
main__temp_u35();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.destructor = (void*)eqdestroy___temp_u4; NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg); NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.align = NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg); NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.name = "|nim.temp.TestTestObj|RootObj|";
; NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.traceImpl = (void*)NIM_NIL; NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.flags = 0;NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.destructor = (void*)NIM_NIL; NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ); NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.align = NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ); NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.name = "|nim.temp.TestObj|RootObj|";
; NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.traceImpl = (void*)NIM_NIL; NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.flags = 0;}
Stats
- Started
2024-05-20T01:33:16
- Finished
2024-05-20T01:33:16
- Duration
1.4.8 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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/.choosenim/toolchains/nim-1.4.8/lib/system/bitmasks.nim(13, 3) Error: redefinition of 'PageShift'; previous declaration here: /home/runner/.choosenim/toolchains/nim-1.4.8/lib/system/bitmasks.nim(13, 3)
IR
Compiled filesize95.02 Kb (97,296 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 tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimTypeV2 {
void* destructor;
NI size;
NI align;
NCSTRING name;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ {
RootObj Sup;
};
struct tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg {
RootObj Sup;
tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u35)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args, NI argsLen_0);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4838)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimTypeV2 NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
N_LIB_PRIVATE TNimTypeV2 NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_;
static NIM_CONST tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{(&NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_)}, {{(&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_)}}}
;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_5 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6}}
;
extern NIM_BOOL nimInErrorMode__system_u4667;
extern TFrame* framePtr__system_u4316;
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a, int v, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__system_u4667);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_u7(p, ((int) 0), size);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__system_u4316 == ((TFrame*) NIM_NIL))) goto LA3_;
(*s).calldepth = ((NI16) 0);
}
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__system_u4316).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__system_u4316;
framePtr__system_u4316 = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
callDepthLimitReached__system_u4838();
}
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4316 = (*framePtr__system_u4316).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___temp_u4)(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg* x) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__temp_u6)(void) {
tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_5, 1);
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ));
tt1.testo.Sup.m_type = (&NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___temp_u4((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__temp_u35)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__temp_u6();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}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) {
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_Init000();
atmtempdotnim_DatInit000();
PreMainInner();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
PreMain();
NimMainInner();
}
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();
main__temp_u35();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.destructor = (void*)eqdestroy___temp_u4; NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.size = sizeof(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg); NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.align = NIM_ALIGNOF(tyObject_TestTestObj__BcEMIiQvlQWs2Q5GK9bYvCg); NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.name = "|nim.temp.TestTestObj|RootObj|";
; NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.traceImpl = (void*)NIM_NIL; NTIv2__BcEMIiQvlQWs2Q5GK9bYvCg_.flags = 0;NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.destructor = (void*)NIM_NIL; NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.size = sizeof(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ); NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.align = NIM_ALIGNOF(tyObject_TestObj__jQ1QBnQfCzrc4JyDBZaLlQ); NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.name = "|nim.temp.TestObj|RootObj|";
; NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.traceImpl = (void*)NIM_NIL; NTIv2__jQ1QBnQfCzrc4JyDBZaLlQ_.flags = 0;}
Stats
- Started
2024-05-20T01:33:18
- Finished
2024-05-20T01:33:18
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
newIdentNode("TestTestObj")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
1.2.18 👍 OK
Output
Test Case T
Destructor for TestTestObj
IR
Compiled filesize87.52 Kb (89,616 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 tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimType {
void* destructor;
NI size;
NCSTRING name;
void* traceImpl;
void* disposeImpl;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA {
RootObj Sup;
};
struct tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA {
RootObj Sup;
tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__EzBZaa239as9bFx8yeHDoTOw)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__EzBZaa239as9bFx8yeHDoTOw_2)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___zBID29aekK1hehpDfKbkqSg)(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA* x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args, NI argsLen_0);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NOINLINE(void, chckNil)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTI__ARKTm9bq3MWD4lEB2eNiz9aA_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
N_LIB_PRIVATE TNimType NTI__3AeJkC21Y1k6SDwUrpYJAA_;
static NIM_CONST tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{(&NTI__ARKTm9bq3MWD4lEB2eNiz9aA_)}, {{(&NTI__3AeJkC21Y1k6SDwUrpYJAA_)}}}
;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_5 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6}}
;
extern NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;
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, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___zBID29aekK1hehpDfKbkqSg)(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA* x) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__EzBZaa239as9bFx8yeHDoTOw_2)(void) {
tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_5, 1);
chckNil((void*)(&tt1));
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
chckNil((void*)(&tt1.testo));
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA));
tt1.testo.Sup.m_type = (&NTI__3AeJkC21Y1k6SDwUrpYJAA_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___zBID29aekK1hehpDfKbkqSg((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__EzBZaa239as9bFx8yeHDoTOw)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__EzBZaa239as9bFx8yeHDoTOw_2();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* 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();
tempDatInit000();
(*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) {
{
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
main__EzBZaa239as9bFx8yeHDoTOw();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.destructor = (void*)eqdestroy___zBID29aekK1hehpDfKbkqSg; NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.size = sizeof(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA);
NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.name = "|nim.temp.TestTestObj|RootObj|";
NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.traceImpl = (void*)NIM_NIL;
NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.disposeImpl = (void*)NIM_NIL;
NTI__3AeJkC21Y1k6SDwUrpYJAA_.destructor = (void*)NIM_NIL; NTI__3AeJkC21Y1k6SDwUrpYJAA_.size = sizeof(tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA);
NTI__3AeJkC21Y1k6SDwUrpYJAA_.name = "|nim.temp.TestObj|RootObj|";
NTI__3AeJkC21Y1k6SDwUrpYJAA_.traceImpl = (void*)NIM_NIL;
NTI__3AeJkC21Y1k6SDwUrpYJAA_.disposeImpl = (void*)NIM_NIL;
}
Stats
- Started
2024-05-20T01:33:21
- Finished
2024-05-20T01:33:21
- Duration
1.0.10 👎 FAIL
Output
Error: Command failed: nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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) Error: 'none', 'boehm' or 'refc' expected, but 'orc' found
IR
Compiled filesize87.52 Kb (89,616 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 tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct TNimType {
void* destructor;
NI size;
NCSTRING name;
void* traceImpl;
void* disposeImpl;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA {
RootObj Sup;
};
struct tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA {
RootObj Sup;
tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA testo;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
N_LIB_PRIVATE N_NIMCALL(void, main__EzBZaa239as9bFx8yeHDoTOw)(void);
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__EzBZaa239as9bFx8yeHDoTOw_2)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___zBID29aekK1hehpDfKbkqSg)(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA* x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args, NI argsLen_0);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NOINLINE(void, chckNil)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, nimTestErrorFlag)(void);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTI__ARKTm9bq3MWD4lEB2eNiz9aA_;
static const struct {
NI cap; NIM_CHAR data[26+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 26 | NIM_STRLIT_FLAG, "Destructor for TestTestObj" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_3 = {{26, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4}}
;
N_LIB_PRIVATE TNimType NTI__3AeJkC21Y1k6SDwUrpYJAA_;
static NIM_CONST tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA TM__SRd76hP9cMfCzdUO857UhQQ_2 = {{(&NTI__ARKTm9bq3MWD4lEB2eNiz9aA_)}, {{(&NTI__3AeJkC21Y1k6SDwUrpYJAA_)}}}
;
static const struct {
NI cap; NIM_CHAR data[12+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_6 = { 12 | NIM_STRLIT_FLAG, "\012Test Case T" };
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__SRd76hP9cMfCzdUO857UhQQ_5 = {{12, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_6}}
;
extern NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;
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, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___zBID29aekK1hehpDfKbkqSg)(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA* x) {
nimfr_("=destroy", "/home/runner/work/Nim/Nim/temp.nim");
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_3, 1);
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, testCaseT__EzBZaa239as9bFx8yeHDoTOw_2)(void) {
tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA tt1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
nimfr_("testCaseT", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
echoBinSafe(TM__SRd76hP9cMfCzdUO857UhQQ_5, 1);
chckNil((void*)(&tt1));
nimZeroMem((void*)(&tt1), sizeof(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA));
tt1 = TM__SRd76hP9cMfCzdUO857UhQQ_2;
chckNil((void*)(&tt1.testo));
nimZeroMem((void*)(&tt1.testo), sizeof(tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA));
tt1.testo.Sup.m_type = (&NTI__3AeJkC21Y1k6SDwUrpYJAA_);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___zBID29aekK1hehpDfKbkqSg((&tt1));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
N_LIB_PRIVATE N_NIMCALL(void, main__EzBZaa239as9bFx8yeHDoTOw)(void) {
NIM_BOOL* nimErr_;
nimfr_("main", "/home/runner/work/Nim/Nim/temp.nim");
{nimErr_ = nimErrorFlag();
testCaseT__EzBZaa239as9bFx8yeHDoTOw_2();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* 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();
tempDatInit000();
(*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) {
{
NIM_BOOL* nimErr_;
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
nimErr_ = nimErrorFlag();
main__EzBZaa239as9bFx8yeHDoTOw();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
BeforeRet_: ;
nimTestErrorFlag();
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.destructor = (void*)eqdestroy___zBID29aekK1hehpDfKbkqSg; NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.size = sizeof(tyObject_TestTestObj__ARKTm9bq3MWD4lEB2eNiz9aA);
NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.name = "|nim.temp.TestTestObj|RootObj|";
NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.traceImpl = (void*)NIM_NIL;
NTI__ARKTm9bq3MWD4lEB2eNiz9aA_.disposeImpl = (void*)NIM_NIL;
NTI__3AeJkC21Y1k6SDwUrpYJAA_.destructor = (void*)NIM_NIL; NTI__3AeJkC21Y1k6SDwUrpYJAA_.size = sizeof(tyObject_TestObj__3AeJkC21Y1k6SDwUrpYJAA);
NTI__3AeJkC21Y1k6SDwUrpYJAA_.name = "|nim.temp.TestObj|RootObj|";
NTI__3AeJkC21Y1k6SDwUrpYJAA_.traceImpl = (void*)NIM_NIL;
NTI__3AeJkC21Y1k6SDwUrpYJAA_.disposeImpl = (void*)NIM_NIL;
}
Stats
- Started
2024-05-20T01:33:23
- Finished
2024-05-20T01:33:23
- Duration
AST
nnkStmtList.newTree(
nnkWhenStmt.newTree(
nnkElifBranch.newTree(
newIdentNode("isMainModule"),
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
newIdentNode("TestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
newEmptyNode()
)
),
nnkTypeDef.newTree(
newIdentNode("TestTestObj"),
newEmptyNode(),
nnkObjectTy.newTree(
newEmptyNode(),
nnkOfInherit.newTree(
newIdentNode("RootObj")
),
nnkRecList.newTree(
nnkIdentDefs.newTree(
newIdentNode("testo"),
newIdentNode("TestObj"),
newEmptyNode()
)
)
)
)
),
nnkProcDef.newTree(
nnkAccQuoted.newTree(
newIdentNode("="),
newIdentNode("destroy")
),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("x"),
nnkVarTy.newTree(
newIdentNode("TestTestObj")
),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("Destructor for TestTestObj")
)
)
),
nnkProcDef.newTree(
newIdentNode("testCaseT"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newLit("\nTest Case T")
),
nnkLetSection.newTree(
nnkIdentDefs.newTree(
nnkPragmaExpr.newTree(
newIdentNode("tt1"),
nnkPragma.newTree(
newIdentNode("used")
)
),
newEmptyNode(),
nnkObjConstr.newTree(
newIdentNode("TestTestObj"),
nnkExprColonExpr.newTree(
newIdentNode("testo"),
nnkCall.newTree(
newIdentNode("TestObj")
)
)
)
)
)
)
),
nnkProcDef.newTree(
newIdentNode("main"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode()
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCall.newTree(
newIdentNode("testCaseT")
)
)
),
nnkCall.newTree(
newIdentNode("main")
)
)
)
)
)
#ca1f3f36b ➡️ 🐛
Diagnostics
andreas rumpf introduced a bug at 2022-09-27 10:57:47 +0200
on commit #ca1f3f36b with message:
no ropes WIP (#20433)
* refactorings in preparation for ropes elimination of the C code generator; mostly the usual ': Rope' -> 'result: var Rope' rewrite
* rewrote ccgcalls.nim
* refactored ccgexprs.nim
* ccgliterals: refactoring
* refactoring: code dealing with name mangling
* refactoring: getRecordFieldsAux
* ropes are strings (insert obscene joke here)
* optimize JS code gen
* optimizations and code improvements
* more optimizations
* final cleanups
The bug is in the files:
compiler/ast.nim
compiler/astalgo.nim
compiler/ccgcalls.nim
compiler/ccgexprs.nim
compiler/ccgliterals.nim
compiler/ccgreset.nim
compiler/ccgstmts.nim
compiler/ccgthreadvars.nim
compiler/ccgtrav.nim
compiler/ccgtypes.nim
compiler/cgen.nim
compiler/cgendata.nim
compiler/cgmeth.nim
compiler/depends.nim
compiler/extccomp.nim
compiler/ic/ic.nim
compiler/jsgen.nim
compiler/jstypes.nim
compiler/msgs.nim
compiler/pragmas.nim
compiler/ropes.nim
compiler/semexprs.nim
compiler/semtypes.nim
compiler/sighashes.nim
The bug can be in the commits:
(Diagnostics sometimes off-by-one).
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.2
- Created
2024-05-20T01:32:42Z
- Comments
3
- Commands
nim c --gc:orc -d:nimArcDebug -d:nimArcIds --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 31 minutes
bisecting 2232
commits at 71
commits per second
from nim.
Related Issues (20)
- Default object values silently override generic types
- Enum Overloading Regression? HOT 4
- async `and` swallows errors
- Async `finally` swallows errors when it contains an `await` wrapped by `try/except`
- The `when nimvm` statement fails to compile when in a file called nimvm.nim HOT 4
- Regression from 2.0 to `devel` with `dirty` template HOT 3
- Async memory leak when raising exception on ORC HOT 1
- unicode.splitWhitespace() and strutils.splitWhitespace() have different results for ASCII string
- Wrong stack trace when exception is raised in template HOT 1
- Error: cannot evaluate at compile time: foo HOT 4
- nim check crashes
- Any differnece between value types and reference types for `=sink` ? HOT 1
- Compiler crashes with infinite recursion for nested generic instantiation with static[int]
- The stdout.write doesn't print to terminal until new line symbol is sent HOT 3
- Gc_ref(x: string) and Gc_ref[T](x: seq[T]) doesn't exists anymore ? HOT 2
- tasks.toTask Doesn't Expect a Dot Expression
- [potential bug] SIGILL at `renderer.atom()`
- SIGSEGV due to freeing of uninitialized local string, during exception handling HOT 21
- Parameterless Conversions and Upcasting Are Broken HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nim.