Comments (5)
!nim cpp
type
Flags* = enum
A
B
Mask* {.size: sizeof(uint16).} = set[Flags]
proc check(flags: Mask) =
echo flags
check {A, B}
from nim.
It seems size pragma to set
type is not supported:
#21696
#21789
from nim.
🐧 Linux bisect by @juancarlospaco (collaborator)
devel 👎 FAIL
Output
Error: Command failed: nim cpp --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
/usr/bin/ld: /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o: in function `check__temp_u8(unsigned short)':
@mtemp.nim.cpp:(.text+0x1ce): undefined reference to `dollar___temp_u95(unsigned short)'
/usr/bin/ld: /home/runner/work/Nim/Nim/temp: hidden symbol `_Z17dollar___temp_u95t' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++ -o /home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/@m..@s..@[email protected]@stoolchains@snim-@hdevel@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@stoolchains@snim-@hdevel@slib@sstd@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@stoolchains@snim-@hdevel@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@stoolchains@snim-@hdevel@[email protected] /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o -pthread -pthread -ldl'
assertions.nim(34) raiseAssert
Error: unhandled exception: errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <exception>
#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;
struct NimStrPayload;
struct NimStringV2;
struct Exception;
struct RootObj;
struct TNimTypeV2;
struct tySequence__9bNRJkU9cJnNkESCDTQ7DgcQ;
struct tySequence__9bNRJkU9cJnNkESCDTQ7DgcQ_Content;
struct tyObject_StackTraceEntry__2Xjg6E7TZG7p9bcgUNTKHrg;
typedef NU16 tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
void* traceImpl;
void* typeInfoV1;
NI flags;
void** vTable;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tySequence__9bNRJkU9cJnNkESCDTQ7DgcQ {
NI len; tySequence__9bNRJkU9cJnNkESCDTQ7DgcQ_Content* p;
};
struct Exception : public RootObj {
Exception* parent;
NCSTRING name;
NimStringV2 message;
tySequence__9bNRJkU9cJnNkESCDTQ7DgcQ trace;
Exception* up;
};
struct tyObject_StackTraceEntry__2Xjg6E7TZG7p9bcgUNTKHrg {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__9bNRJkU9cJnNkESCDTQ7DgcQ_Content { NI cap; tyObject_StackTraceEntry__2Xjg6E7TZG7p9bcgUNTKHrg data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u95)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(TFrame*, getFrame)(void);
static N_INLINE(void, setFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4587)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystematsexceptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 1 | NIM_STRLIT_FLAG, "A" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 1 | NIM_STRLIT_FLAG, "B" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
extern NIM_THREADVAR TFrame* framePtr__system_u2654;
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u5)(tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w e_p0) {
NimStringV2 result;
switch (e_p0) {
case ((tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w)0):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_3;
}
break;
case ((tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w)1):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_5;
}
break;
default: __builtin_unreachable();
}
return result;
}
static N_INLINE(TFrame*, getFrame)(void) {
TFrame* result;
result = framePtr__system_u2654;
return result;
}
static N_INLINE(void, setFrame)(TFrame* s_p0) {
framePtr__system_u2654 = s_p0;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u2654 == ((TFrame*) NIM_NIL))) goto LA3_;
{ (*s_p0).calldepth = ((NI16)0);
} }
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u2654).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u2654;
framePtr__system_u2654 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
{ callDepthLimitReached__system_u4587();
} }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u2654 = (*framePtr__system_u2654).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags_p0) {
NimStringV2 colontmpD_;
std::exception_ptr T2_;
tyArray__nHXaesL0DJZHyVS07ARPRA T3_;
TFrame* _nimCurFrame;
nimfr_("check", "/home/runner/work/Nim/Nim/temp.nim");
_nimCurFrame = getFrame();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
try {
colontmpD_ = dollar___temp_u95(flags_p0);
T3_[0] = colontmpD_;
echoBinSafe(T3_, 1);
}
catch (Exception* T3_) {
setFrame(_nimCurFrame);
T2_ = std::current_exception();
}
catch (...) {
setFrame(_nimCurFrame);
T2_ = std::current_exception();
}
{
if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
if (T2_) std::rethrow_exception(T2_);
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystematsexceptionsdotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminusathdevelatslibatssystematsexceptionsdotnim_DatInit000();
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) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
check__temp_u8(3);
popFrame();
}
}
Stats
- Started
2024-06-07T13:54:52
- Finished
2024-06-07T13:54:52
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Flags")
),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
newIdentNode("A"),
newIdentNode("B")
)
),
nnkTypeDef.newTree(
nnkPragmaExpr.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Mask")
),
nnkPragma.newTree(
nnkExprColonExpr.newTree(
newIdentNode("size"),
nnkCall.newTree(
newIdentNode("sizeof"),
newIdentNode("uint16")
)
)
)
),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("set"),
newIdentNode("Flags")
)
)
),
nnkProcDef.newTree(
newIdentNode("check"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("flags"),
newIdentNode("Mask"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("flags")
)
)
),
nnkCommand.newTree(
newIdentNode("check"),
nnkCurly.newTree(
newIdentNode("A"),
newIdentNode("B")
)
)
)
stable 👎 FAIL
Output
Error: Command failed: nim cpp --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
/usr/bin/ld: /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o: in function `check__temp_u8(unsigned short)':
@mtemp.nim.cpp:(.text+0x1d2): undefined reference to `dollar___temp_u95(unsigned short)'
/usr/bin/ld: /home/runner/work/Nim/Nim/temp: hidden symbol `_Z17dollar___temp_u95t' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++ -o /home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@sstd@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@[email protected] /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o -pthread -pthread -ldl'
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 <exception>
#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;
struct NimStrPayload;
struct NimStringV2;
struct Exception;
struct RootObj;
struct TNimTypeV2;
struct tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ;
struct tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ_Content;
struct tyObject_StackTraceEntry__6CL1lcV9bxEp7TPS0fN8sRQ;
typedef NU16 tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ {
NI len; tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ_Content* p;
};
struct Exception : public RootObj {
Exception* parent;
NCSTRING name;
NimStringV2 message;
tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ trace;
Exception* up;
};
struct tyObject_StackTraceEntry__6CL1lcV9bxEp7TPS0fN8sRQ {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ_Content { NI cap; tyObject_StackTraceEntry__6CL1lcV9bxEp7TPS0fN8sRQ data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u95)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(TFrame*, getFrame)(void);
static N_INLINE(void, setFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4584)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystematsexceptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 1 | NIM_STRLIT_FLAG, "A" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 1 | NIM_STRLIT_FLAG, "B" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u5)(tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w e_p0) {
NimStringV2 result;
switch (e_p0) {
case ((tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w)0):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_3;
}
break;
case ((tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w)1):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_5;
}
break;
}
return result;
}
static N_INLINE(TFrame*, getFrame)(void) {
TFrame* result;
result = framePtr__system_u4020;
return result;
}
static N_INLINE(void, setFrame)(TFrame* s_p0) {
framePtr__system_u4020 = s_p0;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
{ (*s_p0).calldepth = ((NI16)0);
} }
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4020;
framePtr__system_u4020 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
{ callDepthLimitReached__system_u4584();
} }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags_p0) {
NimStringV2 colontmpD_;
tyArray__nHXaesL0DJZHyVS07ARPRA T3_;
TFrame* _nimCurFrame;
nimfr_("check", "/home/runner/work/Nim/Nim/temp.nim");
_nimCurFrame = getFrame();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
std::exception_ptr T2_;
try {
colontmpD_ = dollar___temp_u95(flags_p0);
T3_[0] = colontmpD_;
echoBinSafe(T3_, 1);
}
catch (Exception* T3_) {
setFrame(_nimCurFrame);
T2_ = std::current_exception();
}
catch (...) {
setFrame(_nimCurFrame);
T2_ = std::current_exception();
}
{
if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
if (T2_) std::rethrow_exception(T2_);
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystematsexceptionsdotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystematsexceptionsdotnim_DatInit000();
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) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
check__temp_u8(3);
popFrame();
}
}
Stats
- Started
2024-06-07T13:54:53
- Finished
2024-06-07T13:54:53
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Flags")
),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
newIdentNode("A"),
newIdentNode("B")
)
),
nnkTypeDef.newTree(
nnkPragmaExpr.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Mask")
),
nnkPragma.newTree(
nnkExprColonExpr.newTree(
newIdentNode("size"),
nnkCall.newTree(
newIdentNode("sizeof"),
newIdentNode("uint16")
)
)
)
),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("set"),
newIdentNode("Flags")
)
)
),
nnkProcDef.newTree(
newIdentNode("check"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("flags"),
newIdentNode("Mask"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("flags")
)
)
),
nnkCommand.newTree(
newIdentNode("check"),
nnkCurly.newTree(
newIdentNode("A"),
newIdentNode("B")
)
)
)
2.0.4 👎 FAIL
Output
Error: Command failed: nim cpp --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
/usr/bin/ld: /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o: in function `check__temp_u8(unsigned short)':
@mtemp.nim.cpp:(.text+0x1d2): undefined reference to `dollar___temp_u95(unsigned short)'
/usr/bin/ld: /home/runner/work/Nim/Nim/temp: hidden symbol `_Z17dollar___temp_u95t' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++ -o /home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@sstd@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@[email protected] /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o -pthread -pthread -ldl'
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 <exception>
#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;
struct NimStrPayload;
struct NimStringV2;
struct Exception;
struct RootObj;
struct TNimTypeV2;
struct tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ;
struct tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ_Content;
struct tyObject_StackTraceEntry__6CL1lcV9bxEp7TPS0fN8sRQ;
typedef NU16 tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ {
NI len; tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ_Content* p;
};
struct Exception : public RootObj {
Exception* parent;
NCSTRING name;
NimStringV2 message;
tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ trace;
Exception* up;
};
struct tyObject_StackTraceEntry__6CL1lcV9bxEp7TPS0fN8sRQ {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__W5u7dtuXI9c4BOBf9bW9bZhWQ_Content { NI cap; tyObject_StackTraceEntry__6CL1lcV9bxEp7TPS0fN8sRQ data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u95)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(TFrame*, getFrame)(void);
static N_INLINE(void, setFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4584)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystematsexceptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 1 | NIM_STRLIT_FLAG, "A" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 1 | NIM_STRLIT_FLAG, "B" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
extern NIM_THREADVAR TFrame* framePtr__system_u4020;
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u5)(tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w e_p0) {
NimStringV2 result;
switch (e_p0) {
case ((tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w)0):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_3;
}
break;
case ((tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w)1):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_5;
}
break;
}
return result;
}
static N_INLINE(TFrame*, getFrame)(void) {
TFrame* result;
result = framePtr__system_u4020;
return result;
}
static N_INLINE(void, setFrame)(TFrame* s_p0) {
framePtr__system_u4020 = s_p0;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4020 == ((TFrame*) NIM_NIL))) goto LA3_;
{ (*s_p0).calldepth = ((NI16)0);
} }
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4020).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4020;
framePtr__system_u4020 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
{ callDepthLimitReached__system_u4584();
} }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4020 = (*framePtr__system_u4020).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags_p0) {
NimStringV2 colontmpD_;
tyArray__nHXaesL0DJZHyVS07ARPRA T3_;
TFrame* _nimCurFrame;
nimfr_("check", "/home/runner/work/Nim/Nim/temp.nim");
_nimCurFrame = getFrame();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
std::exception_ptr T2_;
try {
colontmpD_ = dollar___temp_u95(flags_p0);
T3_[0] = colontmpD_;
echoBinSafe(T3_, 1);
}
catch (Exception* T3_) {
setFrame(_nimCurFrame);
T2_ = std::current_exception();
}
catch (...) {
setFrame(_nimCurFrame);
T2_ = std::current_exception();
}
{
if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
if (T2_) std::rethrow_exception(T2_);
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystematsexceptionsdotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot4atslibatssystematsexceptionsdotnim_DatInit000();
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) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
check__temp_u8(3);
popFrame();
}
}
Stats
- Started
2024-06-07T13:54:54
- Finished
2024-06-07T13:54:54
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Flags")
),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
newIdentNode("A"),
newIdentNode("B")
)
),
nnkTypeDef.newTree(
nnkPragmaExpr.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Mask")
),
nnkPragma.newTree(
nnkExprColonExpr.newTree(
newIdentNode("size"),
nnkCall.newTree(
newIdentNode("sizeof"),
newIdentNode("uint16")
)
)
)
),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("set"),
newIdentNode("Flags")
)
)
),
nnkProcDef.newTree(
newIdentNode("check"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("flags"),
newIdentNode("Mask"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("flags")
)
)
),
nnkCommand.newTree(
newIdentNode("check"),
nnkCurly.newTree(
newIdentNode("A"),
newIdentNode("B")
)
)
)
2.0.0 👎 FAIL
Output
Error: Command failed: nim cpp --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
/usr/bin/ld: /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o: in function `check__temp_u8(unsigned short)':
@mtemp.nim.cpp:(.text+0x1ea): undefined reference to `dollar___temp_u95(unsigned short)'
/usr/bin/ld: /home/runner/work/Nim/Nim/temp: hidden symbol `_Z17dollar___temp_u95t' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++ -o /home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@sstd@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@[email protected] /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o -pthread -pthread -ldl'
assertions.nim(34) raiseAssert
Error: unhandled exception: options.nim(664, 5) `false` errGenerated [AssertionDefect]
IR
Compiled filesize0 bytes (0 bytes)
#define NIM_INTBITS 64
#include "nimbase.h"
#include <exception>
#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;
struct NimStrPayload;
struct NimStringV2;
struct Exception;
struct RootObj;
struct TNimTypeV2;
struct tySequence__2ALwPJKv8Nz8mMm4Hy9crdw;
struct tySequence__2ALwPJKv8Nz8mMm4Hy9crdw_Content;
struct tyObject_StackTraceEntry__nOjYJiLBbFH64nNmW1UArA;
typedef NU16 tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tySequence__2ALwPJKv8Nz8mMm4Hy9crdw {
NI len; tySequence__2ALwPJKv8Nz8mMm4Hy9crdw_Content* p;
};
struct Exception : public RootObj {
Exception* parent;
NCSTRING name;
NimStringV2 message;
tySequence__2ALwPJKv8Nz8mMm4Hy9crdw trace;
Exception* up;
};
struct tyObject_StackTraceEntry__nOjYJiLBbFH64nNmW1UArA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__2ALwPJKv8Nz8mMm4Hy9crdw_Content { NI cap; tyObject_StackTraceEntry__nOjYJiLBbFH64nNmW1UArA data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u95)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w x_p0);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args_p0, NI args_p0Len_0);
static N_INLINE(TFrame*, getFrame)(void);
static N_INLINE(void, setFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
static N_INLINE(void, nimFrame)(TFrame* s_p0);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u4570)(void);
static N_INLINE(void, popFrame)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystematsexceptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_2 = { 1 | NIM_STRLIT_FLAG, "A" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_3 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_2};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__SRd76hP9cMfCzdUO857UhQQ_4 = { 1 | NIM_STRLIT_FLAG, "B" };
static const NimStringV2 TM__SRd76hP9cMfCzdUO857UhQQ_5 = {1, (NimStrPayload*)&TM__SRd76hP9cMfCzdUO857UhQQ_4};
extern NIM_THREADVAR TFrame* framePtr__system_u4006;
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___temp_u5)(tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w e_p0) {
NimStringV2 result;
result.len = 0; result.p = NIM_NIL;
switch (e_p0) {
case ((tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w)0):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_3;
}
break;
case ((tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w)1):
{
result = TM__SRd76hP9cMfCzdUO857UhQQ_5;
}
break;
}
return result;
}
static N_INLINE(TFrame*, getFrame)(void) {
TFrame* result;
result = (TFrame*)0;
result = framePtr__system_u4006;
return result;
}
static N_INLINE(void, setFrame)(TFrame* s_p0) {
framePtr__system_u4006 = s_p0;
}
static N_INLINE(void, nimFrame)(TFrame* s_p0) {
{
if (!(framePtr__system_u4006 == ((TFrame*) NIM_NIL))) goto LA3_;
{ (*s_p0).calldepth = ((NI16)0);
} }
goto LA1_;
LA3_: ;
{
(*s_p0).calldepth = (NI16)((*framePtr__system_u4006).calldepth + ((NI16)1));
}
LA1_: ;
(*s_p0).prev = framePtr__system_u4006;
framePtr__system_u4006 = s_p0;
{
if (!((*s_p0).calldepth == ((NI16)2000))) goto LA8_;
{ callDepthLimitReached__system_u4570();
} }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u4006 = (*framePtr__system_u4006).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags_p0) {
NimStringV2 colontmpD_;
tyArray__nHXaesL0DJZHyVS07ARPRA T3_;
TFrame* _nimCurFrame;
nimfr_("check", "/home/runner/work/Nim/Nim/temp.nim");
_nimCurFrame = getFrame();
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
std::exception_ptr T2_;
try {
colontmpD_ = dollar___temp_u95(flags_p0);
T3_[0] = colontmpD_;
echoBinSafe(T3_, 1);
}
catch (Exception* T3_) {
setFrame(_nimCurFrame);
T2_ = std::current_exception();
}
catch (...) {
setFrame(_nimCurFrame);
T2_ = std::current_exception();
}
{
if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
deallocShared(colontmpD_.p);
}
if (T2_) std::rethrow_exception(T2_);
}
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;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystematsexceptionsdotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_Init000();
(*inner)();
#else
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystematsexceptionsdotnim_DatInit000();
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus2dot0dot0atslibatssystemdotnim_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) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
check__temp_u8(3);
popFrame();
}
}
Stats
- Started
2024-06-07T13:54:57
- Finished
2024-06-07T13:54:58
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Flags")
),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
newIdentNode("A"),
newIdentNode("B")
)
),
nnkTypeDef.newTree(
nnkPragmaExpr.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Mask")
),
nnkPragma.newTree(
nnkExprColonExpr.newTree(
newIdentNode("size"),
nnkCall.newTree(
newIdentNode("sizeof"),
newIdentNode("uint16")
)
)
)
),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("set"),
newIdentNode("Flags")
)
)
),
nnkProcDef.newTree(
newIdentNode("check"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("flags"),
newIdentNode("Mask"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("flags")
)
)
),
nnkCommand.newTree(
newIdentNode("check"),
nnkCurly.newTree(
newIdentNode("A"),
newIdentNode("B")
)
)
)
1.6.20 👎 FAIL
Output
Error: Command failed: nim cpp --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
/usr/bin/ld: /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o: in function `check__temp_u8(unsigned short)':
@mtemp.nim.cpp:(.text+0x147): undefined reference to `dollar___temp_u74(unsigned short)'
/usr/bin/ld: /home/runner/work/Nim/Nim/temp: hidden symbol `_Z17dollar___temp_u74t' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++ -o /home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@sstd@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@slib@[email protected] /home/runner/work/Nim/Nim/@m..@s..@[email protected]@[email protected]@[email protected] /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o -ldl'
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, file) \
FR_.line = n; FR_.filename = file;
struct NimStringDesc;
struct TGenericSeq;
struct TNimType;
struct TNimNode;
typedef NU16 tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc : public TGenericSeq {
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w;
typedef NU8 tyEnum_TNimKind__b9brdfAMvuT12kv1MtmF3IQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__h29aLKtZInAIaLqhWRujWcA;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__b9brdfAMvuT12kv1MtmF3IQ kind;
tySet_tyEnum_TNimTypeFlag__h29aLKtZInAIaLqhWRujWcA flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__K6UETQxRj3HYBl69c6NhKig;
struct TNimNode {
tyEnum_TNimNodeKind__K6UETQxRj3HYBl69c6NhKig kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___temp_u74)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
static N_INLINE(void, nimFrame)(TFrame* s);
N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_u2993)(void);
static N_INLINE(void, popFrame)(void);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
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 TNimType NTIflags__poAG8L9aG9aKHvBHjNpFE27w_;
extern TFrame* framePtr__system_u2564;
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a, int v, NI size) {
void* T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
nimSetMem__systemZmemory_u7(p, ((int) 0), size);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__system_u2564 == ((TFrame*) NIM_NIL))) goto LA3_;
{ (*s).calldepth = ((NI16) 0);
} }
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__system_u2564).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__system_u2564;
framePtr__system_u2564 = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
{ callDepthLimitReached__system_u2993();
} }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__system_u2564 = (*framePtr__system_u2564).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, check__temp_u8)(tySet_tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w flags) {
tyArray__nHXaesL0DJZHyVS07ARPRA T1_;
nimfr_("check", "/home/runner/work/Nim/Nim/temp.nim");
nimZeroMem((void*)T1_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T1_[0] = dollar___temp_u74(flags);
echoBinSafe(T1_, 1);
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_DatInit000();
initStackBottomWith((void *)&inner);
atmdotdotatsdotdotatsdotdotatsdotchoosenimatstoolchainsatsnimminus1dot6dot20atslibatssystemdotnim_Init000();
atmtempdotnim_DatInit000();
(*inner)();
}
N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
check__temp_u8(3);
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, atmtempdotnim_DatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"A",
"B"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTIflags__poAG8L9aG9aKHvBHjNpFE27w_.size = sizeof(tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w);
NTIflags__poAG8L9aG9aKHvBHjNpFE27w_.align = NIM_ALIGNOF(tyEnum_Flags__poAG8L9aG9aKHvBHjNpFE27w);
NTIflags__poAG8L9aG9aKHvBHjNpFE27w_.kind = 14;
NTIflags__poAG8L9aG9aKHvBHjNpFE27w_.base = 0;
NTIflags__poAG8L9aG9aKHvBHjNpFE27w_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTIflags__poAG8L9aG9aKHvBHjNpFE27w_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
}
Stats
- Started
2024-06-07T13:55:01
- Finished
2024-06-07T13:55:01
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Flags")
),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
newIdentNode("A"),
newIdentNode("B")
)
),
nnkTypeDef.newTree(
nnkPragmaExpr.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Mask")
),
nnkPragma.newTree(
nnkExprColonExpr.newTree(
newIdentNode("size"),
nnkCall.newTree(
newIdentNode("sizeof"),
newIdentNode("uint16")
)
)
)
),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("set"),
newIdentNode("Flags")
)
)
),
nnkProcDef.newTree(
newIdentNode("check"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("flags"),
newIdentNode("Mask"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("flags")
)
)
),
nnkCommand.newTree(
newIdentNode("check"),
nnkCurly.newTree(
newIdentNode("A"),
newIdentNode("B")
)
)
)
1.4.8 👎 FAIL
Output
Error: Command failed: nim cpp --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
/usr/bin/ld: /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o: in function `check__UKHWBr5jprrq1q9bYXgsRnQ(unsigned short)':
@mtemp.nim.cpp:(.text+0x147): undefined reference to `dollar___H7tBK6vUybcjPkezQwEk3g(unsigned short)'
/usr/bin/ld: /home/runner/work/Nim/Nim/temp: hidden symbol `_Z31dollar___H7tBK6vUybcjPkezQwEk3gt' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++ -o /home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/stdlib_dollars.nim.cpp.o /home/runner/work/Nim/Nim/stdlib_io.nim.cpp.o /home/runner/work/Nim/Nim/stdlib_system.nim.cpp.o /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o -ldl'
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, file) \
FR_.line = n; FR_.filename = file;
struct NimStringDesc;
struct TGenericSeq;
struct TNimType;
struct TNimNode;
typedef NU16 tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc : public TGenericSeq {
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw;
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
N_LIB_PRIVATE N_NIMCALL(void, check__UKHWBr5jprrq1q9bYXgsRnQ)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw flags);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___H7tBK6vUybcjPkezQwEk3g)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** 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);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTI__kEF5c4A3mE0Q9aypt5hX8aw_;
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_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(void, nimFrame)(TFrame* s) {
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == ((TFrame*) NIM_NIL))) goto LA3_;
{ (*s).calldepth = ((NI16) 0);
} }
goto LA1_;
LA3_: ;
{
(*s).calldepth = (NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1));
}
LA1_: ;
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
{ callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
} }
LA8_: ;
}
static N_INLINE(void, popFrame)(void) {
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, check__UKHWBr5jprrq1q9bYXgsRnQ)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw flags) {
tyArray__nHXaesL0DJZHyVS07ARPRA T1_;
nimfr_("check", "/home/runner/work/Nim/Nim/temp.nim");
nimZeroMem((void*)T1_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T1_[0] = dollar___H7tBK6vUybcjPkezQwEk3g(flags);
echoBinSafe(T1_, 1);
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
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) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
check__UKHWBr5jprrq1q9bYXgsRnQ(3);
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"A",
"B"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.size = sizeof(tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw);
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.align = NIM_ALIGNOF(tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw);
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.kind = 14;
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.base = 0;
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
}
Stats
- Started
2024-06-07T13:55:04
- Finished
2024-06-07T13:55:04
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Flags")
),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
newIdentNode("A"),
newIdentNode("B")
)
),
nnkTypeDef.newTree(
nnkPragmaExpr.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Mask")
),
nnkPragma.newTree(
nnkExprColonExpr.newTree(
newIdentNode("size"),
nnkCall.newTree(
newIdentNode("sizeof"),
newIdentNode("uint16")
)
)
)
),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("set"),
newIdentNode("Flags")
)
)
),
nnkProcDef.newTree(
newIdentNode("check"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("flags"),
newIdentNode("Mask"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("flags")
)
)
),
nnkCommand.newTree(
newIdentNode("check"),
nnkCurly.newTree(
newIdentNode("A"),
newIdentNode("B")
)
)
)
1.2.18 👎 FAIL
Output
Error: Command failed: nim cpp --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
/usr/bin/ld: /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o: in function `check__UKHWBr5jprrq1q9bYXgsRnQ(unsigned short)':
@mtemp.nim.cpp:(.text+0x147): undefined reference to `dollar___H7tBK6vUybcjPkezQwEk3g(unsigned short)'
/usr/bin/ld: /home/runner/work/Nim/Nim/temp: hidden symbol `_Z31dollar___H7tBK6vUybcjPkezQwEk3gt' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++ -o /home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/stdlib_dollars.nim.cpp.o /home/runner/work/Nim/Nim/stdlib_io.nim.cpp.o /home/runner/work/Nim/Nim/stdlib_system.nim.cpp.o /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o -ldl'
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, file) \
FR_.line = n; FR_.filename = file;
struct NimStringDesc;
struct TGenericSeq;
struct TNimType;
struct TNimNode;
typedef NU16 tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc : public TGenericSeq {
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw;
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
N_LIB_PRIVATE N_NIMCALL(void, check__UKHWBr5jprrq1q9bYXgsRnQ)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw flags);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___H7tBK6vUybcjPkezQwEk3g)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw x);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** 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);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
N_LIB_PRIVATE TNimType NTI__kEF5c4A3mE0Q9aypt5hX8aw_;
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_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
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, check__UKHWBr5jprrq1q9bYXgsRnQ)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw flags) {
tyArray__nHXaesL0DJZHyVS07ARPRA T1_;
nimfr_("check", "/home/runner/work/Nim/Nim/temp.nim");
nimZeroMem((void*)T1_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T1_[0] = dollar___H7tBK6vUybcjPkezQwEk3g(flags);
echoBinSafe(T1_, 1);
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE void PreMainInner(void) {
}
N_LIB_PRIVATE int cmdCount;
N_LIB_PRIVATE char** cmdLine;
N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
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) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
check__UKHWBr5jprrq1q9bYXgsRnQ(3);
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"A",
"B"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.size = sizeof(tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw);
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.kind = 14;
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.base = 0;
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
}
Stats
- Started
2024-06-07T13:55:07
- Finished
2024-06-07T13:55:07
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Flags")
),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
newIdentNode("A"),
newIdentNode("B")
)
),
nnkTypeDef.newTree(
nnkPragmaExpr.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Mask")
),
nnkPragma.newTree(
nnkExprColonExpr.newTree(
newIdentNode("size"),
nnkCall.newTree(
newIdentNode("sizeof"),
newIdentNode("uint16")
)
)
)
),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("set"),
newIdentNode("Flags")
)
)
),
nnkProcDef.newTree(
newIdentNode("check"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("flags"),
newIdentNode("Mask"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("flags")
)
)
),
nnkCommand.newTree(
newIdentNode("check"),
nnkCurly.newTree(
newIdentNode("A"),
newIdentNode("B")
)
)
)
1.0.10 👎 FAIL
Output
Error: Command failed: nim cpp --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
/usr/bin/ld: /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o: in function `check__UKHWBr5jprrq1q9bYXgsRnQ(unsigned short)':
@mtemp.nim.cpp:(.text+0x159): undefined reference to `dollar___H7tBK6vUybcjPkezQwEk3g(unsigned short)'
/usr/bin/ld: /home/runner/work/Nim/Nim/temp: hidden symbol `_Z31dollar___H7tBK6vUybcjPkezQwEk3gt' isn't defined
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: 'g++ -o /home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/stdlib_dollars.nim.cpp.o /home/runner/work/Nim/Nim/stdlib_io.nim.cpp.o /home/runner/work/Nim/Nim/stdlib_system.nim.cpp.o /home/runner/work/Nim/Nim/@mtemp.nim.cpp.o -ldl'
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, file) \
FR_.line = n; FR_.filename = file;
struct NimStringDesc;
struct TGenericSeq;
struct TNimType;
struct TNimNode;
typedef NU16 tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc : public TGenericSeq {
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw;
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
N_LIB_PRIVATE N_NIMCALL(void, check__UKHWBr5jprrq1q9bYXgsRnQ)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw flags);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___H7tBK6vUybcjPkezQwEk3g)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw x);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** 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);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
TNimType NTI__kEF5c4A3mE0Q9aypt5hX8aw_;
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_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) { nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(void, nimFrame)(TFrame* s) { NI T1_;
T1_ = (NI)0;
{
if (!(framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
{ T1_ = ((NI) 0);
} }
goto LA2_;
LA4_: ;
{
T1_ = ((NI) ((NI16)((*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
}
LA2_: ;
(*s).calldepth = ((NI16) (T1_));
(*s).prev = framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = s;
{
if (!((*s).calldepth == ((NI16) (((NI) 2000))))) goto LA9_;
{ callDepthLimitReached__mMRdr4sgmnykA9aWeM9aDZlw();
} }
LA9_: ;
}
static N_INLINE(void, popFrame)(void) { framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}
N_LIB_PRIVATE N_NIMCALL(void, check__UKHWBr5jprrq1q9bYXgsRnQ)(tySet_tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw flags) { tyArray__nHXaesL0DJZHyVS07ARPRA T1_;
nimfr_("check", "/home/runner/work/Nim/Nim/temp.nim");
nimZeroMem((void*)T1_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
T1_[0] = dollar___H7tBK6vUybcjPkezQwEk3g(flags);
echoBinSafe(T1_, 1);
popFrame();
}
static N_INLINE(void, initStackBottomWith)(void* locals) { nimGC_setStackBottom(locals);
}
void PreMainInner(void) {
}
int cmdCount;
char** cmdLine;
char** gEnv;
void PreMain(void) {
void (*volatile inner)(void);
inner = PreMainInner;
systemDatInit000();
initStackBottomWith((void *)&inner);
systemInit000();
tempDatInit000();
(*inner)();
}
N_CDECL(void, NimMainInner)(void) {
NimMainModule();
}
N_CDECL(void, NimMain)(void) {
void (*volatile inner)(void);
PreMain();
inner = NimMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
int main(int argc, char** args, char** env) {
cmdLine = args;
cmdCount = argc;
gEnv = env;
NimMain();
return nim_program_result;
}
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
nimfr_("temp", "/home/runner/work/Nim/Nim/temp.nim");
check__UKHWBr5jprrq1q9bYXgsRnQ(3);
popFrame();
}
}
N_LIB_PRIVATE N_NIMCALL(void, tempDatInit000)(void) {
static TNimNode* TM__SRd76hP9cMfCzdUO857UhQQ_2_2[2];
NI TM__SRd76hP9cMfCzdUO857UhQQ_4;
static char* NIM_CONST TM__SRd76hP9cMfCzdUO857UhQQ_3[2] = {
"A",
"B"};
static TNimNode TM__SRd76hP9cMfCzdUO857UhQQ_0[3];
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.size = sizeof(tyEnum_Flags__kEF5c4A3mE0Q9aypt5hX8aw);
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.kind = 14;
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.base = 0;
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.flags = 3;
for (TM__SRd76hP9cMfCzdUO857UhQQ_4 = 0; TM__SRd76hP9cMfCzdUO857UhQQ_4 < 2; TM__SRd76hP9cMfCzdUO857UhQQ_4++) {
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].kind = 1;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].offset = TM__SRd76hP9cMfCzdUO857UhQQ_4;
TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0].name = TM__SRd76hP9cMfCzdUO857UhQQ_3[TM__SRd76hP9cMfCzdUO857UhQQ_4];
TM__SRd76hP9cMfCzdUO857UhQQ_2_2[TM__SRd76hP9cMfCzdUO857UhQQ_4] = &TM__SRd76hP9cMfCzdUO857UhQQ_0[TM__SRd76hP9cMfCzdUO857UhQQ_4+0];
}
TM__SRd76hP9cMfCzdUO857UhQQ_0[2].len = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].kind = 2; TM__SRd76hP9cMfCzdUO857UhQQ_0[2].sons = &TM__SRd76hP9cMfCzdUO857UhQQ_2_2[0];
NTI__kEF5c4A3mE0Q9aypt5hX8aw_.node = &TM__SRd76hP9cMfCzdUO857UhQQ_0[2];
}
Stats
- Started
2024-06-07T13:55:10
- Finished
2024-06-07T13:55:10
- Duration
AST
nnkStmtList.newTree(
nnkTypeSection.newTree(
nnkTypeDef.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Flags")
),
newEmptyNode(),
nnkEnumTy.newTree(
newEmptyNode(),
newIdentNode("A"),
newIdentNode("B")
)
),
nnkTypeDef.newTree(
nnkPragmaExpr.newTree(
nnkPostfix.newTree(
newIdentNode("*"),
newIdentNode("Mask")
),
nnkPragma.newTree(
nnkExprColonExpr.newTree(
newIdentNode("size"),
nnkCall.newTree(
newIdentNode("sizeof"),
newIdentNode("uint16")
)
)
)
),
newEmptyNode(),
nnkBracketExpr.newTree(
newIdentNode("set"),
newIdentNode("Flags")
)
)
),
nnkProcDef.newTree(
newIdentNode("check"),
newEmptyNode(),
newEmptyNode(),
nnkFormalParams.newTree(
newEmptyNode(),
nnkIdentDefs.newTree(
newIdentNode("flags"),
newIdentNode("Mask"),
newEmptyNode()
)
),
newEmptyNode(),
newEmptyNode(),
nnkStmtList.newTree(
nnkCommand.newTree(
newIdentNode("echo"),
newIdentNode("flags")
)
)
),
nnkCommand.newTree(
newIdentNode("check"),
nnkCurly.newTree(
newIdentNode("A"),
newIdentNode("B")
)
)
)
Stats
- GCC
11.4.0
- Clang
14.0.0
- NodeJS
20.3
- Created
2024-06-07T13:54:25Z
- Comments
1
- Commands
nim cpp --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 22 minutes
bisecting 8
commits at 0
commits per second
from nim.
Looks like it never really worked properly in cpp (?). 🤔
from nim.
Maybe @jmgomez has any hint(?). 🙂
from nim.
Related Issues (20)
- Invalid type in `nkWhenStmt` HOT 8
- sha2 sha3 dead links in docs
- .uint8 compile-time error
- cannot return `lent` expression from conditionals like `case` HOT 2
- Size/Signedness issues with unordered enums HOT 3
- uint8 > 8 bit at compile-time
- bindUnix loses the last character on OpenBSD HOT 1
- Delayed import with forward declared procedure does not create valid C HOT 1
- `xu.p.data[i] = default(T)` doesnt produce any cgen code in `importcpp` types
- `Error: internal error: getTypeDescAux(tyUntyped)` on ambiguous table literal HOT 2
- distinct borrow of generics + template in type section + macro type inference issue HOT 2
- compiling 32bit nim failed HOT 1
- Memory corruption with `lent` and ORC HOT 3
- `SIGSEGV` with `lent` and ORC
- Very basic code fails from generic alias replacing concrete typedesc argument HOT 2
- Recent codegen bug passing pointer expressions to inline iterators HOT 8
- nim devel branch ./build_all.sh fails to compile `md5.nim` HOT 6
- Suboptimal for-loop transformation in regards to closure iters
- SIGSEGV: Object with pure enum in proc HOT 3
- Parameter not matched in template following symchoice changes HOT 13
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.