-
-
Save Yardanico/6fd4623d5e8853735dfa79ddb7f9b516 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Generated by CIL v. 1.7.8 */ | |
/* print_CIL_Input is true */ | |
typedef unsigned long size_t; | |
typedef long __int64_t; | |
typedef unsigned long __uint64_t; | |
typedef long __off_t; | |
typedef long __off64_t; | |
typedef __int64_t int64_t; | |
typedef __uint64_t uint64_t; | |
typedef int64_t NI64; | |
typedef uint64_t NU64; | |
typedef NI64 NI; | |
typedef NU64 NU; | |
typedef char NIM_CHAR; | |
typedef char *NCSTRING; | |
typedef __builtin_va_list __gnuc_va_list; | |
struct _IO_FILE ; | |
typedef struct _IO_FILE FILE; | |
struct _IO_marker ; | |
struct _IO_codecvt ; | |
struct _IO_wide_data ; | |
typedef void _IO_lock_t; | |
struct _IO_FILE { | |
int _flags ; | |
char *_IO_read_ptr ; | |
char *_IO_read_end ; | |
char *_IO_read_base ; | |
char *_IO_write_base ; | |
char *_IO_write_ptr ; | |
char *_IO_write_end ; | |
char *_IO_buf_base ; | |
char *_IO_buf_end ; | |
char *_IO_save_base ; | |
char *_IO_backup_base ; | |
char *_IO_save_end ; | |
struct _IO_marker *_markers ; | |
struct _IO_FILE *_chain ; | |
int _fileno ; | |
int _flags2 ; | |
__off_t _old_offset ; | |
unsigned short _cur_column ; | |
signed char _vtable_offset ; | |
char _shortbuf[1] ; | |
_IO_lock_t *_lock ; | |
__off64_t _offset ; | |
struct _IO_codecvt *_codecvt ; | |
struct _IO_wide_data *_wide_data ; | |
struct _IO_FILE *_freeres_list ; | |
void *_freeres_buf ; | |
size_t __pad5 ; | |
int _mode ; | |
char _unused2[(15UL * sizeof(int ) - 4UL * sizeof(void *)) - sizeof(size_t )] ; | |
}; | |
struct NimStrPayload ; | |
typedef struct NimStrPayload NimStrPayload; | |
struct NimStringV2 ; | |
typedef struct NimStringV2 NimStringV2; | |
struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw ; | |
typedef struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw; | |
struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA ; | |
typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA; | |
struct Exception ; | |
typedef struct Exception Exception; | |
struct RootObj ; | |
typedef struct RootObj RootObj; | |
struct TNimTypeV2 ; | |
typedef struct TNimTypeV2 TNimTypeV2; | |
struct tySequence__uB9b75OUPRENsBAu4AnoePA ; | |
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA; | |
struct tySequence__uB9b75OUPRENsBAu4AnoePA_Content ; | |
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA_Content tySequence__uB9b75OUPRENsBAu4AnoePA_Content; | |
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA ; | |
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA; | |
struct NimStrPayload { | |
NI cap ; | |
NIM_CHAR data[] ; | |
}; | |
struct NimStringV2 { | |
NI len ; | |
NimStrPayload *p ; | |
}; | |
struct TNimTypeV2 { | |
void *destructor ; | |
NI size ; | |
NI align ; | |
NCSTRING name ; | |
void *traceImpl ; | |
void *disposeImpl ; | |
void *typeInfoV1 ; | |
}; | |
struct RootObj { | |
TNimTypeV2 *m_type ; | |
}; | |
struct tySequence__uB9b75OUPRENsBAu4AnoePA { | |
NI len ; | |
tySequence__uB9b75OUPRENsBAu4AnoePA_Content *p ; | |
}; | |
struct Exception { | |
RootObj Sup ; | |
Exception *parent ; | |
NCSTRING name ; | |
NimStringV2 message ; | |
tySequence__uB9b75OUPRENsBAu4AnoePA trace ; | |
Exception *up ; | |
}; | |
struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA { | |
Exception Sup ; | |
}; | |
struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw { | |
tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup ; | |
}; | |
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA { | |
NCSTRING procname ; | |
NI line ; | |
NCSTRING filename ; | |
}; | |
struct tySequence__uB9b75OUPRENsBAu4AnoePA_Content { | |
NI cap ; | |
tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[] ; | |
}; | |
struct __anonstruct_TM__MnCJ0VAmeZ9aTATUB39cx60Q_2_60456539 { | |
NI cap ; | |
NIM_CHAR data[8] ; | |
}; | |
struct __anonstruct_TM__MnCJ0VAmeZ9aTATUB39cx60Q_4_60456540 { | |
NI cap ; | |
NIM_CHAR data[3] ; | |
}; | |
struct __anonstruct_TM__MnCJ0VAmeZ9aTATUB39cx60Q_6_60456541 { | |
NI cap ; | |
NIM_CHAR data[2] ; | |
}; | |
typedef long ptrdiff_t; | |
typedef unsigned char __uint8_t; | |
typedef short __int16_t; | |
typedef unsigned short __uint16_t; | |
typedef __int16_t int16_t; | |
typedef __uint8_t uint8_t; | |
typedef __uint16_t uint16_t; | |
typedef int16_t NI16; | |
typedef uint8_t NU8; | |
typedef uint16_t NU16; | |
struct TFrame_ ; | |
typedef struct TFrame_ TFrame; | |
struct TFrame_ { | |
TFrame *prev ; | |
NCSTRING procname ; | |
NI line ; | |
NCSTRING filename ; | |
NI16 len ; | |
NI16 calldepth ; | |
NI frameMsgLen ; | |
}; | |
typedef void (*__sighandler_t)(int ); | |
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w ; | |
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w; | |
struct tyTuple__0F3Kz25HWtRatQmCDVHWEA ; | |
typedef struct tyTuple__0F3Kz25HWtRatQmCDVHWEA tyTuple__0F3Kz25HWtRatQmCDVHWEA; | |
struct TSafePoint ; | |
typedef struct TSafePoint TSafePoint; | |
struct GcFrameHeader ; | |
typedef struct GcFrameHeader GcFrameHeader; | |
struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A ; | |
typedef struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A; | |
struct tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ ; | |
typedef struct tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ; | |
struct tyObject_NimSeqV2__A9aaPj3Ay2mWlTU3QheYz2w ; | |
typedef struct tyObject_NimSeqV2__A9aaPj3Ay2mWlTU3QheYz2w tyObject_NimSeqV2__A9aaPj3Ay2mWlTU3QheYz2w; | |
struct tyObject_NimSeqPayload__T3NJfV3Yh9bN9cuVRNI5QtfQ ; | |
typedef struct tyObject_NimSeqPayload__T3NJfV3Yh9bN9cuVRNI5QtfQ tyObject_NimSeqPayload__T3NJfV3Yh9bN9cuVRNI5QtfQ; | |
struct tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw ; | |
typedef struct tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw; | |
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w { | |
NI len ; | |
NI cap ; | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA *d ; | |
}; | |
struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A { | |
NI rc ; | |
NI rootIdx ; | |
}; | |
struct tyTuple__0F3Kz25HWtRatQmCDVHWEA { | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *Field0 ; | |
TNimTypeV2 *Field1 ; | |
}; | |
struct tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ { | |
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w traceStack ; | |
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w toFree ; | |
NI freed ; | |
NI touched ; | |
NI edges ; | |
NI rcSum ; | |
_Bool keepThreshold ; | |
}; | |
struct tyObject_NimSeqV2__A9aaPj3Ay2mWlTU3QheYz2w { | |
NI len ; | |
tyObject_NimSeqPayload__T3NJfV3Yh9bN9cuVRNI5QtfQ *p ; | |
}; | |
struct tyObject_NimSeqPayload__T3NJfV3Yh9bN9cuVRNI5QtfQ { | |
NI cap ; | |
tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[] ; | |
}; | |
struct tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw { | |
NI cap ; | |
}; | |
typedef NIM_CHAR tyArray__gpc2RrLEcWgv7ONpLYNHOw[2001]; | |
struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_60456539 { | |
NI cap ; | |
NIM_CHAR data[201] ; | |
}; | |
struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_7_60456540 { | |
NI cap ; | |
NIM_CHAR data[18] ; | |
}; | |
struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_9_60456541 { | |
NI cap ; | |
NIM_CHAR data[4] ; | |
}; | |
struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_11_60456542 { | |
NI cap ; | |
NIM_CHAR data[2] ; | |
}; | |
struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_13_60456543 { | |
NI cap ; | |
NIM_CHAR data[3] ; | |
}; | |
struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_15_60456544 { | |
NI cap ; | |
NIM_CHAR data[2] ; | |
}; | |
struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_17_60456545 { | |
NI cap ; | |
NIM_CHAR data[2] ; | |
}; | |
struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_19_60456546 { | |
NI cap ; | |
NIM_CHAR data[2] ; | |
}; | |
struct __anonstruct_TM__xLHv575t3PG1lB5wK05Xqg_3_60456539 { | |
NI cap ; | |
NIM_CHAR data[21] ; | |
}; | |
/* compiler builtin: | |
long __builtin_expect(long , long ) ; */ | |
#pragma merger("0","/tmp/cil-W0ANBGum.i","-w,-fmax-errors=3,-O3,-fno-strict-aliasing,-fno-ident") | |
#pragma GCC diagnostic ignored "-Wpragmas" | |
#pragma GCC diagnostic ignored "-Wwritable-strings" | |
#pragma GCC diagnostic ignored "-Winvalid-noreturn" | |
#pragma GCC diagnostic ignored "-Wformat" | |
#pragma GCC diagnostic ignored "-Wlogical-not-parentheses" | |
#pragma GCC diagnostic ignored "-Wlogical-op-parentheses" | |
#pragma GCC diagnostic ignored "-Wshadow" | |
#pragma GCC diagnostic ignored "-Wunused-function" | |
#pragma GCC diagnostic ignored "-Wunused-variable" | |
#pragma GCC diagnostic ignored "-Winvalid-offsetof" | |
#pragma GCC diagnostic ignored "-Wtautological-compare" | |
#pragma GCC diagnostic ignored "-Wswitch-bool" | |
#pragma GCC diagnostic ignored "-Wmacro-redefined" | |
#pragma GCC diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers" | |
#pragma GCC diagnostic ignored "-Wpointer-bool-conversion" | |
#pragma GCC diagnostic ignored "-Wconstant-conversion" | |
extern FILE *stdin ; | |
extern FILE *stdout ; | |
extern int fflush(FILE *__stream ) ; | |
extern int vfprintf(FILE * __restrict __s , char const * __restrict __format , | |
__gnuc_va_list __arg ) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) vprintf)(char const * __restrict __fmt , | |
__gnuc_va_list __arg ) ; | |
extern int getc(FILE *__stream ) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) getchar)(void) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) getc_unlocked)(FILE *__fp ) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) getchar_unlocked)(void) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) fgetc_unlocked)(FILE *__fp ) ; | |
extern int putc(int __c , FILE *__stream ) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) putchar)(int __c ) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) fputc_unlocked)(int __c , FILE *__stream ) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) putc_unlocked)(int __c , FILE *__stream ) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) putchar_unlocked)(int __c ) ; | |
extern size_t fwrite(void const * __restrict __ptr , size_t __size , size_t __n , | |
FILE * __restrict __s ) ; | |
extern __attribute__((__nothrow__)) void ( __attribute__((__leaf__)) clearerr)(FILE *__stream ) ; | |
extern __attribute__((__nothrow__)) int ( __attribute__((__leaf__)) ferror)(FILE *__stream ) ; | |
__inline extern __attribute__((__nothrow__)) int ( __attribute__((__leaf__, __gnu_inline__)) feof_unlocked)(FILE *__stream ) ; | |
__inline extern __attribute__((__nothrow__)) int ( __attribute__((__leaf__, __gnu_inline__)) ferror_unlocked)(FILE *__stream ) ; | |
extern __attribute__((__nothrow__)) void ( __attribute__((__leaf__)) flockfile)(FILE *__stream ) ; | |
extern __attribute__((__nothrow__)) void ( __attribute__((__leaf__)) funlockfile)(FILE *__stream ) ; | |
extern int __uflow(FILE * ) ; | |
extern int __overflow(FILE * , int ) ; | |
__inline extern int ( __attribute__((__gnu_inline__)) vprintf)(char const * __restrict __fmt , | |
__gnuc_va_list __arg ) | |
{ | |
int tmp ; | |
{ | |
tmp = vfprintf((FILE * __restrict )stdout, __fmt, __arg); | |
return (tmp); | |
} | |
} | |
__inline extern int ( __attribute__((__gnu_inline__)) getchar)(void) | |
{ | |
int tmp ; | |
{ | |
tmp = getc(stdin); | |
return (tmp); | |
} | |
} | |
__inline extern int ( __attribute__((__gnu_inline__)) fgetc_unlocked)(FILE *__fp ) | |
{ | |
int tmp___0 ; | |
char *tmp___1 ; | |
int tmp___2 ; | |
long tmp___3 ; | |
{ | |
tmp___3 = __builtin_expect((long )((unsigned long )__fp->_IO_read_ptr >= (unsigned long )__fp->_IO_read_end), | |
0L); | |
if (tmp___3) { | |
tmp___0 = __uflow(__fp); | |
tmp___2 = tmp___0; | |
} else { | |
tmp___1 = __fp->_IO_read_ptr; | |
(__fp->_IO_read_ptr) ++; | |
tmp___2 = (int )*((unsigned char *)tmp___1); | |
} | |
return (tmp___2); | |
} | |
} | |
__inline extern int ( __attribute__((__gnu_inline__)) getchar_unlocked)(void) | |
{ | |
int tmp___0 ; | |
char *tmp___1 ; | |
int tmp___2 ; | |
long tmp___3 ; | |
{ | |
tmp___3 = __builtin_expect((long )((unsigned long )stdin->_IO_read_ptr >= (unsigned long )stdin->_IO_read_end), | |
0L); | |
if (tmp___3) { | |
tmp___0 = __uflow(stdin); | |
tmp___2 = tmp___0; | |
} else { | |
tmp___1 = stdin->_IO_read_ptr; | |
(stdin->_IO_read_ptr) ++; | |
tmp___2 = (int )*((unsigned char *)tmp___1); | |
} | |
return (tmp___2); | |
} | |
} | |
__inline extern int ( __attribute__((__gnu_inline__)) putchar)(int __c ) | |
{ | |
int tmp ; | |
{ | |
tmp = putc(__c, stdout); | |
return (tmp); | |
} | |
} | |
__inline extern int ( __attribute__((__gnu_inline__)) fputc_unlocked)(int __c , FILE *__stream ) | |
{ | |
int tmp___0 ; | |
char *tmp___1 ; | |
char tmp___2 ; | |
int tmp___3 ; | |
long tmp___4 ; | |
{ | |
tmp___4 = __builtin_expect((long )((unsigned long )__stream->_IO_write_ptr >= (unsigned long )__stream->_IO_write_end), | |
0L); | |
if (tmp___4) { | |
tmp___0 = __overflow(__stream, (int )((unsigned char )__c)); | |
tmp___3 = tmp___0; | |
} else { | |
tmp___1 = __stream->_IO_write_ptr; | |
(__stream->_IO_write_ptr) ++; | |
tmp___2 = (char )__c; | |
*tmp___1 = tmp___2; | |
tmp___3 = (int )((unsigned char )tmp___2); | |
} | |
return (tmp___3); | |
} | |
} | |
__inline extern int ( __attribute__((__gnu_inline__)) putchar_unlocked)(int __c ) | |
{ | |
int tmp___0 ; | |
char *tmp___1 ; | |
char tmp___2 ; | |
int tmp___3 ; | |
long tmp___4 ; | |
{ | |
tmp___4 = __builtin_expect((long )((unsigned long )stdout->_IO_write_ptr >= (unsigned long )stdout->_IO_write_end), | |
0L); | |
if (tmp___4) { | |
tmp___0 = __overflow(stdout, (int )((unsigned char )__c)); | |
tmp___3 = tmp___0; | |
} else { | |
tmp___1 = stdout->_IO_write_ptr; | |
(stdout->_IO_write_ptr) ++; | |
tmp___2 = (char )__c; | |
*tmp___1 = tmp___2; | |
tmp___3 = (int )((unsigned char )tmp___2); | |
} | |
return (tmp___3); | |
} | |
} | |
__inline extern __attribute__((__nothrow__)) int ( __attribute__((__leaf__, __gnu_inline__)) feof_unlocked)(FILE *__stream ) ; | |
__inline extern int ( __attribute__((__leaf__, __gnu_inline__)) feof_unlocked)(FILE *__stream ) | |
{ | |
{ | |
return ((__stream->_flags & 16) != 0); | |
} | |
} | |
__inline extern __attribute__((__nothrow__)) int ( __attribute__((__leaf__, __gnu_inline__)) ferror_unlocked)(FILE *__stream ) ; | |
__inline extern int ( __attribute__((__leaf__, __gnu_inline__)) ferror_unlocked)(FILE *__stream ) | |
{ | |
{ | |
return ((__stream->_flags & 32) != 0); | |
} | |
} | |
extern __attribute__((__nothrow__)) void *( __attribute__((__nonnull__(1,2), __leaf__)) memcpy)(void * __restrict __dest , | |
void const * __restrict __src , | |
size_t __n ) ; | |
extern __attribute__((__nothrow__)) char *( __attribute__((__leaf__)) strerror)(int __errnum ) ; | |
extern __attribute__((__nothrow__)) int *( __attribute__((__leaf__)) __errno_location)(void) __attribute__((__const__)) ; | |
__inline static NCSTRING nimToCStringConv(NimStringV2 s ) ; | |
void checkErr__fU6ZlJAtQ9bre04EDZLdGsA(FILE *f ) ; | |
__inline static void appendString(NimStringV2 *dest , NimStringV2 src ) ; | |
__inline static void copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(void *dest , void *source , | |
NI size ) ; | |
__inline static void nimCopyMem(void *dest , void *source , NI size ) ; | |
NimStringV2 nimIntToStr(NI x ) ; | |
NimStringV2 cstrToNimstr(NCSTRING str ) ; | |
NimStringV2 rawNewString(NI space ) ; | |
void ( __attribute__((__noinline__)) raiseEIO__ZYk14k3sVNZUIjJjtqzFZQ)(NimStringV2 msg ) ; | |
void *nimNewObj(NI size , NI alignment ) ; | |
void raiseExceptionEx(Exception *e , NCSTRING ename , NCSTRING procname , NCSTRING filename , | |
NI line ) ; | |
void eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(NimStringV2 *dest ) ; | |
__inline static _Bool *nimErrorFlag(void) ; | |
static struct __anonstruct_TM__MnCJ0VAmeZ9aTATUB39cx60Q_2_60456539 const TM__MnCJ0VAmeZ9aTATUB39cx60Q_2 = {(NI )(7UL | (1UL << 62)), | |
{(NIM_CHAR )'e', (NIM_CHAR )'r', (NIM_CHAR )'r', (NIM_CHAR )'n', (NIM_CHAR )'o', | |
(NIM_CHAR )':', (NIM_CHAR )' ', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__MnCJ0VAmeZ9aTATUB39cx60Q_3 = {(NI )7, (NimStrPayload *)(& TM__MnCJ0VAmeZ9aTATUB39cx60Q_2)}; | |
static struct __anonstruct_TM__MnCJ0VAmeZ9aTATUB39cx60Q_4_60456540 const TM__MnCJ0VAmeZ9aTATUB39cx60Q_4 = {(NI )(2UL | (1UL << 62)), | |
{(NIM_CHAR )' ', (NIM_CHAR )'`', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__MnCJ0VAmeZ9aTATUB39cx60Q_5 = {(NI )2, (NimStrPayload *)(& TM__MnCJ0VAmeZ9aTATUB39cx60Q_4)}; | |
static struct __anonstruct_TM__MnCJ0VAmeZ9aTATUB39cx60Q_6_60456541 const TM__MnCJ0VAmeZ9aTATUB39cx60Q_6 = {(NI )(1UL | (1UL << 62)), | |
{(NIM_CHAR )'`', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__MnCJ0VAmeZ9aTATUB39cx60Q_7 = {(NI )1, (NimStrPayload *)(& TM__MnCJ0VAmeZ9aTATUB39cx60Q_6)}; | |
TNimTypeV2 NTIv2__iLZrPn9anoh9ad1MmO0RczFw_ ; | |
_Bool nimInErrorMode__759bT87luu8XGcbkw13FUjA ; | |
__inline static NCSTRING nimToCStringConv(NimStringV2 s ) | |
{ | |
NCSTRING result ; | |
{ | |
result = (NCSTRING )0; | |
if (! (s.len == 0L)) { | |
goto LA3_; | |
} | |
result = (NCSTRING )""; | |
goto LA1_; | |
LA3_: | |
result = (s.p)->data; | |
LA1_: ; | |
return (result); | |
} | |
} | |
__inline static void nimCopyMem(void *dest , void *source , NI size ) | |
{ | |
void *T1_ ; | |
{ | |
T1_ = (void *)0; | |
T1_ = memcpy((void * __restrict )dest, (void const * __restrict )source, (size_t )size); | |
return; | |
} | |
} | |
__inline static void copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(void *dest , void *source , | |
NI size ) | |
{ | |
{ | |
nimCopyMem(dest, source, size); | |
return; | |
} | |
} | |
__inline static void appendString(NimStringV2 *dest , NimStringV2 src ) | |
{ | |
void *T5_ ; | |
void *T6_ ; | |
{ | |
if (! (0L < src.len)) { | |
goto LA3_; | |
} | |
T5_ = (void *)0; | |
T5_ = (void *)(& (dest->p)->data[dest->len]); | |
T6_ = (void *)0; | |
T6_ = (void *)(& (src.p)->data[(NI )0]); | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T5_, T6_, src.len + 1L); | |
dest->len += src.len; | |
LA3_: ; | |
return; | |
} | |
} | |
__inline static _Bool *nimErrorFlag(void) | |
{ | |
_Bool *result ; | |
{ | |
result = (_Bool *)0; | |
result = & nimInErrorMode__759bT87luu8XGcbkw13FUjA; | |
return (result); | |
} | |
} | |
void ( __attribute__((__noinline__)) raiseEIO__ZYk14k3sVNZUIjJjtqzFZQ)(NimStringV2 msg ) | |
{ | |
tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *T2_ ; | |
NimStringV2 blitTmp ; | |
_Bool *nimErr_ ; | |
void *tmp ; | |
long tmp___0 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
T2_ = (tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *)0; | |
tmp = nimNewObj((NI )sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw ), (NI )__alignof__(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw )); | |
T2_ = (tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *)tmp; | |
T2_->Sup.Sup.Sup.m_type = & NTIv2__iLZrPn9anoh9ad1MmO0RczFw_; | |
T2_->Sup.Sup.name = (NCSTRING )"IOError"; | |
blitTmp = msg; | |
msg.len = (NI )0; | |
msg.p = (NimStrPayload *)((void *)0); | |
T2_->Sup.Sup.message = blitTmp; | |
T2_->Sup.Sup.parent = (Exception *)((void *)0); | |
raiseExceptionEx((Exception *)T2_, (NCSTRING )"IOError", (NCSTRING )"raiseEIO", | |
(NCSTRING )"io.nim", (NI )139); | |
goto LA1_; | |
LA1_: | |
eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(& msg); | |
tmp___0 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___0) { | |
} | |
return; | |
} | |
} | |
void checkErr__fU6ZlJAtQ9bre04EDZLdGsA(FILE *f ) | |
{ | |
_Bool *nimErr_ ; | |
int T3_ ; | |
NimStringV2 msg ; | |
NimStringV2 colontmpD_ ; | |
NimStringV2 colontmpD__2 ; | |
NimStringV2 T7_ ; | |
NCSTRING T8_ ; | |
NimStringV2 blitTmp ; | |
int *tmp ; | |
int *tmp___0 ; | |
long tmp___1 ; | |
long tmp___2 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
T3_ = 0; | |
T3_ = ferror(f); | |
if (! (! (T3_ == 0))) { | |
goto LA4_; | |
} | |
msg.len = (NI )0; | |
msg.p = (NimStrPayload *)((void *)0); | |
colontmpD_.len = (NI )0; | |
colontmpD_.p = (NimStrPayload *)((void *)0); | |
colontmpD__2.len = (NI )0; | |
colontmpD__2.p = (NimStrPayload *)((void *)0); | |
T7_.len = (NI )0; | |
T7_.p = (NimStrPayload *)((void *)0); | |
tmp = __errno_location(); | |
colontmpD_ = nimIntToStr((NI )*tmp); | |
T8_ = (NCSTRING )0; | |
tmp___0 = __errno_location(); | |
T8_ = strerror(*tmp___0); | |
colontmpD__2 = cstrToNimstr(T8_); | |
T7_ = rawNewString((colontmpD_.len + colontmpD__2.len) + 10L); | |
appendString(& T7_, (NimStringV2 )TM__MnCJ0VAmeZ9aTATUB39cx60Q_3); | |
appendString(& T7_, colontmpD_); | |
appendString(& T7_, (NimStringV2 )TM__MnCJ0VAmeZ9aTATUB39cx60Q_5); | |
appendString(& T7_, colontmpD__2); | |
appendString(& T7_, (NimStringV2 )TM__MnCJ0VAmeZ9aTATUB39cx60Q_7); | |
msg = T7_; | |
clearerr(f); | |
blitTmp = msg; | |
msg.len = (NI )0; | |
msg.p = (NimStrPayload *)((void *)0); | |
raiseEIO__ZYk14k3sVNZUIjJjtqzFZQ(blitTmp); | |
tmp___1 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___1) { | |
} | |
eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(& colontmpD__2); | |
eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(& colontmpD_); | |
eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(& msg); | |
tmp___2 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___2) { | |
goto BeforeRet_; | |
} | |
LA4_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void echoBinSafe(NimStringV2 *args , NI argsLen_0 ) | |
{ | |
_Bool *nimErr_ ; | |
NimStringV2 *s ; | |
NI i ; | |
void *T7_ ; | |
int T8_ ; | |
NCSTRING tmp ; | |
size_t tmp___0 ; | |
long tmp___1 ; | |
int T13_ ; | |
size_t tmp___2 ; | |
long tmp___3 ; | |
int T18_ ; | |
long tmp___4 ; | |
long tmp___5 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
flockfile(stdout); | |
s = (NimStringV2 *)0; | |
i = (NI )0; | |
while (1) { | |
if (! (i < argsLen_0)) { | |
goto LA4; | |
} | |
s = args + i; | |
T7_ = (void *)0; | |
tmp = nimToCStringConv(*s); | |
T7_ = (void *)tmp; | |
T8_ = 0; | |
tmp___0 = fwrite((void const * __restrict )T7_, (size_t )s->len, (size_t )1, | |
(FILE * __restrict )stdout); | |
T8_ = (int )tmp___0; | |
if (! (! ((NI )T8_ == s->len))) { | |
goto LA9_; | |
} | |
checkErr__fU6ZlJAtQ9bre04EDZLdGsA(stdout); | |
tmp___1 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___1) { | |
goto LA1_; | |
} | |
LA9_: | |
i ++; | |
} | |
LA4: | |
T13_ = 0; | |
tmp___2 = fwrite((void const * __restrict )((void *)"\n"), (size_t )1, (size_t )1, | |
(FILE * __restrict )stdout); | |
T13_ = (int )tmp___2; | |
if (! (! (T13_ == 1))) { | |
goto LA14_; | |
} | |
checkErr__fU6ZlJAtQ9bre04EDZLdGsA(stdout); | |
tmp___3 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___3) { | |
goto LA1_; | |
} | |
LA14_: | |
T18_ = 0; | |
T18_ = fflush(stdout); | |
if (! (! (T18_ == 0))) { | |
goto LA19_; | |
} | |
checkErr__fU6ZlJAtQ9bre04EDZLdGsA(stdout); | |
tmp___4 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___4) { | |
goto LA1_; | |
} | |
LA19_: ; | |
LA1_: | |
funlockfile(stdout); | |
tmp___5 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___5) { | |
} | |
return; | |
} | |
} | |
#pragma merger("0","/tmp/cil-0YjYf8EG.i","-w,-fmax-errors=3,-O3,-fno-strict-aliasing,-fno-ident") | |
#pragma GCC diagnostic ignored "-Wpragmas" | |
#pragma GCC diagnostic ignored "-Wwritable-strings" | |
#pragma GCC diagnostic ignored "-Winvalid-noreturn" | |
#pragma GCC diagnostic ignored "-Wformat" | |
#pragma GCC diagnostic ignored "-Wlogical-not-parentheses" | |
#pragma GCC diagnostic ignored "-Wlogical-op-parentheses" | |
#pragma GCC diagnostic ignored "-Wshadow" | |
#pragma GCC diagnostic ignored "-Wunused-function" | |
#pragma GCC diagnostic ignored "-Wunused-variable" | |
#pragma GCC diagnostic ignored "-Winvalid-offsetof" | |
#pragma GCC diagnostic ignored "-Wtautological-compare" | |
#pragma GCC diagnostic ignored "-Wswitch-bool" | |
#pragma GCC diagnostic ignored "-Wmacro-redefined" | |
#pragma GCC diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers" | |
#pragma GCC diagnostic ignored "-Wpointer-bool-conversion" | |
#pragma GCC diagnostic ignored "-Wconstant-conversion" | |
NI nim_program_result ; | |
extern __attribute__((__nothrow__)) void *( __attribute__((__nonnull__(1), __leaf__)) memset)(void *__s , | |
int __c , | |
size_t __n ) ; | |
extern __attribute__((__nothrow__)) size_t ( __attribute__((__nonnull__(1), __leaf__)) strlen)(char const *__s ) __attribute__((__pure__)) ; | |
__inline extern __attribute__((__nothrow__)) double ( __attribute__((__nonnull__(1), | |
__leaf__, __gnu_inline__)) atof)(char const *__nptr ) __attribute__((__pure__)) ; | |
__inline extern __attribute__((__nothrow__)) int ( __attribute__((__nonnull__(1), | |
__leaf__, __gnu_inline__)) atoi)(char const *__nptr ) __attribute__((__pure__)) ; | |
__inline extern __attribute__((__nothrow__)) long ( __attribute__((__nonnull__(1), | |
__leaf__, __gnu_inline__)) atol)(char const *__nptr ) __attribute__((__pure__)) ; | |
__inline extern __attribute__((__nothrow__)) long long ( __attribute__((__nonnull__(1), | |
__leaf__, __gnu_inline__)) atoll)(char const *__nptr ) __attribute__((__pure__)) ; | |
extern __attribute__((__nothrow__)) double ( __attribute__((__nonnull__(1), __leaf__)) strtod)(char const * __restrict __nptr , | |
char ** __restrict __endptr ) ; | |
extern __attribute__((__nothrow__)) long ( __attribute__((__nonnull__(1), __leaf__)) strtol)(char const * __restrict __nptr , | |
char ** __restrict __endptr , | |
int __base ) ; | |
extern __attribute__((__nothrow__)) long long ( __attribute__((__nonnull__(1), __leaf__)) strtoll)(char const * __restrict __nptr , | |
char ** __restrict __endptr , | |
int __base ) ; | |
__inline extern __attribute__((__nothrow__)) int ( __attribute__((__nonnull__(1), | |
__leaf__, __gnu_inline__)) atoi)(char const *__nptr ) __attribute__((__pure__)) ; | |
__inline extern int ( __attribute__((__nonnull__(1), __leaf__, __gnu_inline__)) atoi)(char const *__nptr ) | |
{ | |
long tmp ; | |
{ | |
tmp = strtol((char const * __restrict )__nptr, (char ** __restrict )((char **)((void *)0)), | |
10); | |
return ((int )tmp); | |
} | |
} | |
__inline extern __attribute__((__nothrow__)) long ( __attribute__((__nonnull__(1), | |
__leaf__, __gnu_inline__)) atol)(char const *__nptr ) __attribute__((__pure__)) ; | |
__inline extern long ( __attribute__((__nonnull__(1), __leaf__, __gnu_inline__)) atol)(char const *__nptr ) | |
{ | |
long tmp ; | |
{ | |
tmp = strtol((char const * __restrict )__nptr, (char ** __restrict )((char **)((void *)0)), | |
10); | |
return (tmp); | |
} | |
} | |
__inline extern __attribute__((__nothrow__)) long long ( __attribute__((__nonnull__(1), | |
__leaf__, __gnu_inline__)) atoll)(char const *__nptr ) __attribute__((__pure__)) ; | |
__inline extern long long ( __attribute__((__nonnull__(1), __leaf__, __gnu_inline__)) atoll)(char const *__nptr ) | |
{ | |
long long tmp ; | |
{ | |
tmp = strtoll((char const * __restrict )__nptr, (char ** __restrict )((char **)((void *)0)), | |
10); | |
return (tmp); | |
} | |
} | |
extern __attribute__((__nothrow__)) void *( __attribute__((__leaf__)) malloc)(size_t __size ) __attribute__((__malloc__, | |
__alloc_size__(1))) ; | |
extern __attribute__((__nothrow__)) void *( __attribute__((__leaf__)) calloc)(size_t __nmemb , | |
size_t __size ) __attribute__((__malloc__, | |
__alloc_size__(1,2))) ; | |
extern __attribute__((__nothrow__)) void *( __attribute__((__warn_unused_result__, | |
__leaf__)) realloc)(void *__ptr , size_t __size ) __attribute__((__alloc_size__(2))) ; | |
extern __attribute__((__nothrow__)) void ( __attribute__((__leaf__)) free)(void *__ptr ) ; | |
extern __attribute__((__nothrow__, __noreturn__)) void ( __attribute__((__leaf__)) exit)(int __status ) ; | |
__inline extern void *( __attribute__((__nonnull__(1,2,5), __gnu_inline__)) bsearch)(void const *__key , | |
void const *__base , | |
size_t __nmemb , | |
size_t __size , | |
int (*__compar)(void const * , | |
void const * ) ) ; | |
__inline extern void *( __attribute__((__nonnull__(1,2,5), __gnu_inline__)) bsearch)(void const *__key , | |
void const *__base , | |
size_t __nmemb , | |
size_t __size , | |
int (*__compar)(void const * , | |
void const * ) ) | |
{ | |
size_t __l ; | |
size_t __u ; | |
size_t __idx ; | |
void const *__p ; | |
int __comparison ; | |
{ | |
__l = (size_t )0; | |
__u = __nmemb; | |
while (__l < __u) { | |
__idx = (__l + __u) / 2UL; | |
__p = (void const *)((void *)((char const *)__base + __idx * __size)); | |
__comparison = (*__compar)(__key, __p); | |
if (__comparison < 0) { | |
__u = __idx; | |
} else | |
if (__comparison > 0) { | |
__l = __idx + 1UL; | |
} else { | |
return ((void *)__p); | |
} | |
} | |
return ((void *)0); | |
} | |
} | |
__inline extern __attribute__((__nothrow__)) double ( __attribute__((__nonnull__(1), | |
__leaf__, __gnu_inline__)) atof)(char const *__nptr ) __attribute__((__pure__)) ; | |
__inline extern double ( __attribute__((__nonnull__(1), __leaf__, __gnu_inline__)) atof)(char const *__nptr ) | |
{ | |
double tmp ; | |
{ | |
tmp = strtod((char const * __restrict )__nptr, (char ** __restrict )((char **)((void *)0))); | |
return (tmp); | |
} | |
} | |
extern FILE *stderr ; | |
extern __attribute__((__nothrow__)) __sighandler_t ( __attribute__((__leaf__)) signal)(int __sig , | |
void (*__handler)(int ) ) ; | |
extern __attribute__((__nothrow__)) int ( __attribute__((__leaf__)) raise)(int __sig ) ; | |
__inline static void initStackBottom(void) ; | |
void signalHandler(int sign ) ; | |
void showErrorMessage__T9b42zC1n39bfjypEaUpct0g(NCSTRING data , NI length ) ; | |
__inline static void nimZeroMem(void *p , NI size ) ; | |
__inline static void nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(void *a , int v , NI size ) ; | |
__inline static _Bool *nimErrorFlag(void) ; | |
NimStringV2 toNimStr(NCSTRING str , NI len ) ; | |
void *alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg(NI size ) ; | |
__inline static void copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(void *dest , void *source , | |
NI size ) ; | |
__inline static void nimCopyMem(void *dest , void *source , NI size ) ; | |
__inline static NI nimCStrLen(NCSTRING a ) ; | |
void dealloc(void *p ) ; | |
void deallocImpl__SAtZpVrJ3o5FJvSdLQe9auA(void *p ) ; | |
__inline static void popCurrentException(void) ; | |
void eqcopy___T4HCXq9b9bmRBkztIGW1WmXw(Exception **dest , Exception *src , _Bool cyclic ) ; | |
__inline static void nimIncRefCyclic(void *p , _Bool cyclic ) ; | |
__inline static NI minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem(NI x , NI y ) ; | |
__inline static _Bool nimDecRefIsLastCyclicDyn(void *p ) ; | |
void ( __attribute__((__noinline__)) rememberCycle__LoYD9cYK9aJvrcDizBN64qaQ)(_Bool isDestroyAction , | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc ) ; | |
void unregisterCycle__rR8fldvW9aUfvKydORzL1RA(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s ) ; | |
void registerCycle__W1emNvKsDKJ8tfxEiEnOvg(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc ) ; | |
void init__wKM37ZoL6WtPOU9bn6Ug18A(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w *s , | |
NI cap ) ; | |
void *allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2(NI size ) ; | |
__inline static void add__A2hu7ps9a7fQ6dTDoPajZ5gsystem(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w *s , | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *c , | |
TNimTypeV2 *t ) ; | |
void collectCycles__amVlU9ajqZ06ujoesRBHcDg(void) ; | |
void collectCyclesBacon__cKo5xgNSZEVlhzdcplUDNA(tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j , | |
NI lowMark ) ; | |
void markGray__t5JPtD1AT5y7bGV1vv4KJA(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) ; | |
__inline static void trace__Pgw8McKUNuhxTelmFLa61gsystem(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) ; | |
__inline static NI pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system(NI x , NI y ) ; | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA pop__9bpeBAtt9aCP5OFUArCn3DJg(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w *s ) ; | |
void scan__t5JPtD1AT5y7bGV1vv4KJA_2(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) ; | |
void scanBlack__t5JPtD1AT5y7bGV1vv4KJA_3(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) ; | |
void collectColor__kzUmIxtf9aW5aryQ9cs2r0vA(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , NI col , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) ; | |
__inline static void free__w63mdtqWwp9aJ3R0H3korhgsystem(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc ) ; | |
void nimRawDispose(void *p , NI alignment ) ; | |
NI align__vzThvqZajaR9ct9cQ7SOy1tQ(NI address , NI alignment ) ; | |
void alignedDealloc(void *p , NI align ) ; | |
void deinit__oft1PYVJXbZgUjpiFAeaqg(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w *s ) ; | |
void nimDestroyAndDispose(void *p ) ; | |
void writeToStdErr__7LQulNmLFN9auOCHBWBPKMw(NCSTRING msg , NI length ) ; | |
__inline static void rawWriteString(FILE *f , NCSTRING s , NI length ) ; | |
void registerSignalHandler__amVlU9ajqZ06ujoesRBHcDg_2(void) ; | |
void addInt__mftMOxbyu0h4yByfs3sqjA(NimStringV2 *result , NI64 x ) ; | |
NI ( __attribute__((__noinline__)) digits10__duY57oPUFW9aU9aeyQ9cREIjg)(NU64 num ) ; | |
void setLengthStrV2(NimStringV2 *s , NI newLen ) ; | |
void prepareAdd(NimStringV2 *s , NI addlen ) ; | |
__inline static NI resize__cOCDWr16YD4j3dBrbbH3yQsystem(NI old ) ; | |
void *realloc0Impl__CRabJkeE1THyovTYlxjdVw(void *p , NI oldSize , NI newSize ) ; | |
void *reallocImpl__aVKf1wTLXmon0P1kdfx69aw(void *p , NI newSize ) ; | |
__inline static void zeroMem__FsvhfMqbswETmyMWtamDewsystem(void *p , NI size ) ; | |
__inline static void nimPrepareStrMutationV2(NimStringV2 *s ) ; | |
void nimPrepareStrMutationImpl__C0YoABEefTaYbWLv9aVOzZA(NimStringV2 *s ) ; | |
void *alignedAlloc0__tDURxGxuLs0hKEDbtrBxug(NI size , NI align ) ; | |
void eqdestroy___SYSukaUCM8gzz0Sv57LsMA(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *dest ) ; | |
void eqdestroy___4fQQqvAqifkWGVa4g39cI5A(tySequence__uB9b75OUPRENsBAu4AnoePA *dest ) ; | |
void eqtrace___kt5U9cg2uLmsGJJLbv82xUA(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *dest , | |
void *env ) ; | |
__inline static void nimTraceRefDyn(void *q , void *env ) ; | |
void eqtrace___kDvIcrGphqE2lmGa3RNr5A(NimStringV2 *dest , void *env ) ; | |
void eqtrace___9cqRrToT354sdOysDOB1O2A(tySequence__uB9b75OUPRENsBAu4AnoePA *dest , | |
void *env ) ; | |
void eqdispose___SYSukaUCM8gzz0Sv57LsMA_2(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *dest ) ; | |
void eqdispose___dS1BF3Vxjg9aJMmmhVJKSpQ_2(NimStringV2 *dest ) ; | |
void eqdispose___4fQQqvAqifkWGVa4g39cI5A_2(tySequence__uB9b75OUPRENsBAu4AnoePA *dest ) ; | |
void add__VHIeeMfqavFfKtbV1Wal0Q(tySequence__uB9b75OUPRENsBAu4AnoePA *x , tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA value ) ; | |
void *prepareSeqAdd(NI len , void *p , NI addlen , NI elemSize , NI elemAlign ) ; | |
void *newSeqPayload(NI cap , NI elemSize , NI elemAlign ) ; | |
void *alignedRealloc0__RCSc9brnnLyF1fOxNrJWWwA(void *p , NI oldSize , NI newSize , | |
NI align ) ; | |
void *alignedAlloc__tDURxGxuLs0hKEDbtrBxug_2(NI size , NI align ) ; | |
void raiseExceptionAux__na8C8pUZ9cLQWVwk35l5vfw(Exception *e ) ; | |
__inline static void pushCurrentException(Exception *e ) ; | |
void eqsink___rR9boD7urcxl7uyUtE46AOA(Exception **dest , Exception *src ) ; | |
void reportUnhandledError__na8C8pUZ9cLQWVwk35l5vfw_2(Exception *e ) ; | |
void reportUnhandledErrorAux__na8C8pUZ9cLQWVwk35l5vfw_3(Exception *e ) ; | |
NimStringV2 dollar___liwwu6qv5HyRiFI58oBO0g(tySequence__uB9b75OUPRENsBAu4AnoePA stackTraceEntries ) ; | |
__inline static void appendString(NimStringV2 *dest , NimStringV2 src ) ; | |
void add__8FwY5enLGB0dFerO6Ny9caw(NimStringV2 *x , NCSTRING y ) ; | |
__inline static void nimAddCharV1(NimStringV2 *s , NIM_CHAR c ) ; | |
__inline static NCSTRING nimToCStringConv(NimStringV2 s ) ; | |
static struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_60456539 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_2 = {(NI )(200UL | (1UL << 62)), | |
{(NIM_CHAR )'0', (NIM_CHAR )'0', (NIM_CHAR )'0', (NIM_CHAR )'1', (NIM_CHAR )'0', | |
(NIM_CHAR )'2', (NIM_CHAR )'0', (NIM_CHAR )'3', (NIM_CHAR )'0', (NIM_CHAR )'4', | |
(NIM_CHAR )'0', (NIM_CHAR )'5', (NIM_CHAR )'0', (NIM_CHAR )'6', (NIM_CHAR )'0', | |
(NIM_CHAR )'7', (NIM_CHAR )'0', (NIM_CHAR )'8', (NIM_CHAR )'0', (NIM_CHAR )'9', | |
(NIM_CHAR )'1', (NIM_CHAR )'0', (NIM_CHAR )'1', (NIM_CHAR )'1', (NIM_CHAR )'1', | |
(NIM_CHAR )'2', (NIM_CHAR )'1', (NIM_CHAR )'3', (NIM_CHAR )'1', (NIM_CHAR )'4', | |
(NIM_CHAR )'1', (NIM_CHAR )'5', (NIM_CHAR )'1', (NIM_CHAR )'6', (NIM_CHAR )'1', | |
(NIM_CHAR )'7', (NIM_CHAR )'1', (NIM_CHAR )'8', (NIM_CHAR )'1', (NIM_CHAR )'9', | |
(NIM_CHAR )'2', (NIM_CHAR )'0', (NIM_CHAR )'2', (NIM_CHAR )'1', (NIM_CHAR )'2', | |
(NIM_CHAR )'2', (NIM_CHAR )'2', (NIM_CHAR )'3', (NIM_CHAR )'2', (NIM_CHAR )'4', | |
(NIM_CHAR )'2', (NIM_CHAR )'5', (NIM_CHAR )'2', (NIM_CHAR )'6', (NIM_CHAR )'2', | |
(NIM_CHAR )'7', (NIM_CHAR )'2', (NIM_CHAR )'8', (NIM_CHAR )'2', (NIM_CHAR )'9', | |
(NIM_CHAR )'3', (NIM_CHAR )'0', (NIM_CHAR )'3', (NIM_CHAR )'1', (NIM_CHAR )'3', | |
(NIM_CHAR )'2', (NIM_CHAR )'3', (NIM_CHAR )'3', (NIM_CHAR )'3', (NIM_CHAR )'4', | |
(NIM_CHAR )'3', (NIM_CHAR )'5', (NIM_CHAR )'3', (NIM_CHAR )'6', (NIM_CHAR )'3', | |
(NIM_CHAR )'7', (NIM_CHAR )'3', (NIM_CHAR )'8', (NIM_CHAR )'3', (NIM_CHAR )'9', | |
(NIM_CHAR )'4', (NIM_CHAR )'0', (NIM_CHAR )'4', (NIM_CHAR )'1', (NIM_CHAR )'4', | |
(NIM_CHAR )'2', (NIM_CHAR )'4', (NIM_CHAR )'3', (NIM_CHAR )'4', (NIM_CHAR )'4', | |
(NIM_CHAR )'4', (NIM_CHAR )'5', (NIM_CHAR )'4', (NIM_CHAR )'6', (NIM_CHAR )'4', | |
(NIM_CHAR )'7', (NIM_CHAR )'4', (NIM_CHAR )'8', (NIM_CHAR )'4', (NIM_CHAR )'9', | |
(NIM_CHAR )'5', (NIM_CHAR )'0', (NIM_CHAR )'5', (NIM_CHAR )'1', (NIM_CHAR )'5', | |
(NIM_CHAR )'2', (NIM_CHAR )'5', (NIM_CHAR )'3', (NIM_CHAR )'5', (NIM_CHAR )'4', | |
(NIM_CHAR )'5', (NIM_CHAR )'5', (NIM_CHAR )'5', (NIM_CHAR )'6', (NIM_CHAR )'5', | |
(NIM_CHAR )'7', (NIM_CHAR )'5', (NIM_CHAR )'8', (NIM_CHAR )'5', (NIM_CHAR )'9', | |
(NIM_CHAR )'6', (NIM_CHAR )'0', (NIM_CHAR )'6', (NIM_CHAR )'1', (NIM_CHAR )'6', | |
(NIM_CHAR )'2', (NIM_CHAR )'6', (NIM_CHAR )'3', (NIM_CHAR )'6', (NIM_CHAR )'4', | |
(NIM_CHAR )'6', (NIM_CHAR )'5', (NIM_CHAR )'6', (NIM_CHAR )'6', (NIM_CHAR )'6', | |
(NIM_CHAR )'7', (NIM_CHAR )'6', (NIM_CHAR )'8', (NIM_CHAR )'6', (NIM_CHAR )'9', | |
(NIM_CHAR )'7', (NIM_CHAR )'0', (NIM_CHAR )'7', (NIM_CHAR )'1', (NIM_CHAR )'7', | |
(NIM_CHAR )'2', (NIM_CHAR )'7', (NIM_CHAR )'3', (NIM_CHAR )'7', (NIM_CHAR )'4', | |
(NIM_CHAR )'7', (NIM_CHAR )'5', (NIM_CHAR )'7', (NIM_CHAR )'6', (NIM_CHAR )'7', | |
(NIM_CHAR )'7', (NIM_CHAR )'7', (NIM_CHAR )'8', (NIM_CHAR )'7', (NIM_CHAR )'9', | |
(NIM_CHAR )'8', (NIM_CHAR )'0', (NIM_CHAR )'8', (NIM_CHAR )'1', (NIM_CHAR )'8', | |
(NIM_CHAR )'2', (NIM_CHAR )'8', (NIM_CHAR )'3', (NIM_CHAR )'8', (NIM_CHAR )'4', | |
(NIM_CHAR )'8', (NIM_CHAR )'5', (NIM_CHAR )'8', (NIM_CHAR )'6', (NIM_CHAR )'8', | |
(NIM_CHAR )'7', (NIM_CHAR )'8', (NIM_CHAR )'8', (NIM_CHAR )'8', (NIM_CHAR )'9', | |
(NIM_CHAR )'9', (NIM_CHAR )'0', (NIM_CHAR )'9', (NIM_CHAR )'1', (NIM_CHAR )'9', | |
(NIM_CHAR )'2', (NIM_CHAR )'9', (NIM_CHAR )'3', (NIM_CHAR )'9', (NIM_CHAR )'4', | |
(NIM_CHAR )'9', (NIM_CHAR )'5', (NIM_CHAR )'9', (NIM_CHAR )'6', (NIM_CHAR )'9', | |
(NIM_CHAR )'7', (NIM_CHAR )'9', (NIM_CHAR )'8', (NIM_CHAR )'9', (NIM_CHAR )'9', | |
(NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_3 = {(NI )200, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_2)}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_4 = {(NI )200, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_2)}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_5 = {(NI )200, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_2)}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_6 = {(NI )200, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_2)}; | |
TNimTypeV2 NTIv2__iLZrPn9anoh9ad1MmO0RczFw_ ; | |
static struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_7_60456540 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_7 = {(NI )(17UL | (1UL << 62)), | |
{(NIM_CHAR )'[', (NIM_CHAR )'[', (NIM_CHAR )'r', (NIM_CHAR )'e', (NIM_CHAR )'r', | |
(NIM_CHAR )'a', (NIM_CHAR )'i', (NIM_CHAR )'s', (NIM_CHAR )'e', (NIM_CHAR )'d', | |
(NIM_CHAR )' ', (NIM_CHAR )'f', (NIM_CHAR )'r', (NIM_CHAR )'o', (NIM_CHAR )'m', | |
(NIM_CHAR )':', (NIM_CHAR )'\n', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_8 = {(NI )17, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_7)}; | |
static struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_9_60456541 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_9 = {(NI )(3UL | (1UL << 62)), | |
{(NIM_CHAR )']', (NIM_CHAR )']', (NIM_CHAR )'\n', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_10 = {(NI )3, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_9)}; | |
static struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_11_60456542 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_11 = {(NI )(1UL | (1UL << 62)), | |
{(NIM_CHAR )'(', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_12 = {(NI )1, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_11)}; | |
static struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_13_60456543 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_13 = {(NI )(2UL | (1UL << 62)), | |
{(NIM_CHAR )',', (NIM_CHAR )' ', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_14 = {(NI )2, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_13)}; | |
static struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_15_60456544 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_15 = {(NI )(1UL | (1UL << 62)), | |
{(NIM_CHAR )'0', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_16 = {(NI )1, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_15)}; | |
static struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_17_60456545 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_17 = {(NI )(1UL | (1UL << 62)), | |
{(NIM_CHAR )')', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_18 = {(NI )1, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_17)}; | |
static struct __anonstruct_TM__Q5wkpxktOdTGvlSRo9bzt9aw_19_60456546 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_19 = {(NI )(1UL | (1UL << 62)), | |
{(NIM_CHAR )'\n', (NIM_CHAR )'\000'}}; | |
static struct NimStringV2 const TM__Q5wkpxktOdTGvlSRo9bzt9aw_20 = {(NI )1, (NimStrPayload *)(& TM__Q5wkpxktOdTGvlSRo9bzt9aw_19)}; | |
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w roots__XgPCChSejeKL9a47kDcmJZA ; | |
NI rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA = (NI )128; | |
_Bool (*globalRaiseHook__JbO1ti4ULxrw54m4zNPbpA)(Exception *e ) ; | |
_Bool (*localRaiseHook__EIvMhANBvB9cp2Ezvt29cADg)(Exception *e ) ; | |
void (*outOfMemHook__kZNaA7u1MfSW5ZeoGvw8xg)(void) ; | |
void (*unhandledExceptionHook__RJpSsXsRUH8ochbXTEhRIw)(Exception *e ) ; | |
Exception *currException__9bVPeDJlYTi9bQApZpfH8wjg ; | |
void (*errorMessageWriter__ZXnv0JyrWe3HTd07wpSr7A)(NimStringV2 msg ) ; | |
TFrame *framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw ; | |
TSafePoint *excHandler__rqLlY5bs9atDw2OXYqJEn5g ; | |
GcFrameHeader *gcFramePtr__ot48iojqko9aFxGhyjjjVaA ; | |
void (*onUnhandledException__bFrawQlTKZhLweDD36j9b8g)(NimStringV2 msg ) ; | |
_Bool nimInErrorMode__759bT87luu8XGcbkw13FUjA ; | |
__inline static void initStackBottom(void) | |
{ | |
{ | |
return; | |
} | |
} | |
__inline static void nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(void *a , int v , NI size ) | |
{ | |
void *T1_ ; | |
{ | |
T1_ = (void *)0; | |
T1_ = memset(a, v, (size_t )size); | |
return; | |
} | |
} | |
__inline static void nimZeroMem(void *p , NI size ) | |
{ | |
_Bool *nimErr_ ; | |
long tmp ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, 0, size); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
} | |
return; | |
} | |
} | |
void *alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg(NI size ) | |
{ | |
void *result ; | |
{ | |
result = (void *)0; | |
result = calloc((size_t )size, (size_t )1); | |
return (result); | |
} | |
} | |
NimStringV2 toNimStr(NCSTRING str , NI len ) | |
{ | |
NimStringV2 result ; | |
NI colontmpD_ ; | |
NimStrPayload *p ; | |
void *T6_ ; | |
{ | |
nimZeroMem((void *)(& result), (NI )sizeof(NimStringV2 )); | |
if (! (len <= 0L)) { | |
goto LA3_; | |
} | |
nimZeroMem((void *)(& result), (NI )sizeof(NimStringV2 )); | |
result.len = (NI )0; | |
result.p = (NimStrPayload *)((void *)0); | |
goto LA1_; | |
LA3_: | |
colontmpD_ = (NI )0; | |
T6_ = (void *)0; | |
T6_ = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg((len + 1L) + 8L); | |
p = (NimStrPayload *)T6_; | |
p->cap = len; | |
if (! (0L < len)) { | |
goto LA9_; | |
} | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem((void *)(& p->data[(NI )0]), (void *)str, | |
len); | |
LA9_: | |
nimZeroMem((void *)(& result), (NI )sizeof(NimStringV2 )); | |
colontmpD_ = len; | |
result.len = colontmpD_; | |
result.p = p; | |
LA1_: ; | |
return (result); | |
} | |
} | |
__inline static NI nimCStrLen(NCSTRING a ) | |
{ | |
NI result ; | |
size_t T1_ ; | |
{ | |
result = (NI )0; | |
T1_ = (size_t )0; | |
T1_ = strlen((char const *)a); | |
result = (NI )T1_; | |
return (result); | |
} | |
} | |
NimStringV2 cstrToNimstr(NCSTRING str ) | |
{ | |
NimStringV2 result ; | |
NimStringV2 colontmpD_ ; | |
NimStringV2 colontmpD__2 ; | |
NCSTRING T6_ ; | |
NI tmp ; | |
NI tmp___0 ; | |
{ | |
nimZeroMem((void *)(& result), (NI )sizeof(NimStringV2 )); | |
nimZeroMem((void *)(& colontmpD_), (NI )sizeof(NimStringV2 )); | |
nimZeroMem((void *)(& colontmpD__2), (NI )sizeof(NimStringV2 )); | |
if (! ((unsigned long )((void *)str) == (unsigned long )((void *)0))) { | |
goto LA3_; | |
} | |
colontmpD_ = toNimStr(str, (NI )0); | |
result = colontmpD_; | |
goto LA1_; | |
LA3_: | |
T6_ = (NCSTRING )0; | |
T6_ = str; | |
if (str) { | |
tmp = nimCStrLen(str); | |
tmp___0 = tmp; | |
} else { | |
tmp___0 = (NI )0; | |
} | |
colontmpD__2 = toNimStr(T6_, tmp___0); | |
result = colontmpD__2; | |
LA1_: ; | |
return (result); | |
} | |
} | |
void deallocImpl__SAtZpVrJ3o5FJvSdLQe9auA(void *p ) | |
{ | |
{ | |
free(p); | |
return; | |
} | |
} | |
void dealloc(void *p ) | |
{ | |
{ | |
deallocImpl__SAtZpVrJ3o5FJvSdLQe9auA(p); | |
return; | |
} | |
} | |
void eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(NimStringV2 *dest ) | |
{ | |
{ | |
if (dest->p) { | |
if (! ((unsigned long )(dest->p)->cap & (1UL << 62))) { | |
dealloc((void *)dest->p); | |
} | |
} | |
return; | |
} | |
} | |
__inline static NI minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem(NI x , NI y ) | |
{ | |
NI result ; | |
{ | |
result = (NI )0; | |
result = (NI )((NU )x - (NU )y); | |
return (result); | |
} | |
} | |
__inline static void nimIncRefCyclic(void *p , _Bool cyclic ) | |
{ | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *h ; | |
NI T1_ ; | |
{ | |
T1_ = (NI )0; | |
T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((ptrdiff_t )p, (NI )16); | |
h = (tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *)T1_; | |
h->rc += 16L; | |
return; | |
} | |
} | |
void unregisterCycle__rR8fldvW9aUfvKydORzL1RA(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s ) | |
{ | |
NI idx ; | |
{ | |
idx = s->rootIdx - 1L; | |
*(roots__XgPCChSejeKL9a47kDcmJZA.d + idx) = *(roots__XgPCChSejeKL9a47kDcmJZA.d + (roots__XgPCChSejeKL9a47kDcmJZA.len - 1L)); | |
((roots__XgPCChSejeKL9a47kDcmJZA.d + idx)->Field0)->rootIdx = idx + 1L; | |
(roots__XgPCChSejeKL9a47kDcmJZA.len) --; | |
s->rootIdx = (NI )0; | |
return; | |
} | |
} | |
void *allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2(NI size ) | |
{ | |
void *result ; | |
{ | |
result = (void *)0; | |
result = malloc((size_t )size); | |
return (result); | |
} | |
} | |
void init__wKM37ZoL6WtPOU9bn6Ug18A(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w *s , | |
NI cap ) | |
{ | |
void *T1_ ; | |
{ | |
s->len = (NI )0; | |
s->cap = cap; | |
T1_ = (void *)0; | |
T1_ = allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2(s->cap * 16L); | |
s->d = (tyTuple__0F3Kz25HWtRatQmCDVHWEA *)T1_; | |
return; | |
} | |
} | |
__inline static void add__A2hu7ps9a7fQ6dTDoPajZ5gsystem(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w *s , | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *c , | |
TNimTypeV2 *t ) | |
{ | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *colontmp_ ; | |
TNimTypeV2 *colontmp__2 ; | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA *d ; | |
void *T5_ ; | |
void *T6_ ; | |
{ | |
if (! (s->cap <= s->len)) { | |
goto LA3_; | |
} | |
s->cap = (s->cap * 3L) / 2L; | |
T5_ = (void *)0; | |
T5_ = allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2(s->cap * 16L); | |
d = (tyTuple__0F3Kz25HWtRatQmCDVHWEA *)T5_; | |
T6_ = (void *)0; | |
T6_ = (void *)s->d; | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem((void *)d, T6_, s->len * 16L); | |
dealloc((void *)s->d); | |
s->d = d; | |
LA3_: | |
colontmp_ = c; | |
colontmp__2 = t; | |
(s->d + s->len)->Field0 = colontmp_; | |
(s->d + s->len)->Field1 = colontmp__2; | |
(s->len) ++; | |
return; | |
} | |
} | |
__inline static NI pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system(NI x , NI y ) | |
{ | |
NI result ; | |
{ | |
result = (NI )0; | |
result = (NI )((NU )x + (NU )y); | |
return (result); | |
} | |
} | |
__inline static void trace__Pgw8McKUNuhxTelmFLa61gsystem(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) | |
{ | |
_Bool *nimErr_ ; | |
void *p ; | |
NI T5_ ; | |
long tmp ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
if (! (! ((unsigned long )desc->traceImpl == (unsigned long )((void *)0)))) { | |
goto LA3_; | |
} | |
T5_ = (NI )0; | |
T5_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )s, (NI )16); | |
p = (void *)T5_; | |
(*((void (*)(void *p , void *env ))desc->traceImpl))(p, (void *)j); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
LA3_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA pop__9bpeBAtt9aCP5OFUArCn3DJg(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w *s ) | |
{ | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA result ; | |
{ | |
nimZeroMem((void *)(& result), (NI )sizeof(tyTuple__0F3Kz25HWtRatQmCDVHWEA )); | |
result = *(s->d + (s->len - 1L)); | |
(s->len) --; | |
return (result); | |
} | |
} | |
void markGray__t5JPtD1AT5y7bGV1vv4KJA(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) | |
{ | |
_Bool *nimErr_ ; | |
long tmp ; | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA T7_ ; | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *t ; | |
TNimTypeV2 *desc_2 ; | |
long tmp___0 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
if (! (! ((s->rc & 3L) == 1L))) { | |
goto LA3_; | |
} | |
s->rc = (s->rc & -4L) | 1L; | |
(j->touched) ++; | |
j->rcSum += (s->rc >> 4UL) + 1L; | |
trace__Pgw8McKUNuhxTelmFLa61gsystem(s, desc, j); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
while (1) { | |
if (! (0L < j->traceStack.len)) { | |
goto LA6; | |
} | |
T7_ = pop__9bpeBAtt9aCP5OFUArCn3DJg(& j->traceStack); | |
t = T7_.Field0; | |
desc_2 = T7_.Field1; | |
t->rc -= 16L; | |
(j->edges) ++; | |
if (! (! ((t->rc & 3L) == 1L))) { | |
goto LA10_; | |
} | |
t->rc = (t->rc & -4L) | 1L; | |
(j->touched) ++; | |
j->rcSum += (t->rc >> 4UL) + 2L; | |
trace__Pgw8McKUNuhxTelmFLa61gsystem(t, desc_2, j); | |
tmp___0 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___0) { | |
goto BeforeRet_; | |
} | |
LA10_: ; | |
} | |
LA6: ; | |
LA3_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void scanBlack__t5JPtD1AT5y7bGV1vv4KJA_3(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) | |
{ | |
NI until ; | |
_Bool *nimErr_ ; | |
long tmp ; | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA T3_ ; | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *t ; | |
TNimTypeV2 *desc_2 ; | |
long tmp___0 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
s->rc &= -4L; | |
until = j->traceStack.len; | |
trace__Pgw8McKUNuhxTelmFLa61gsystem(s, desc, j); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
while (1) { | |
if (! (until < j->traceStack.len)) { | |
goto LA2; | |
} | |
T3_ = pop__9bpeBAtt9aCP5OFUArCn3DJg(& j->traceStack); | |
t = T3_.Field0; | |
desc_2 = T3_.Field1; | |
t->rc += 16L; | |
if (! (! ((t->rc & 3L) == 0L))) { | |
goto LA6_; | |
} | |
t->rc &= -4L; | |
trace__Pgw8McKUNuhxTelmFLa61gsystem(t, desc_2, j); | |
tmp___0 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___0) { | |
goto BeforeRet_; | |
} | |
LA6_: ; | |
} | |
LA2: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void scan__t5JPtD1AT5y7bGV1vv4KJA_2(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) | |
{ | |
_Bool *nimErr_ ; | |
long tmp ; | |
long tmp___0 ; | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA T12_ ; | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *t ; | |
TNimTypeV2 *desc_2 ; | |
long tmp___1 ; | |
long tmp___2 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
if (! ((s->rc & 3L) == 1L)) { | |
goto LA3_; | |
} | |
if (! (0L <= s->rc >> 4UL)) { | |
goto LA7_; | |
} | |
scanBlack__t5JPtD1AT5y7bGV1vv4KJA_3(s, desc, j); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
goto LA5_; | |
LA7_: | |
s->rc = (s->rc & -4L) | 2L; | |
trace__Pgw8McKUNuhxTelmFLa61gsystem(s, desc, j); | |
tmp___0 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___0) { | |
goto BeforeRet_; | |
} | |
while (1) { | |
if (! (0L < j->traceStack.len)) { | |
goto LA11; | |
} | |
T12_ = pop__9bpeBAtt9aCP5OFUArCn3DJg(& j->traceStack); | |
t = T12_.Field0; | |
desc_2 = T12_.Field1; | |
if (! ((t->rc & 3L) == 1L)) { | |
goto LA15_; | |
} | |
if (! (0L <= t->rc >> 4UL)) { | |
goto LA19_; | |
} | |
scanBlack__t5JPtD1AT5y7bGV1vv4KJA_3(t, desc_2, j); | |
tmp___1 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___1) { | |
goto BeforeRet_; | |
} | |
goto LA17_; | |
LA19_: | |
t->rc = (t->rc & -4L) | 2L; | |
trace__Pgw8McKUNuhxTelmFLa61gsystem(t, desc_2, j); | |
tmp___2 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___2) { | |
goto BeforeRet_; | |
} | |
LA17_: ; | |
LA15_: ; | |
} | |
LA11: ; | |
LA5_: ; | |
LA3_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void collectColor__kzUmIxtf9aW5aryQ9cs2r0vA(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc , NI col , tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ) | |
{ | |
_Bool *nimErr_ ; | |
_Bool T3_ ; | |
long tmp ; | |
tyTuple__0F3Kz25HWtRatQmCDVHWEA T9_ ; | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *t ; | |
TNimTypeV2 *desc_2 ; | |
_Bool T12_ ; | |
long tmp___0 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
T3_ = (_Bool)0; | |
T3_ = (_Bool )((s->rc & 3L) == col); | |
if (! T3_) { | |
goto LA4_; | |
} | |
T3_ = (_Bool )(s->rootIdx == 0L); | |
LA4_: ; | |
if (! T3_) { | |
goto LA5_; | |
} | |
s->rc &= -4L; | |
add__A2hu7ps9a7fQ6dTDoPajZ5gsystem(& j->toFree, s, desc); | |
trace__Pgw8McKUNuhxTelmFLa61gsystem(s, desc, j); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
while (1) { | |
if (! (0L < j->traceStack.len)) { | |
goto LA8; | |
} | |
T9_ = pop__9bpeBAtt9aCP5OFUArCn3DJg(& j->traceStack); | |
t = T9_.Field0; | |
desc_2 = T9_.Field1; | |
T12_ = (_Bool)0; | |
T12_ = (_Bool )((t->rc & 3L) == col); | |
if (! T12_) { | |
goto LA13_; | |
} | |
T12_ = (_Bool )(t->rootIdx == 0L); | |
LA13_: ; | |
if (! T12_) { | |
goto LA14_; | |
} | |
add__A2hu7ps9a7fQ6dTDoPajZ5gsystem(& j->toFree, t, desc_2); | |
t->rc &= -4L; | |
trace__Pgw8McKUNuhxTelmFLa61gsystem(t, desc_2, j); | |
tmp___0 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___0) { | |
goto BeforeRet_; | |
} | |
LA14_: ; | |
} | |
LA8: ; | |
LA5_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
NI align__vzThvqZajaR9ct9cQ7SOy1tQ(NI address , NI alignment ) | |
{ | |
NI result ; | |
{ | |
result = (NI )0; | |
if (! (alignment == 0L)) { | |
goto LA3_; | |
} | |
result = address; | |
goto LA1_; | |
LA3_: | |
result = (address + (alignment - 1L)) & (NI )((NU64 )(~ (alignment - 1L))); | |
LA1_: ; | |
return (result); | |
} | |
} | |
void alignedDealloc(void *p , NI align ) | |
{ | |
NU16 offset ; | |
NI T6_ ; | |
NI T7_ ; | |
{ | |
if (! (align <= 16L)) { | |
goto LA3_; | |
} | |
dealloc(p); | |
goto LA1_; | |
LA3_: | |
T6_ = (NI )0; | |
T6_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((ptrdiff_t )p, (NI )2); | |
offset = *((NU16 *)((void *)T6_)); | |
T7_ = (NI )0; | |
T7_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((ptrdiff_t )p, (NI )offset); | |
dealloc((void *)T7_); | |
LA1_: ; | |
return; | |
} | |
} | |
void nimRawDispose(void *p , NI alignment ) | |
{ | |
NI hdrSize ; | |
NI T1_ ; | |
{ | |
hdrSize = align__vzThvqZajaR9ct9cQ7SOy1tQ((NI )16, alignment); | |
T1_ = (NI )0; | |
T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((ptrdiff_t )p, hdrSize); | |
alignedDealloc((void *)T1_, alignment); | |
return; | |
} | |
} | |
__inline static void free__w63mdtqWwp9aJ3R0H3korhgsystem(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc ) | |
{ | |
void *p ; | |
NI T1_ ; | |
_Bool *nimErr_ ; | |
long tmp ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
T1_ = (NI )0; | |
T1_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )s, (NI )16); | |
p = (void *)T1_; | |
if (! (! ((unsigned long )desc->disposeImpl == (unsigned long )((void *)0)))) { | |
goto LA4_; | |
} | |
(*((void (*)(void *p ))desc->disposeImpl))(p); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
LA4_: | |
nimRawDispose(p, desc->align); | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void deinit__oft1PYVJXbZgUjpiFAeaqg(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w *s ) | |
{ | |
{ | |
if (! (! ((unsigned long )s->d == (unsigned long )((tyTuple__0F3Kz25HWtRatQmCDVHWEA *)((void *)0))))) { | |
goto LA3_; | |
} | |
dealloc((void *)s->d); | |
s->d = (tyTuple__0F3Kz25HWtRatQmCDVHWEA *)((void *)0); | |
LA3_: | |
s->len = (NI )0; | |
s->cap = (NI )0; | |
return; | |
} | |
} | |
void collectCyclesBacon__cKo5xgNSZEVlhzdcplUDNA(tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j , | |
NI lowMark ) | |
{ | |
NI last ; | |
NI colToCollect ; | |
_Bool *nimErr_ ; | |
NI i ; | |
NI res ; | |
long tmp ; | |
NI i_2 ; | |
NI res_2 ; | |
long tmp___0 ; | |
NI i_3 ; | |
NI i_4 ; | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s ; | |
long tmp___1 ; | |
NI i_5 ; | |
NI i_6 ; | |
long tmp___2 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
last = roots__XgPCChSejeKL9a47kDcmJZA.len - 1L; | |
i = (NI )0; | |
res = last; | |
while (1) { | |
if (! (lowMark <= res)) { | |
goto LA3; | |
} | |
i = res; | |
markGray__t5JPtD1AT5y7bGV1vv4KJA((roots__XgPCChSejeKL9a47kDcmJZA.d + i)->Field0, | |
(roots__XgPCChSejeKL9a47kDcmJZA.d + i)->Field1, | |
j); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
res --; | |
} | |
LA3: | |
colToCollect = (NI )2; | |
if (! (j->rcSum == j->edges)) { | |
goto LA6_; | |
} | |
colToCollect = (NI )1; | |
j->keepThreshold = (_Bool)1; | |
goto LA4_; | |
LA6_: | |
i_2 = (NI )0; | |
res_2 = last; | |
while (1) { | |
if (! (lowMark <= res_2)) { | |
goto LA11; | |
} | |
i_2 = res_2; | |
scan__t5JPtD1AT5y7bGV1vv4KJA_2((roots__XgPCChSejeKL9a47kDcmJZA.d + i_2)->Field0, | |
(roots__XgPCChSejeKL9a47kDcmJZA.d + i_2)->Field1, | |
j); | |
tmp___0 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___0) { | |
goto BeforeRet_; | |
} | |
res_2 --; | |
} | |
LA11: ; | |
LA4_: | |
init__wKM37ZoL6WtPOU9bn6Ug18A(& j->toFree, (NI )1024); | |
i_3 = (NI )0; | |
i_4 = (NI )0; | |
while (1) { | |
if (! (i_4 < roots__XgPCChSejeKL9a47kDcmJZA.len)) { | |
goto LA14; | |
} | |
i_3 = i_4; | |
s = (roots__XgPCChSejeKL9a47kDcmJZA.d + i_3)->Field0; | |
s->rootIdx = (NI )0; | |
collectColor__kzUmIxtf9aW5aryQ9cs2r0vA(s, (roots__XgPCChSejeKL9a47kDcmJZA.d + i_3)->Field1, | |
colToCollect, j); | |
tmp___1 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___1) { | |
goto BeforeRet_; | |
} | |
i_4 ++; | |
} | |
LA14: | |
i_5 = (NI )0; | |
i_6 = (NI )0; | |
while (1) { | |
if (! (i_6 < j->toFree.len)) { | |
goto LA17; | |
} | |
i_5 = i_6; | |
free__w63mdtqWwp9aJ3R0H3korhgsystem((j->toFree.d + i_5)->Field0, (j->toFree.d + i_5)->Field1); | |
tmp___2 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___2) { | |
goto BeforeRet_; | |
} | |
i_6 ++; | |
} | |
LA17: | |
j->freed += j->toFree.len; | |
deinit__oft1PYVJXbZgUjpiFAeaqg(& j->toFree); | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void collectCycles__amVlU9ajqZ06ujoesRBHcDg(void) | |
{ | |
tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ j ; | |
_Bool *nimErr_ ; | |
long tmp ; | |
_Bool T3_ ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
nimZeroMem((void *)(& j), (NI )sizeof(tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ )); | |
init__wKM37ZoL6WtPOU9bn6Ug18A(& j.traceStack, (NI )1024); | |
collectCyclesBacon__cKo5xgNSZEVlhzdcplUDNA(& j, (NI )0); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
deinit__oft1PYVJXbZgUjpiFAeaqg(& j.traceStack); | |
deinit__oft1PYVJXbZgUjpiFAeaqg(& roots__XgPCChSejeKL9a47kDcmJZA); | |
T3_ = (_Bool)0; | |
T3_ = j.keepThreshold; | |
if (! T3_) { | |
goto LA4_; | |
} | |
T3_ = (_Bool )(rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA <= 128L); | |
LA4_: ; | |
if (! T3_) { | |
goto LA5_; | |
} | |
goto LA1_; | |
LA5_: ; | |
if (! (j.touched <= j.freed * 2L)) { | |
goto LA8_; | |
} | |
if ((rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA / 3L) * 2L >= 16L) { | |
rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA = (rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA / 3L) * 2L; | |
} else { | |
rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA = (NI )16; | |
} | |
goto LA1_; | |
LA8_: ; | |
if (! (rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA < 2305843009213693951L)) { | |
goto LA11_; | |
} | |
rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA = (rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA * 3L) / 2L; | |
goto LA1_; | |
LA11_: ; | |
LA1_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void registerCycle__W1emNvKsDKJ8tfxEiEnOvg(tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc ) | |
{ | |
_Bool *nimErr_ ; | |
long tmp ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
s->rootIdx = roots__XgPCChSejeKL9a47kDcmJZA.len + 1L; | |
if (! ((unsigned long )roots__XgPCChSejeKL9a47kDcmJZA.d == (unsigned long )((tyTuple__0F3Kz25HWtRatQmCDVHWEA *)((void *)0)))) { | |
goto LA3_; | |
} | |
init__wKM37ZoL6WtPOU9bn6Ug18A(& roots__XgPCChSejeKL9a47kDcmJZA, (NI )1024); | |
LA3_: | |
add__A2hu7ps9a7fQ6dTDoPajZ5gsystem(& roots__XgPCChSejeKL9a47kDcmJZA, s, desc); | |
if (! (rootsThreshold__0rSec7pL9bBpqVkeRvHLdCA <= roots__XgPCChSejeKL9a47kDcmJZA.len)) { | |
goto LA7_; | |
} | |
collectCycles__amVlU9ajqZ06ujoesRBHcDg(); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
LA7_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void ( __attribute__((__noinline__)) rememberCycle__LoYD9cYK9aJvrcDizBN64qaQ)(_Bool isDestroyAction , | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *s , | |
TNimTypeV2 *desc ) | |
{ | |
_Bool *nimErr_ ; | |
_Bool T12_ ; | |
long tmp ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
if (! isDestroyAction) { | |
goto LA3_; | |
} | |
if (! (0L < s->rootIdx)) { | |
goto LA7_; | |
} | |
unregisterCycle__rR8fldvW9aUfvKydORzL1RA(s); | |
LA7_: ; | |
goto LA1_; | |
LA3_: | |
T12_ = (_Bool)0; | |
T12_ = (_Bool )(s->rootIdx == 0L); | |
if (! T12_) { | |
goto LA13_; | |
} | |
T12_ = (_Bool)1; | |
LA13_: ; | |
if (! T12_) { | |
goto LA14_; | |
} | |
s->rc &= -4L; | |
registerCycle__W1emNvKsDKJ8tfxEiEnOvg(s, desc); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
LA14_: ; | |
LA1_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
__inline static _Bool nimDecRefIsLastCyclicDyn(void *p ) | |
{ | |
_Bool result ; | |
_Bool *nimErr_ ; | |
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *cell ; | |
NI T5_ ; | |
long tmp ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
result = (_Bool)0; | |
if (! (! ((unsigned long )p == (unsigned long )((void *)0)))) { | |
goto LA3_; | |
} | |
T5_ = (NI )0; | |
T5_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((ptrdiff_t )p, (NI )16); | |
cell = (tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *)T5_; | |
if (! ((cell->rc & -16L) == 0L)) { | |
goto LA8_; | |
} | |
result = (_Bool)1; | |
goto LA6_; | |
LA8_: | |
cell->rc -= 16L; | |
LA6_: | |
rememberCycle__LoYD9cYK9aJvrcDizBN64qaQ(result, cell, *((TNimTypeV2 **)p)); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
LA3_: ; | |
BeforeRet_: ; | |
return (result); | |
} | |
} | |
void nimDestroyAndDispose(void *p ) | |
{ | |
TNimTypeV2 **rti ; | |
_Bool *nimErr_ ; | |
long tmp ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
rti = (TNimTypeV2 **)p; | |
if (! (! ((unsigned long )(*rti)->destructor == (unsigned long )((void *)0)))) { | |
goto LA3_; | |
} | |
(*((void (*)(void *p ))(*rti)->destructor))(p); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
goto BeforeRet_; | |
} | |
LA3_: | |
nimRawDispose(p, (*rti)->align); | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void eqcopy___T4HCXq9b9bmRBkztIGW1WmXw(Exception **dest , Exception *src , _Bool cyclic ) | |
{ | |
Exception *colontmp_ ; | |
_Bool T7_ ; | |
{ | |
colontmp_ = *dest; | |
if (! src) { | |
goto LA3_; | |
} | |
nimIncRefCyclic((void *)src, cyclic); | |
LA3_: | |
*dest = src; | |
T7_ = (_Bool)0; | |
T7_ = nimDecRefIsLastCyclicDyn((void *)colontmp_); | |
if (! T7_) { | |
goto LA8_; | |
} | |
nimDestroyAndDispose((void *)colontmp_); | |
LA8_: ; | |
return; | |
} | |
} | |
__inline static void popCurrentException(void) | |
{ | |
{ | |
eqcopy___T4HCXq9b9bmRBkztIGW1WmXw(& currException__9bVPeDJlYTi9bQApZpfH8wjg, currException__9bVPeDJlYTi9bQApZpfH8wjg->up, | |
(_Bool)0); | |
return; | |
} | |
} | |
__inline static void rawWriteString(FILE *f , NCSTRING s , NI length ) | |
{ | |
int T1_ ; | |
int T2_ ; | |
size_t tmp ; | |
{ | |
T1_ = 0; | |
tmp = fwrite((void const * __restrict )((void *)s), (size_t )1, (size_t )length, | |
(FILE * __restrict )f); | |
T1_ = (int )tmp; | |
T2_ = 0; | |
T2_ = fflush(f); | |
return; | |
} | |
} | |
void writeToStdErr__7LQulNmLFN9auOCHBWBPKMw(NCSTRING msg , NI length ) | |
{ | |
{ | |
rawWriteString(stderr, msg, length); | |
return; | |
} | |
} | |
void showErrorMessage__T9b42zC1n39bfjypEaUpct0g(NCSTRING data , NI length ) | |
{ | |
_Bool toWrite ; | |
_Bool *nimErr_ ; | |
NimStringV2 colontmpD_ ; | |
long tmp ; | |
long tmp___0 ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
toWrite = (_Bool)1; | |
if (! (! ((unsigned long )errorMessageWriter__ZXnv0JyrWe3HTd07wpSr7A == (unsigned long )((void *)0)))) { | |
goto LA3_; | |
} | |
colontmpD_.len = (NI )0; | |
colontmpD_.p = (NimStrPayload *)((void *)0); | |
colontmpD_ = cstrToNimstr(data); | |
(*errorMessageWriter__ZXnv0JyrWe3HTd07wpSr7A)(colontmpD_); | |
toWrite = (_Bool)0; | |
eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(& colontmpD_); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
*nimErr_ = (_Bool)0; | |
popCurrentException(); | |
} | |
tmp___0 = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp___0) { | |
goto BeforeRet_; | |
} | |
LA3_: ; | |
if (! toWrite) { | |
goto LA11_; | |
} | |
writeToStdErr__7LQulNmLFN9auOCHBWBPKMw(data, length); | |
LA11_: ; | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void signalHandler(int sign ) | |
{ | |
NCSTRING msg ; | |
NCSTRING T26_ ; | |
void (*T27_)(int a ) ; | |
int T28_ ; | |
NI tmp ; | |
NI tmp___0 ; | |
{ | |
msg = (NCSTRING )0; | |
if (! (sign == 2)) { | |
goto LA3_; | |
} | |
msg = (NCSTRING )"SIGINT: Interrupted by Ctrl-C.\n"; | |
goto LA1_; | |
LA3_: ; | |
if (! (sign == 11)) { | |
goto LA6_; | |
} | |
msg = (NCSTRING )"SIGSEGV: Illegal storage access. (Attempt to read from nil?)\n"; | |
goto LA1_; | |
LA6_: ; | |
if (! (sign == 6)) { | |
goto LA9_; | |
} | |
msg = (NCSTRING )"SIGABRT: Abnormal termination.\n"; | |
goto LA1_; | |
LA9_: ; | |
if (! (sign == 8)) { | |
goto LA12_; | |
} | |
msg = (NCSTRING )"SIGFPE: Arithmetic error.\n"; | |
goto LA1_; | |
LA12_: ; | |
if (! (sign == 4)) { | |
goto LA15_; | |
} | |
msg = (NCSTRING )"SIGILL: Illegal operation.\n"; | |
goto LA1_; | |
LA15_: ; | |
goto LA18_; | |
msg = (NCSTRING )"SIGBUS: Illegal storage access. (Attempt to read from nil?)\n"; | |
goto LA1_; | |
LA18_: ; | |
if (! (sign == 13)) { | |
goto LA24_; | |
} | |
msg = (NCSTRING )"SIGPIPE: Pipe closed.\n"; | |
goto LA21; | |
LA24_: | |
msg = (NCSTRING )"unknown signal\n"; | |
LA21: ; | |
LA1_: | |
T26_ = (NCSTRING )0; | |
T26_ = msg; | |
if (msg) { | |
tmp = nimCStrLen(msg); | |
tmp___0 = tmp; | |
} else { | |
tmp___0 = (NI )0; | |
} | |
showErrorMessage__T9b42zC1n39bfjypEaUpct0g(T26_, tmp___0); | |
T27_ = (void (*)(int a ))0; | |
T27_ = signal(sign, (void (*)(int a ))0); | |
T28_ = 0; | |
T28_ = raise(sign); | |
return; | |
} | |
} | |
void registerSignalHandler__amVlU9ajqZ06ujoesRBHcDg_2(void) | |
{ | |
void (*T1_)(int a ) ; | |
void (*T2_)(int a ) ; | |
void (*T3_)(int a ) ; | |
void (*T4_)(int a ) ; | |
void (*T5_)(int a ) ; | |
void (*T6_)(int a ) ; | |
{ | |
T1_ = (void (*)(int a ))0; | |
T1_ = signal(2, & signalHandler); | |
T2_ = (void (*)(int a ))0; | |
T2_ = signal(11, & signalHandler); | |
T3_ = (void (*)(int a ))0; | |
T3_ = signal(6, & signalHandler); | |
T4_ = (void (*)(int a ))0; | |
T4_ = signal(8, & signalHandler); | |
T5_ = (void (*)(int a ))0; | |
T5_ = signal(4, & signalHandler); | |
T6_ = (void (*)(int a ))0; | |
T6_ = signal(13, & signalHandler); | |
return; | |
} | |
} | |
NimStringV2 rawNewString(NI space ) | |
{ | |
NimStringV2 result ; | |
NimStrPayload *p ; | |
void *T6_ ; | |
{ | |
nimZeroMem((void *)(& result), (NI )sizeof(NimStringV2 )); | |
if (! (space <= 0L)) { | |
goto LA3_; | |
} | |
nimZeroMem((void *)(& result), (NI )sizeof(NimStringV2 )); | |
result.len = (NI )0; | |
result.p = (NimStrPayload *)((void *)0); | |
goto LA1_; | |
LA3_: | |
T6_ = (void *)0; | |
T6_ = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg((space + 1L) + 8L); | |
p = (NimStrPayload *)T6_; | |
p->cap = space; | |
nimZeroMem((void *)(& result), (NI )sizeof(NimStringV2 )); | |
result.len = (NI )0; | |
result.p = p; | |
LA1_: ; | |
return (result); | |
} | |
} | |
NI ( __attribute__((__noinline__)) digits10__duY57oPUFW9aU9aeyQ9cREIjg)(NU64 num ) | |
{ | |
NI result ; | |
NI T39_ ; | |
{ | |
result = (NI )0; | |
if (! (num < 10UL)) { | |
goto LA3_; | |
} | |
result = (NI )1; | |
goto LA1_; | |
LA3_: ; | |
if (! (num < 100UL)) { | |
goto LA6_; | |
} | |
result = (NI )2; | |
goto LA1_; | |
LA6_: ; | |
if (! (num < 1000UL)) { | |
goto LA9_; | |
} | |
result = (NI )3; | |
goto LA1_; | |
LA9_: ; | |
if (! (num < 10000UL)) { | |
goto LA12_; | |
} | |
result = (NI )4; | |
goto LA1_; | |
LA12_: ; | |
if (! (num < 100000UL)) { | |
goto LA15_; | |
} | |
result = (NI )5; | |
goto LA1_; | |
LA15_: ; | |
if (! (num < 1000000UL)) { | |
goto LA18_; | |
} | |
result = (NI )6; | |
goto LA1_; | |
LA18_: ; | |
if (! (num < 10000000UL)) { | |
goto LA21_; | |
} | |
result = (NI )7; | |
goto LA1_; | |
LA21_: ; | |
if (! (num < 100000000UL)) { | |
goto LA24_; | |
} | |
result = (NI )8; | |
goto LA1_; | |
LA24_: ; | |
if (! (num < 1000000000UL)) { | |
goto LA27_; | |
} | |
result = (NI )9; | |
goto LA1_; | |
LA27_: ; | |
if (! (num < 10000000000UL)) { | |
goto LA30_; | |
} | |
result = (NI )10; | |
goto LA1_; | |
LA30_: ; | |
if (! (num < 100000000000UL)) { | |
goto LA33_; | |
} | |
result = (NI )11; | |
goto LA1_; | |
LA33_: ; | |
if (! (num < 1000000000000UL)) { | |
goto LA36_; | |
} | |
result = (NI )12; | |
goto LA1_; | |
LA36_: | |
T39_ = (NI )0; | |
T39_ = digits10__duY57oPUFW9aU9aeyQ9cREIjg(num / 1000000000000UL); | |
result = 12L + T39_; | |
LA1_: ; | |
return (result); | |
} | |
} | |
__inline static NI resize__cOCDWr16YD4j3dBrbbH3yQsystem(NI old ) | |
{ | |
NI result ; | |
{ | |
result = (NI )0; | |
if (! (old <= 0L)) { | |
goto LA3_; | |
} | |
result = (NI )4; | |
goto LA1_; | |
LA3_: ; | |
if (! (old < 65536L)) { | |
goto LA6_; | |
} | |
result = old * 2L; | |
goto LA1_; | |
LA6_: | |
result = (old * 3L) / 2L; | |
LA1_: ; | |
return (result); | |
} | |
} | |
void *reallocImpl__aVKf1wTLXmon0P1kdfx69aw(void *p , NI newSize ) | |
{ | |
void *result ; | |
{ | |
result = (void *)0; | |
result = realloc(p, (size_t )newSize); | |
return (result); | |
} | |
} | |
__inline static void zeroMem__FsvhfMqbswETmyMWtamDewsystem(void *p , NI size ) | |
{ | |
{ | |
nimZeroMem(p, size); | |
return; | |
} | |
} | |
void *realloc0Impl__CRabJkeE1THyovTYlxjdVw(void *p , NI oldSize , NI newSize ) | |
{ | |
void *result ; | |
void *T5_ ; | |
{ | |
result = (void *)0; | |
result = reallocImpl__aVKf1wTLXmon0P1kdfx69aw(p, (NI )((size_t )newSize)); | |
if (! (oldSize < newSize)) { | |
goto LA3_; | |
} | |
T5_ = (void *)0; | |
T5_ = (void *)((ptrdiff_t )result + oldSize); | |
zeroMem__FsvhfMqbswETmyMWtamDewsystem(T5_, newSize - oldSize); | |
LA3_: ; | |
return (result); | |
} | |
} | |
void prepareAdd(NimStringV2 *s , NI addlen ) | |
{ | |
NI newLen ; | |
_Bool T3_ ; | |
NimStrPayload *oldP ; | |
void *T7_ ; | |
void *T12_ ; | |
NI tmp ; | |
NI oldCap ; | |
NI newCap ; | |
NI T18_ ; | |
NI T19_ ; | |
void *T20_ ; | |
{ | |
newLen = s->len + addlen; | |
T3_ = (_Bool)0; | |
T3_ = (_Bool )((unsigned long )s->p == (unsigned long )((NimStrPayload *)((void *)0))); | |
if (T3_) { | |
goto LA4_; | |
} | |
T3_ = (_Bool )(((s->p)->cap & 4611686018427387904L) == 4611686018427387904L); | |
LA4_: ; | |
if (! T3_) { | |
goto LA5_; | |
} | |
oldP = s->p; | |
T7_ = (void *)0; | |
T7_ = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg((newLen + 1L) + 8L); | |
s->p = (NimStrPayload *)T7_; | |
(s->p)->cap = newLen; | |
if (! (0L < s->len)) { | |
goto LA10_; | |
} | |
T12_ = (void *)0; | |
T12_ = (void *)(& (s->p)->data[(NI )0]); | |
if (s->len <= newLen) { | |
tmp = s->len; | |
} else { | |
tmp = newLen; | |
} | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T12_, (void *)(& oldP->data[(NI )0]), tmp); | |
LA10_: ; | |
goto LA1_; | |
LA5_: | |
oldCap = (s->p)->cap & -4611686018427387905L; | |
if (! (oldCap < newLen)) { | |
goto LA16_; | |
} | |
T18_ = (NI )0; | |
T18_ = resize__cOCDWr16YD4j3dBrbbH3yQsystem(oldCap); | |
if (newLen >= T18_) { | |
newCap = newLen; | |
} else { | |
newCap = T18_; | |
} | |
T19_ = (NI )0; | |
T19_ = (oldCap + 1L) + 8L; | |
T20_ = (void *)0; | |
T20_ = realloc0Impl__CRabJkeE1THyovTYlxjdVw((void *)s->p, T19_, (newCap + 1L) + 8L); | |
s->p = (NimStrPayload *)T20_; | |
(s->p)->cap = newCap; | |
LA16_: ; | |
LA1_: ; | |
return; | |
} | |
} | |
void setLengthStrV2(NimStringV2 *s , NI newLen ) | |
{ | |
_Bool T8_ ; | |
_Bool T10_ ; | |
NimStringV2 *T14_ ; | |
{ | |
if (! (newLen == 0L)) { | |
goto LA3_; | |
} | |
goto LA1_; | |
LA3_: | |
T8_ = (_Bool)0; | |
T8_ = (_Bool )(s->len < newLen); | |
if (T8_) { | |
goto LA9_; | |
} | |
T10_ = (_Bool)0; | |
T10_ = (_Bool )((unsigned long )s->p == (unsigned long )((NimStrPayload *)((void *)0))); | |
if (T10_) { | |
goto LA11_; | |
} | |
T10_ = (_Bool )(((s->p)->cap & 4611686018427387904L) == 4611686018427387904L); | |
LA11_: | |
T8_ = T10_; | |
LA9_: ; | |
if (! T8_) { | |
goto LA12_; | |
} | |
T14_ = (NimStringV2 *)0; | |
T14_ = s; | |
prepareAdd(T14_, newLen - s->len); | |
LA12_: | |
(s->p)->data[newLen] = (NIM_CHAR )0; | |
LA1_: | |
s->len = newLen; | |
return; | |
} | |
} | |
void nimPrepareStrMutationImpl__C0YoABEefTaYbWLv9aVOzZA(NimStringV2 *s ) | |
{ | |
NimStrPayload *oldP ; | |
void *T1_ ; | |
void *T2_ ; | |
{ | |
oldP = s->p; | |
T1_ = (void *)0; | |
T1_ = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg((s->len + 1L) + 8L); | |
s->p = (NimStrPayload *)T1_; | |
(s->p)->cap = s->len; | |
T2_ = (void *)0; | |
T2_ = (void *)(& (s->p)->data[(NI )0]); | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T2_, (void *)(& oldP->data[(NI )0]), s->len + 1L); | |
return; | |
} | |
} | |
__inline static void nimPrepareStrMutationV2(NimStringV2 *s ) | |
{ | |
_Bool T3_ ; | |
{ | |
T3_ = (_Bool)0; | |
T3_ = (_Bool )(! ((unsigned long )s->p == (unsigned long )((NimStrPayload *)((void *)0)))); | |
if (! T3_) { | |
goto LA4_; | |
} | |
T3_ = (_Bool )(((s->p)->cap & 4611686018427387904L) == 4611686018427387904L); | |
LA4_: ; | |
if (! T3_) { | |
goto LA5_; | |
} | |
nimPrepareStrMutationImpl__C0YoABEefTaYbWLv9aVOzZA(s); | |
LA5_: ; | |
return; | |
} | |
} | |
void addInt__mftMOxbyu0h4yByfs3sqjA(NimStringV2 *result , NI64 x ) | |
{ | |
NI base ; | |
NI length ; | |
NU64 num ; | |
NU64 numX60gensym247_ ; | |
NI nextX60gensym247_ ; | |
NI T10_ ; | |
NI T12_ ; | |
NU64 originNumX60gensym247_ ; | |
NU64 indexX60gensym247_ ; | |
NU64 indexX60gensym247__2 ; | |
{ | |
base = result->len; | |
length = (NI )0; | |
num = (NU64 )0; | |
if (! ((long long )x < 0LL)) { | |
goto LA3_; | |
} | |
if (! ((long long )x == (-0x7FFFFFFFFFFFFFFF-1))) { | |
goto LA7_; | |
} | |
num = (NU64 )x; | |
goto LA5_; | |
LA7_: | |
num = (NU64 )(- x); | |
LA5_: | |
T10_ = (NI )0; | |
T10_ = digits10__duY57oPUFW9aU9aeyQ9cREIjg(num); | |
length = (base + T10_) + 1L; | |
setLengthStrV2(result, length); | |
nimPrepareStrMutationV2(result); | |
(result->p)->data[base] = (NIM_CHAR )45; | |
goto LA1_; | |
LA3_: | |
num = (NU64 )x; | |
T12_ = (NI )0; | |
T12_ = digits10__duY57oPUFW9aU9aeyQ9cREIjg(num); | |
length = base + T12_; | |
setLengthStrV2(result, length); | |
LA1_: | |
numX60gensym247_ = num; | |
nextX60gensym247_ = length - 1L; | |
while (1) { | |
if (! (100UL <= numX60gensym247_)) { | |
goto LA14; | |
} | |
originNumX60gensym247_ = numX60gensym247_; | |
numX60gensym247_ /= 100UL; | |
indexX60gensym247_ = (originNumX60gensym247_ - numX60gensym247_ * 100UL) << 1UL; | |
nimPrepareStrMutationV2(result); | |
(result->p)->data[nextX60gensym247_] = (TM__Q5wkpxktOdTGvlSRo9bzt9aw_3.p)->data[indexX60gensym247_ + 1UL]; | |
nimPrepareStrMutationV2(result); | |
(result->p)->data[nextX60gensym247_ - 1L] = (TM__Q5wkpxktOdTGvlSRo9bzt9aw_4.p)->data[indexX60gensym247_]; | |
nextX60gensym247_ -= 2L; | |
} | |
LA14: ; | |
if (! (numX60gensym247_ < 10UL)) { | |
goto LA17_; | |
} | |
nimPrepareStrMutationV2(result); | |
(result->p)->data[nextX60gensym247_] = (NIM_CHAR )((NI )(48UL + numX60gensym247_)); | |
goto LA15_; | |
LA17_: | |
indexX60gensym247__2 = numX60gensym247_ * 2UL; | |
nimPrepareStrMutationV2(result); | |
(result->p)->data[nextX60gensym247_] = (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.p)->data[indexX60gensym247__2 + 1UL]; | |
nimPrepareStrMutationV2(result); | |
(result->p)->data[nextX60gensym247_ - 1L] = (TM__Q5wkpxktOdTGvlSRo9bzt9aw_6.p)->data[indexX60gensym247__2]; | |
LA15_: ; | |
return; | |
} | |
} | |
NimStringV2 nimIntToStr(NI x ) | |
{ | |
NimStringV2 result ; | |
{ | |
result.len = (NI )0; | |
result.p = (NimStrPayload *)((void *)0); | |
result = rawNewString((NI )32); | |
addInt__mftMOxbyu0h4yByfs3sqjA(& result, x); | |
return (result); | |
} | |
} | |
void *alignedAlloc0__tDURxGxuLs0hKEDbtrBxug(NI size , NI align ) | |
{ | |
void *result ; | |
void *base ; | |
NI offset ; | |
NI T6_ ; | |
NI T7_ ; | |
{ | |
result = (void *)0; | |
if (! (align <= 16L)) { | |
goto LA3_; | |
} | |
result = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg(size); | |
goto LA1_; | |
LA3_: | |
base = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg(((size + align) - 1L) + 2L); | |
offset = align - ((ptrdiff_t )base & (align - 1L)); | |
T6_ = (NI )0; | |
T6_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )base, offset - 2L); | |
*((NU16 *)((void *)T6_)) = (NU16 )offset; | |
T7_ = (NI )0; | |
T7_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )base, offset); | |
result = (void *)T7_; | |
LA1_: ; | |
return (result); | |
} | |
} | |
void *nimNewObj(NI size , NI alignment ) | |
{ | |
void *result ; | |
NI hdrSize ; | |
NI s ; | |
void *T1_ ; | |
NI T2_ ; | |
{ | |
result = (void *)0; | |
hdrSize = align__vzThvqZajaR9ct9cQ7SOy1tQ((NI )16, alignment); | |
s = size + hdrSize; | |
T1_ = (void *)0; | |
T1_ = alignedAlloc0__tDURxGxuLs0hKEDbtrBxug(s, alignment); | |
T2_ = (NI )0; | |
T2_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )T1_, hdrSize); | |
result = (void *)T2_; | |
return (result); | |
} | |
} | |
void eqdestroy___4fQQqvAqifkWGVa4g39cI5A(tySequence__uB9b75OUPRENsBAu4AnoePA *dest ) | |
{ | |
NI colontmp_ ; | |
NI T3_ ; | |
{ | |
colontmp_ = (NI )0; | |
while (1) { | |
T3_ = dest->len; | |
if (! (colontmp_ < T3_)) { | |
goto LA2; | |
} | |
colontmp_ ++; | |
} | |
LA2: ; | |
if (dest->p) { | |
if (! ((unsigned long )(dest->p)->cap & (1UL << 62))) { | |
alignedDealloc((void *)dest->p, (NI )__alignof__(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA )); | |
} | |
} | |
return; | |
} | |
} | |
void eqdestroy___SYSukaUCM8gzz0Sv57LsMA(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *dest ) | |
{ | |
_Bool T3_ ; | |
_Bool T8_ ; | |
{ | |
T3_ = (_Bool)0; | |
T3_ = nimDecRefIsLastCyclicDyn((void *)dest->Sup.Sup.parent); | |
if (! T3_) { | |
goto LA4_; | |
} | |
nimDestroyAndDispose((void *)dest->Sup.Sup.parent); | |
LA4_: | |
eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(& dest->Sup.Sup.message); | |
eqdestroy___4fQQqvAqifkWGVa4g39cI5A(& dest->Sup.Sup.trace); | |
T8_ = (_Bool)0; | |
T8_ = nimDecRefIsLastCyclicDyn((void *)dest->Sup.Sup.up); | |
if (! T8_) { | |
goto LA9_; | |
} | |
nimDestroyAndDispose((void *)dest->Sup.Sup.up); | |
LA9_: ; | |
return; | |
} | |
} | |
__inline static void nimTraceRefDyn(void *q , void *env ) | |
{ | |
void **p ; | |
tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *j ; | |
NI T5_ ; | |
{ | |
p = (void **)q; | |
if (! (! ((unsigned long )*p == (unsigned long )((void *)0)))) { | |
goto LA3_; | |
} | |
j = (tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ *)env; | |
T5_ = (NI )0; | |
T5_ = minuspercent___dgYAo7RfdUVVpvkfKDym8wsystem((ptrdiff_t )*p, (NI )16); | |
add__A2hu7ps9a7fQ6dTDoPajZ5gsystem(& j->traceStack, (tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A *)T5_, | |
*((TNimTypeV2 **)*p)); | |
LA3_: ; | |
return; | |
} | |
} | |
void eqtrace___kDvIcrGphqE2lmGa3RNr5A(NimStringV2 *dest , void *env ) | |
{ | |
{ | |
return; | |
} | |
} | |
void eqtrace___9cqRrToT354sdOysDOB1O2A(tySequence__uB9b75OUPRENsBAu4AnoePA *dest , | |
void *env ) | |
{ | |
NI colontmp_ ; | |
NI T3_ ; | |
{ | |
colontmp_ = (NI )0; | |
while (1) { | |
T3_ = dest->len; | |
if (! (colontmp_ < T3_)) { | |
goto LA2; | |
} | |
colontmp_ ++; | |
} | |
LA2: ; | |
return; | |
} | |
} | |
void eqtrace___kt5U9cg2uLmsGJJLbv82xUA(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *dest , | |
void *env ) | |
{ | |
{ | |
nimTraceRefDyn((void *)(& dest->Sup.Sup.parent), env); | |
eqtrace___kDvIcrGphqE2lmGa3RNr5A(& dest->Sup.Sup.message, env); | |
eqtrace___9cqRrToT354sdOysDOB1O2A(& dest->Sup.Sup.trace, env); | |
nimTraceRefDyn((void *)(& dest->Sup.Sup.up), env); | |
return; | |
} | |
} | |
void eqdispose___dS1BF3Vxjg9aJMmmhVJKSpQ_2(NimStringV2 *dest ) | |
{ | |
{ | |
if (dest->p) { | |
if (! ((unsigned long )(dest->p)->cap & (1UL << 62))) { | |
dealloc((void *)dest->p); | |
} | |
} | |
return; | |
} | |
} | |
void eqdispose___4fQQqvAqifkWGVa4g39cI5A_2(tySequence__uB9b75OUPRENsBAu4AnoePA *dest ) | |
{ | |
NI colontmp_ ; | |
NI T3_ ; | |
{ | |
colontmp_ = (NI )0; | |
while (1) { | |
T3_ = dest->len; | |
if (! (colontmp_ < T3_)) { | |
goto LA2; | |
} | |
colontmp_ ++; | |
} | |
LA2: ; | |
if (dest->p) { | |
if (! ((unsigned long )(dest->p)->cap & (1UL << 62))) { | |
alignedDealloc((void *)dest->p, (NI )__alignof__(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA )); | |
} | |
} | |
return; | |
} | |
} | |
void eqdispose___SYSukaUCM8gzz0Sv57LsMA_2(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *dest ) | |
{ | |
{ | |
eqdispose___dS1BF3Vxjg9aJMmmhVJKSpQ_2(& dest->Sup.Sup.message); | |
eqdispose___4fQQqvAqifkWGVa4g39cI5A_2(& dest->Sup.Sup.trace); | |
return; | |
} | |
} | |
void *newSeqPayload(NI cap , NI elemSize , NI elemAlign ) | |
{ | |
void *result ; | |
tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw *p ; | |
NI T5_ ; | |
void *T6_ ; | |
{ | |
result = (void *)0; | |
if (! (0L < cap)) { | |
goto LA3_; | |
} | |
T5_ = (NI )0; | |
T5_ = align__vzThvqZajaR9ct9cQ7SOy1tQ((NI )8, elemAlign); | |
T6_ = (void *)0; | |
T6_ = alignedAlloc0__tDURxGxuLs0hKEDbtrBxug(T5_ + cap * elemSize, elemAlign); | |
p = (tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw *)T6_; | |
p->cap = cap; | |
result = (void *)p; | |
goto LA1_; | |
LA3_: | |
result = (void *)0; | |
LA1_: ; | |
return (result); | |
} | |
} | |
void *alignedAlloc__tDURxGxuLs0hKEDbtrBxug_2(NI size , NI align ) | |
{ | |
void *result ; | |
void *base ; | |
NI offset ; | |
NI T6_ ; | |
NI T7_ ; | |
{ | |
result = (void *)0; | |
if (! (align <= 16L)) { | |
goto LA3_; | |
} | |
result = allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2(size); | |
goto LA1_; | |
LA3_: | |
base = allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2(((size + align) - 1L) + 2L); | |
offset = align - ((ptrdiff_t )base & (align - 1L)); | |
T6_ = (NI )0; | |
T6_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )base, offset - 2L); | |
*((NU16 *)((void *)T6_)) = (NU16 )offset; | |
T7_ = (NI )0; | |
T7_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )base, offset); | |
result = (void *)T7_; | |
LA1_: ; | |
return (result); | |
} | |
} | |
void *alignedRealloc0__RCSc9brnnLyF1fOxNrJWWwA(void *p , NI oldSize , NI newSize , | |
NI align ) | |
{ | |
void *result ; | |
NI T6_ ; | |
void *T7_ ; | |
{ | |
result = (void *)0; | |
if (! (align <= 16L)) { | |
goto LA3_; | |
} | |
result = realloc0Impl__CRabJkeE1THyovTYlxjdVw(p, oldSize, newSize); | |
goto LA1_; | |
LA3_: | |
result = alignedAlloc__tDURxGxuLs0hKEDbtrBxug_2(newSize, align); | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(result, p, oldSize); | |
T6_ = (NI )0; | |
T6_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )result, oldSize); | |
T7_ = (void *)0; | |
T7_ = (void *)T6_; | |
zeroMem__FsvhfMqbswETmyMWtamDewsystem(T7_, newSize - oldSize); | |
alignedDealloc(p, align); | |
LA1_: ; | |
return (result); | |
} | |
} | |
void *prepareSeqAdd(NI len , void *p , NI addlen , NI elemSize , NI elemAlign ) | |
{ | |
void *result ; | |
NI headerSize ; | |
tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw *p_2 ; | |
NI oldCap ; | |
NI newCap ; | |
NI T9_ ; | |
tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw *q ; | |
void *T14_ ; | |
NI T15_ ; | |
void *T16_ ; | |
NI T17_ ; | |
NI oldSize ; | |
NI newSize ; | |
tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw *q_2 ; | |
void *T19_ ; | |
{ | |
result = (void *)0; | |
headerSize = align__vzThvqZajaR9ct9cQ7SOy1tQ((NI )8, elemAlign); | |
if (! (addlen <= 0L)) { | |
goto LA3_; | |
} | |
result = p; | |
goto LA1_; | |
LA3_: ; | |
if (! ((unsigned long )p == (unsigned long )((void *)0))) { | |
goto LA6_; | |
} | |
result = newSeqPayload(len + addlen, elemSize, elemAlign); | |
goto LA1_; | |
LA6_: | |
p_2 = (tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw *)p; | |
oldCap = p_2->cap & -4611686018427387905L; | |
T9_ = (NI )0; | |
T9_ = resize__cOCDWr16YD4j3dBrbbH3yQsystem(oldCap); | |
if (T9_ >= len + addlen) { | |
newCap = T9_; | |
} else { | |
newCap = len + addlen; | |
} | |
if (! ((p_2->cap & 4611686018427387904L) == 4611686018427387904L)) { | |
goto LA12_; | |
} | |
T14_ = (void *)0; | |
T14_ = alignedAlloc0__tDURxGxuLs0hKEDbtrBxug(headerSize + elemSize * newCap, elemAlign); | |
q = (tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw *)T14_; | |
T15_ = (NI )0; | |
T15_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )q, headerSize); | |
T16_ = (void *)0; | |
T16_ = (void *)T15_; | |
T17_ = (NI )0; | |
T17_ = pluspercent___dgYAo7RfdUVVpvkfKDym8w_2system((ptrdiff_t )p_2, headerSize); | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T16_, (void *)T17_, len * elemSize); | |
q->cap = newCap; | |
result = (void *)q; | |
goto LA10_; | |
LA12_: | |
oldSize = headerSize + elemSize * oldCap; | |
newSize = headerSize + elemSize * newCap; | |
T19_ = (void *)0; | |
T19_ = alignedRealloc0__RCSc9brnnLyF1fOxNrJWWwA((void *)p_2, oldSize, newSize, elemAlign); | |
q_2 = (tyObject_NimSeqPayloadBase__W32WJdQK8sr3oL2BppHZqw *)T19_; | |
q_2->cap = newCap; | |
result = (void *)q_2; | |
LA10_: ; | |
LA1_: ; | |
return (result); | |
} | |
} | |
void add__VHIeeMfqavFfKtbV1Wal0Q(tySequence__uB9b75OUPRENsBAu4AnoePA *x , tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA value ) | |
{ | |
NI oldLen ; | |
NI T1_ ; | |
tyObject_NimSeqV2__A9aaPj3Ay2mWlTU3QheYz2w *xu ; | |
_Bool T4_ ; | |
void *T8_ ; | |
{ | |
T1_ = x->len; | |
oldLen = T1_; | |
xu = (tyObject_NimSeqV2__A9aaPj3Ay2mWlTU3QheYz2w *)x; | |
T4_ = (_Bool)0; | |
T4_ = (_Bool )((unsigned long )xu->p == (unsigned long )((tyObject_NimSeqPayload__T3NJfV3Yh9bN9cuVRNI5QtfQ *)((void *)0))); | |
if (T4_) { | |
goto LA5_; | |
} | |
T4_ = (_Bool )((xu->p)->cap < oldLen + 1L); | |
LA5_: ; | |
if (! T4_) { | |
goto LA6_; | |
} | |
T8_ = (void *)0; | |
T8_ = prepareSeqAdd(oldLen, (void *)xu->p, (NI )1, (NI )24, (NI )8); | |
xu->p = (tyObject_NimSeqPayload__T3NJfV3Yh9bN9cuVRNI5QtfQ *)T8_; | |
LA6_: | |
xu->len = oldLen + 1L; | |
(xu->p)->data[oldLen] = value; | |
return; | |
} | |
} | |
void eqsink___rR9boD7urcxl7uyUtE46AOA(Exception **dest , Exception *src ) | |
{ | |
Exception *colontmp_ ; | |
_Bool T3_ ; | |
{ | |
colontmp_ = *dest; | |
*dest = src; | |
T3_ = (_Bool)0; | |
T3_ = nimDecRefIsLastCyclicDyn((void *)colontmp_); | |
if (! T3_) { | |
goto LA4_; | |
} | |
nimDestroyAndDispose((void *)colontmp_); | |
LA4_: ; | |
return; | |
} | |
} | |
__inline static void pushCurrentException(Exception *e ) | |
{ | |
{ | |
eqcopy___T4HCXq9b9bmRBkztIGW1WmXw(& e->up, currException__9bVPeDJlYTi9bQApZpfH8wjg, | |
(_Bool)1); | |
eqsink___rR9boD7urcxl7uyUtE46AOA(& currException__9bVPeDJlYTi9bQApZpfH8wjg, e); | |
return; | |
} | |
} | |
void raiseExceptionAux__na8C8pUZ9cLQWVwk35l5vfw(Exception *e ) | |
{ | |
_Bool T7_ ; | |
_Bool T16_ ; | |
{ | |
if (! (! ((unsigned long )localRaiseHook__EIvMhANBvB9cp2Ezvt29cADg == (unsigned long )((void *)0)))) { | |
goto LA3_; | |
} | |
T7_ = (_Bool)0; | |
T7_ = (*localRaiseHook__EIvMhANBvB9cp2Ezvt29cADg)(e); | |
if (! (! T7_)) { | |
goto LA8_; | |
} | |
goto BeforeRet_; | |
LA8_: ; | |
LA3_: ; | |
if (! (! ((unsigned long )globalRaiseHook__JbO1ti4ULxrw54m4zNPbpA == (unsigned long )((void *)0)))) { | |
goto LA12_; | |
} | |
T16_ = (_Bool)0; | |
T16_ = (*globalRaiseHook__JbO1ti4ULxrw54m4zNPbpA)(e); | |
if (! (! T16_)) { | |
goto LA17_; | |
} | |
goto BeforeRet_; | |
LA17_: ; | |
LA12_: ; | |
if (! (! ((unsigned long )e == (unsigned long )currException__9bVPeDJlYTi9bQApZpfH8wjg))) { | |
goto LA21_; | |
} | |
pushCurrentException(e); | |
LA21_: | |
nimInErrorMode__759bT87luu8XGcbkw13FUjA = (_Bool )((NI )nimInErrorMode__759bT87luu8XGcbkw13FUjA + 1L); | |
BeforeRet_: ; | |
return; | |
} | |
} | |
void raiseExceptionEx(Exception *e , NCSTRING ename , NCSTRING procname , NCSTRING filename , | |
NI line ) | |
{ | |
_Bool T7_ ; | |
tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA T11_ ; | |
{ | |
if (! ((unsigned long )e->name == (unsigned long )((NCSTRING )0))) { | |
goto LA3_; | |
} | |
e->name = ename; | |
LA3_: | |
T7_ = (_Bool)0; | |
T7_ = (_Bool )(! ((unsigned long )((void *)procname) == (unsigned long )((void *)0))); | |
if (! T7_) { | |
goto LA8_; | |
} | |
T7_ = (_Bool )(! ((unsigned long )((void *)filename) == (unsigned long )((void *)0))); | |
LA8_: ; | |
if (! T7_) { | |
goto LA9_; | |
} | |
nimZeroMem((void *)(& T11_), (NI )sizeof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA )); | |
T11_.procname = procname; | |
T11_.filename = filename; | |
T11_.line = line; | |
add__VHIeeMfqavFfKtbV1Wal0Q(& e->trace, T11_); | |
LA9_: | |
raiseExceptionAux__na8C8pUZ9cLQWVwk35l5vfw(e); | |
return; | |
} | |
} | |
__inline static void nimAddCharV1(NimStringV2 *s , NIM_CHAR c ) | |
{ | |
{ | |
prepareAdd(s, (NI )1); | |
(s->p)->data[s->len] = c; | |
(s->p)->data[s->len + 1L] = (NIM_CHAR )0; | |
(s->len) ++; | |
return; | |
} | |
} | |
void add__8FwY5enLGB0dFerO6Ny9caw(NimStringV2 *x , NCSTRING y ) | |
{ | |
NI i ; | |
{ | |
i = (NI )0; | |
if (! (! ((unsigned long )((void *)y) == (unsigned long )((void *)0)))) { | |
goto LA3_; | |
} | |
while (1) { | |
if (! (! ((int )((NU8 )*(y + i)) == 0))) { | |
goto LA6; | |
} | |
nimAddCharV1(x, *(y + i)); | |
i ++; | |
} | |
LA6: ; | |
LA3_: ; | |
return; | |
} | |
} | |
NimStringV2 dollar___liwwu6qv5HyRiFI58oBO0g(tySequence__uB9b75OUPRENsBAu4AnoePA stackTraceEntries ) | |
{ | |
NimStringV2 result ; | |
tySequence__uB9b75OUPRENsBAu4AnoePA s ; | |
NI i ; | |
NI colontmp_ ; | |
NI T2_ ; | |
NI res ; | |
NI oldLenX60gensym170_ ; | |
NimStringV2 colontmpD_ ; | |
NI kX60gensym170_ ; | |
NI colontmp__2 ; | |
NI res_2 ; | |
{ | |
result.len = (NI )0; | |
result.p = (NimStrPayload *)((void *)0); | |
s.len = (NI )0; | |
s.p = (tySequence__uB9b75OUPRENsBAu4AnoePA_Content *)((void *)0); | |
s = stackTraceEntries; | |
result = rawNewString((NI )2000); | |
i = (NI )0; | |
colontmp_ = (NI )0; | |
T2_ = s.len; | |
colontmp_ = T2_ - 1L; | |
res = (NI )0; | |
while (1) { | |
if (! (res <= colontmp_)) { | |
goto LA4; | |
} | |
i = res; | |
if (! ((s.p)->data[i].line == -10L)) { | |
goto LA7_; | |
} | |
prepareAdd(& result, (NI )17); | |
appendString(& result, (NimStringV2 )TM__Q5wkpxktOdTGvlSRo9bzt9aw_8); | |
goto LA5_; | |
LA7_: ; | |
if (! ((s.p)->data[i].line == -100L)) { | |
goto LA10_; | |
} | |
prepareAdd(& result, (NI )3); | |
appendString(& result, (NimStringV2 )TM__Q5wkpxktOdTGvlSRo9bzt9aw_10); | |
goto LA5_; | |
LA10_: | |
oldLenX60gensym170_ = result.len; | |
add__8FwY5enLGB0dFerO6Ny9caw(& result, (s.p)->data[i].filename); | |
if (! (0L < (s.p)->data[i].line)) { | |
goto LA15_; | |
} | |
colontmpD_.len = (NI )0; | |
colontmpD_.p = (NimStrPayload *)((void *)0); | |
prepareAdd(& result, (NI )1); | |
appendString(& result, (NimStringV2 )TM__Q5wkpxktOdTGvlSRo9bzt9aw_12); | |
colontmpD_ = nimIntToStr((s.p)->data[i].line); | |
prepareAdd(& result, colontmpD_.len); | |
appendString(& result, colontmpD_); | |
goto LA19_; | |
prepareAdd(& result, (NI )2); | |
appendString(& result, (NimStringV2 )TM__Q5wkpxktOdTGvlSRo9bzt9aw_14); | |
prepareAdd(& result, (NI )1); | |
appendString(& result, (NimStringV2 )TM__Q5wkpxktOdTGvlSRo9bzt9aw_16); | |
LA19_: | |
prepareAdd(& result, (NI )1); | |
appendString(& result, (NimStringV2 )TM__Q5wkpxktOdTGvlSRo9bzt9aw_18); | |
eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(& colontmpD_); | |
LA15_: | |
kX60gensym170_ = (NI )0; | |
colontmp__2 = (NI )0; | |
if (1L >= 25L - (result.len - oldLenX60gensym170_)) { | |
colontmp__2 = (NI )1; | |
} else { | |
colontmp__2 = 25L - (result.len - oldLenX60gensym170_); | |
} | |
res_2 = (NI )1; | |
while (1) { | |
if (! (res_2 <= colontmp__2)) { | |
goto LA23; | |
} | |
kX60gensym170_ = res_2; | |
nimAddCharV1(& result, (NIM_CHAR )32); | |
res_2 ++; | |
} | |
LA23: | |
add__8FwY5enLGB0dFerO6Ny9caw(& result, (s.p)->data[i].procname); | |
prepareAdd(& result, (NI )1); | |
appendString(& result, (NimStringV2 )TM__Q5wkpxktOdTGvlSRo9bzt9aw_20); | |
LA5_: | |
res ++; | |
} | |
LA4: ; | |
return (result); | |
} | |
} | |
void reportUnhandledErrorAux__na8C8pUZ9cLQWVwk35l5vfw_3(Exception *e ) | |
{ | |
tyArray__gpc2RrLEcWgv7ONpLYNHOw buf ; | |
NI L ; | |
NI T3_ ; | |
NimStringV2 trace ; | |
void *T10_ ; | |
NCSTRING tmp ; | |
void *T19_ ; | |
NCSTRING tmp___0 ; | |
void *T28_ ; | |
NI tmp___1 ; | |
NI tmp___2 ; | |
NI tmp___3 ; | |
NI tmp___4 ; | |
NI tmp___5 ; | |
NI tmp___6 ; | |
NimStringV2 T37_ ; | |
{ | |
nimZeroMem((void *)(buf), (NI )sizeof(tyArray__gpc2RrLEcWgv7ONpLYNHOw )); | |
L = (NI )0; | |
T3_ = e->trace.len; | |
if (! (! (T3_ == 0L))) { | |
goto LA4_; | |
} | |
trace = dollar___liwwu6qv5HyRiFI58oBO0g(e->trace); | |
if (! (L + trace.len < 2000L)) { | |
goto LA8_; | |
} | |
T10_ = (void *)0; | |
tmp = nimToCStringConv(trace); | |
T10_ = (void *)tmp; | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem((void *)(& buf[L]), T10_, trace.len); | |
L += trace.len; | |
LA8_: | |
eqdestroy___dS1BF3Vxjg9aJMmmhVJKSpQ(& trace); | |
LA4_: ; | |
if (! (L + 28L < 2000L)) { | |
goto LA13_; | |
} | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem((void *)(& buf[L]), (void *)"Error: unhandled exception: ", | |
(NI )28); | |
L += 28L; | |
LA13_: ; | |
if (! (L + e->message.len < 2000L)) { | |
goto LA17_; | |
} | |
T19_ = (void *)0; | |
tmp___0 = nimToCStringConv(e->message); | |
T19_ = (void *)tmp___0; | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem((void *)(& buf[L]), T19_, e->message.len); | |
L += e->message.len; | |
LA17_: ; | |
if (! (L + 2L < 2000L)) { | |
goto LA22_; | |
} | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem((void *)(& buf[L]), (void *)" [", (NI )2); | |
L += 2L; | |
LA22_: ; | |
if (e->name) { | |
tmp___1 = nimCStrLen(e->name); | |
tmp___2 = tmp___1; | |
} else { | |
tmp___2 = (NI )0; | |
} | |
if (! (L + tmp___2 < 2000L)) { | |
goto LA26_; | |
} | |
T28_ = (void *)0; | |
T28_ = (void *)e->name; | |
if (e->name) { | |
tmp___3 = nimCStrLen(e->name); | |
tmp___4 = tmp___3; | |
} else { | |
tmp___4 = (NI )0; | |
} | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem((void *)(& buf[L]), T28_, tmp___4); | |
if (e->name) { | |
tmp___5 = nimCStrLen(e->name); | |
tmp___6 = tmp___5; | |
} else { | |
tmp___6 = (NI )0; | |
} | |
L += tmp___6; | |
LA26_: ; | |
if (! (L + 2L < 2000L)) { | |
goto LA31_; | |
} | |
copyMem__i80o3k0SgEI5gTRCzYdyWAsystem((void *)(& buf[L]), (void *)"]\n", (NI )2); | |
L += 2L; | |
LA31_: ; | |
if (! (! ((unsigned long )onUnhandledException__bFrawQlTKZhLweDD36j9b8g == (unsigned long )((void *)0)))) { | |
goto LA35_; | |
} | |
T37_.len = (NI )0; | |
T37_.p = (NimStrPayload *)((void *)0); | |
T37_ = cstrToNimstr(buf); | |
(*onUnhandledException__bFrawQlTKZhLweDD36j9b8g)(T37_); | |
goto LA33_; | |
LA35_: | |
showErrorMessage__T9b42zC1n39bfjypEaUpct0g(buf, L); | |
LA33_: ; | |
return; | |
} | |
} | |
void reportUnhandledError__na8C8pUZ9cLQWVwk35l5vfw_2(Exception *e ) | |
{ | |
{ | |
if (! (! ((unsigned long )unhandledExceptionHook__RJpSsXsRUH8ochbXTEhRIw == (unsigned long )((void *)0)))) { | |
goto LA3_; | |
} | |
(*unhandledExceptionHook__RJpSsXsRUH8ochbXTEhRIw)(e); | |
LA3_: | |
reportUnhandledErrorAux__na8C8pUZ9cLQWVwk35l5vfw_3(e); | |
return; | |
} | |
} | |
void nimTestErrorFlag(void) | |
{ | |
_Bool T3_ ; | |
{ | |
T3_ = (_Bool)0; | |
T3_ = nimInErrorMode__759bT87luu8XGcbkw13FUjA; | |
if (! T3_) { | |
goto LA4_; | |
} | |
T3_ = (_Bool )(! ((unsigned long )currException__9bVPeDJlYTi9bQApZpfH8wjg == (unsigned long )((Exception *)((void *)0)))); | |
LA4_: ; | |
if (! T3_) { | |
goto LA5_; | |
} | |
reportUnhandledError__na8C8pUZ9cLQWVwk35l5vfw_2(currException__9bVPeDJlYTi9bQApZpfH8wjg); | |
eqsink___rR9boD7urcxl7uyUtE46AOA(& currException__9bVPeDJlYTi9bQApZpfH8wjg, (Exception *)((void *)0)); | |
exit((int )((NI )1)); | |
LA5_: ; | |
return; | |
} | |
} | |
void systemInit000(void) | |
{ | |
_Bool *nimErr_ ; | |
long tmp ; | |
{ | |
nimErr_ = nimErrorFlag(); | |
initStackBottom(); | |
registerSignalHandler__amVlU9ajqZ06ujoesRBHcDg_2(); | |
tmp = __builtin_expect((long )*nimErr_, 0L); | |
if (tmp) { | |
} | |
return; | |
} | |
} | |
void systemDatInit000(void) | |
{ | |
{ | |
NTIv2__iLZrPn9anoh9ad1MmO0RczFw_.destructor = (void *)(& eqdestroy___SYSukaUCM8gzz0Sv57LsMA); | |
NTIv2__iLZrPn9anoh9ad1MmO0RczFw_.size = (NI )sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw ); | |
NTIv2__iLZrPn9anoh9ad1MmO0RczFw_.align = (NI )__alignof__(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw ); | |
NTIv2__iLZrPn9anoh9ad1MmO0RczFw_.name = (NCSTRING )"|IOError|CatchableError|Exception|RootObj|"; | |
NTIv2__iLZrPn9anoh9ad1MmO0RczFw_.traceImpl = (void *)(& eqtrace___kt5U9cg2uLmsGJJLbv82xUA); | |
NTIv2__iLZrPn9anoh9ad1MmO0RczFw_.disposeImpl = (void *)(& eqdispose___SYSukaUCM8gzz0Sv57LsMA_2); | |
return; | |
} | |
} | |
#pragma merger("0","/tmp/cil-zGBWompS.i","-w,-fmax-errors=3,-O3,-fno-strict-aliasing,-fno-ident") | |
#pragma GCC diagnostic ignored "-Wpragmas" | |
#pragma GCC diagnostic ignored "-Wwritable-strings" | |
#pragma GCC diagnostic ignored "-Winvalid-noreturn" | |
#pragma GCC diagnostic ignored "-Wformat" | |
#pragma GCC diagnostic ignored "-Wlogical-not-parentheses" | |
#pragma GCC diagnostic ignored "-Wlogical-op-parentheses" | |
#pragma GCC diagnostic ignored "-Wshadow" | |
#pragma GCC diagnostic ignored "-Wunused-function" | |
#pragma GCC diagnostic ignored "-Wunused-variable" | |
#pragma GCC diagnostic ignored "-Winvalid-offsetof" | |
#pragma GCC diagnostic ignored "-Wtautological-compare" | |
#pragma GCC diagnostic ignored "-Wswitch-bool" | |
#pragma GCC diagnostic ignored "-Wmacro-redefined" | |
#pragma GCC diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers" | |
#pragma GCC diagnostic ignored "-Wpointer-bool-conversion" | |
#pragma GCC diagnostic ignored "-Wconstant-conversion" | |
__inline static void initStackBottomWith(void *locals ) ; | |
void NimMainModule(void) ; | |
static struct __anonstruct_TM__xLHv575t3PG1lB5wK05Xqg_3_60456539 const TM__xLHv575t3PG1lB5wK05Xqg_3 = {(NI )(20UL | (1UL << 62)), | |
{(NIM_CHAR )'H', (NIM_CHAR )'e', (NIM_CHAR )'l', (NIM_CHAR )'l', (NIM_CHAR )'o', | |
(NIM_CHAR )',', (NIM_CHAR )' ', (NIM_CHAR )'a', (NIM_CHAR )'m', (NIM_CHAR )'a', | |
(NIM_CHAR )'l', (NIM_CHAR )'g', (NIM_CHAR )'a', (NIM_CHAR )'m', (NIM_CHAR )'a', | |
(NIM_CHAR )'t', (NIM_CHAR )'i', (NIM_CHAR )'o', (NIM_CHAR )'n', (NIM_CHAR )'!', | |
(NIM_CHAR )'\000'}}; | |
static NimStringV2 TM__xLHv575t3PG1lB5wK05Xqg_2[1] = { {(NI )20, (NimStrPayload *)(& TM__xLHv575t3PG1lB5wK05Xqg_3)}}; | |
__inline static void initStackBottomWith(void *locals ) | |
{ | |
{ | |
return; | |
} | |
} | |
void PreMainInner(void) | |
{ | |
{ | |
return; | |
} | |
} | |
int cmdCount ; | |
char **cmdLine ; | |
char **gEnv ; | |
void PreMain(void) | |
{ | |
void (* volatile inner)(void) ; | |
{ | |
inner = (void (* volatile )(void))(& PreMainInner); | |
systemDatInit000(); | |
systemInit000(); | |
(*inner)(); | |
return; | |
} | |
} | |
void NimMainInner(void) | |
{ | |
{ | |
NimMainModule(); | |
return; | |
} | |
} | |
void NimMain(void) | |
{ | |
void (* volatile inner)(void) ; | |
{ | |
PreMain(); | |
inner = (void (* volatile )(void))(& NimMainInner); | |
initStackBottomWith((void *)(& inner)); | |
(*inner)(); | |
return; | |
} | |
} | |
int main(int argc , char **args , char **env ) | |
{ | |
{ | |
cmdLine = args; | |
cmdCount = argc; | |
gEnv = env; | |
NimMain(); | |
return ((int )nim_program_result); | |
} | |
} | |
void NimMainModule(void) | |
{ | |
{ | |
echoBinSafe((NimStringV2 *)(TM__xLHv575t3PG1lB5wK05Xqg_2), (NI )1); | |
nimTestErrorFlag(); | |
return; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment