/* Generated by Nimrod Compiler v0.9.5 */
/*   (c) 2014 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, i386, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing  -I/build/nimrod/src/nimrod/lib -o compiler/nimcache/semdata.o compiler/nimcache/semdata.c */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <string.h>
typedef struct tsymseq188805 tsymseq188805;
typedef struct tsym188833 tsym188833;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tcell41090 tcell41090;
typedef struct tcellseq41106 tcellseq41106;
typedef struct tgcheap43016 tgcheap43016;
typedef struct tcellset41102 tcellset41102;
typedef struct tpagedesc41098 tpagedesc41098;
typedef struct tmemregion23410 tmemregion23410;
typedef struct tsmallchunk22638 tsmallchunk22638;
typedef struct tllchunk23404 tllchunk23404;
typedef struct tbigchunk22640 tbigchunk22640;
typedef struct tintset22615 tintset22615;
typedef struct ttrunk22611 ttrunk22611;
typedef struct tavlnode23408 tavlnode23408;
typedef struct tgcstat43014 tgcstat43014;
typedef struct tcontext250019 tcontext250019;
typedef struct tpasscontext246003 tpasscontext246003;
typedef struct TNimObject TNimObject;
typedef struct tscope188827 tscope188827;
typedef struct tproccon250009 tproccon250009;
typedef struct tintset185047 tintset185047;
typedef struct ttrunk185043 ttrunk185043;
typedef struct ttrunkseq185045 ttrunkseq185045;
typedef struct tlinkedlist118023 tlinkedlist118023;
typedef struct tlistentry118017 tlistentry118017;
typedef struct tidtable188849 tidtable188849;
typedef struct tidpairseq188847 tidpairseq188847;
typedef struct tidpair188845 tidpair188845;
typedef struct tidobj167013 tidobj167013;
typedef struct tnode188803 tnode188803;
typedef struct ttype188837 ttype188837;
typedef struct tlineinfo163527 tlineinfo163527;
typedef struct tstrtable188807 tstrtable188807;
typedef struct tctx249037 tctx249037;
typedef struct TY250131 TY250131;
typedef struct tinstantiationpair250011 tinstantiationpair250011;
typedef struct tinstantiation188823 tinstantiation188823;
typedef struct TY530403 TY530403;
typedef struct TY530406 TY530406;
typedef struct toptionentry250003 toptionentry250003;
typedef struct tlib188821 tlib188821;
typedef struct ttypeseq188835 ttypeseq188835;
typedef struct tloc188817 tloc188817;
typedef struct trope145007 trope145007;
typedef struct NimStringDesc NimStringDesc;
typedef struct tident167019 tident167019;
typedef struct tnodeseq188797 tnodeseq188797;
typedef struct TY79484 TY79484;
typedef struct TY188933 TY188933;
typedef struct tbasechunk22636 tbasechunk22636;
typedef struct tfreecell22628 tfreecell22628;
typedef struct TY249229 TY249229;
typedef struct TY164208 TY164208;
typedef struct pprocHEX3Aobjecttype249216 pprocHEX3Aobjecttype249216;
typedef struct TY188922 TY188922;
typedef struct TY249217 TY249217;
typedef struct tblock249023 tblock249023;
typedef struct TY249198 TY249198;
typedef struct TY249223 TY249223;
struct  TGenericSeq  {
NI len;
NI reserved;
};
typedef N_NIMCALL_PTR(void, TY2289) (void* p, NI op);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY2289 marker;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  tcell41090  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq41106  {
NI Len;
NI Cap;
tcell41090** D;
};
struct  tcellset41102  {
NI Counter;
NI Max;
tpagedesc41098* Head;
tpagedesc41098** Data;
};
typedef tsmallchunk22638* TY23422[512];
typedef ttrunk22611* ttrunkbuckets22613[256];
struct  tintset22615  {
ttrunkbuckets22613 Data;
};
struct  tmemregion23410  {
NI Minlargeobj;
NI Maxlargeobj;
TY23422 Freesmallchunks;
tllchunk23404* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk22640* Freechunkslist;
tintset22615 Chunkstarts;
tavlnode23408* Root;
tavlnode23408* Deleted;
tavlnode23408* Last;
tavlnode23408* Freeavlnodes;
};
struct  tgcstat43014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap43016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq41106 Zct;
tcellseq41106 Decstack;
tcellset41102 Cycleroots;
tcellseq41106 Tempstack;
NI Recgclock;
tmemregion23410 Region;
tgcstat43014 Stat;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tpasscontext246003  {
  TNimObject Sup;
NIM_BOOL Fromcache;
};
struct  tintset185047  {
NI Counter;
NI Max;
ttrunk185043* Head;
ttrunkseq185045* Data;
};
struct  tlinkedlist118023  {
tlistentry118017* Head;
tlistentry118017* Tail;
NI Counter;
};
struct  tidpair188845  {
tidobj167013* Key;
TNimObject* Val;
};
struct  tidtable188849  {
NI Counter;
tidpairseq188847* Data;
};
typedef N_NIMCALL_PTR(tnode188803*, TY250061) (tcontext250019* c, tnode188803* n);
typedef N_NIMCALL_PTR(tnode188803*, TY250066) (tcontext250019* c, tnode188803* n, NU16 flags);
typedef N_NIMCALL_PTR(tnode188803*, TY250074) (tcontext250019* c, tnode188803* n, NU16 flags, NIM_BOOL buffererrors);
typedef N_NIMCALL_PTR(tnode188803*, TY250083) (tcontext250019* c, tnode188803* n);
typedef N_NIMCALL_PTR(tnode188803*, TY250088) (tcontext250019* c, tnode188803* n, NU16 flags);
typedef N_NIMCALL_PTR(tnode188803*, TY250096) (tcontext250019* c, tnode188803* n);
typedef N_NIMCALL_PTR(tnode188803*, TY250101) (tcontext250019* c, tnode188803* n, tnode188803* norig, NU32 filter);
typedef N_NIMCALL_PTR(ttype188837*, TY250108) (tcontext250019* c, tnode188803* n, ttype188837* prev);
typedef struct {
N_NIMCALL_PTR(tnode188803*, ClPrc) (tcontext250019* c, tidtable188849 pt, tnode188803* n, void* ClEnv);
void* ClEnv;
} TY250114;
struct  tlineinfo163527  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
typedef struct {
N_NIMCALL_PTR(tsym188833*, ClPrc) (tcontext250019* c, tsym188833* fn, tidtable188849 pt, tlineinfo163527 info, void* ClEnv);
void* ClEnv;
} TY250120;
struct  tstrtable188807  {
NI Counter;
tsymseq188805* Data;
};
struct  tinstantiationpair250011  {
tsym188833* Genericsym;
tinstantiation188823* Inst;
};
struct  tcontext250019  {
  tpasscontext246003 Sup;
tsym188833* Module;
tscope188827* Currentscope;
tscope188827* Importtable;
tscope188827* Toplevelscope;
tproccon250009* P;
tsym188833* Friendmodule;
NI Instcounter;
tintset185047 Ambiguoussymbols;
NI Intypeclass;
NI Ingenericcontext;
NI Inunrolledcontext;
NI Incompilescontext;
NI Ingenericinst;
tsymseq188805* Converters;
tsymseq188805* Patterns;
tlinkedlist118023 Optionstack;
tidtable188849 Symmapping;
tlinkedlist118023 Libs;
TY250061 Semconstexpr;
TY250066 Semexpr;
TY250074 Semtryexpr;
TY250083 Semtryconstexpr;
TY250088 Semoperand;
TY250096 Semconstboolexpr;
TY250101 Semoverloadedcall;
TY250108 Semtypenode;
TY250114 Seminferredlambda;
TY250120 Semgenerateinstance;
tintset185047 Includedfiles;
tstrtable188807 Userpragmas;
tctx249037* Evalcontext;
tintset185047 Unknownidents;
TY250131* Generics;
NI Lastgenericidx;
NI Hloloopdetector;
};
struct  tproccon250009  {
tsym188833* Owner;
tsym188833* Resultsym;
NI Nestedloopcounter;
NI Nestedblockcounter;
NI Intrystmt;
tproccon250009* Next;
};
struct TY530403 {
void* Field0;
TY530406* Field1;
};
struct TY530406 {
char dummy;
};
struct  tlistentry118017  {
  TNimObject Sup;
tlistentry118017* Prev;
tlistentry118017* Next;
};
struct  toptionentry250003  {
  tlistentry118017 Sup;
NU32 Options;
NU8 Defaultcc;
tlib188821* Dynlib;
NU64 Notes;
tnode188803* Otherpragmas;
};
struct  tidobj167013  {
  TNimObject Sup;
NI Id;
};
struct  tloc188817  {
NU8 K;
NU8 S;
NU8 Flags;
ttype188837* T;
trope145007* R;
trope145007* Heaproot;
NI A;
};
struct  ttype188837  {
  tidobj167013 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq188835* Sons;
tnode188803* N;
tsym188833* Destructor;
tsym188833* Owner;
tsym188833* Sym;
NI64 Size;
NI Align;
tloc188817 Loc;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  tnode188803  {
ttype188837* Typ;
tlineinfo163527 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym188833* Sym;
} S4;
struct {tident167019* Ident;
} S5;
struct {tnodeseq188797* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct TY79484 {
NimStringDesc* Field0;
NI Field1;
};
typedef tnode188803* TY207692[1];
typedef ttype188837* TY350968[1];
typedef ttype188837* TY250763[2];
typedef tnode188803* TY251116[2];
struct  tlib188821  {
  tlistentry118017 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope145007* Name;
tnode188803* Path;
};
struct  tsym188833  {
  tidobj167013 Sup;
NU8 Kind;
union {
struct {ttypeseq188835* Typeinstcache;
tscope188827* Typscope;
} S1;
struct {TY188933* Procinstcache;
tscope188827* Scope;
} S2;
struct {TY188933* Usedgenerics;
tstrtable188807 Tab;
} S3;
} kindU;
NU16 Magic;
ttype188837* Typ;
tident167019* Name;
tlineinfo163527 Info;
tsym188833* Owner;
NU32 Flags;
tnode188803* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc188817 Loc;
tlib188821* Annex;
tnode188803* Constraint;
};
typedef NI TY22618[16];
struct  tpagedesc41098  {
tpagedesc41098* Next;
NI Key;
TY22618 Bits;
};
struct  tbasechunk22636  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk22638  {
  tbasechunk22636 Sup;
tsmallchunk22638* Next;
tsmallchunk22638* Prev;
tfreecell22628* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk23404  {
NI Size;
NI Acc;
tllchunk23404* Next;
};
struct  tbigchunk22640  {
  tbasechunk22636 Sup;
tbigchunk22640* Next;
tbigchunk22640* Prev;
NI Align;
NF Data;
};
struct  ttrunk22611  {
ttrunk22611* Next;
NI Key;
TY22618 Bits;
};
typedef tavlnode23408* TY23414[2];
struct  tavlnode23408  {
TY23414 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  tscope188827  {
NI Depthlevel;
tstrtable188807 Symbols;
tnodeseq188797* Usingsyms;
tscope188827* Parent;
};
struct  ttrunk185043  {
ttrunk185043* Next;
NI Key;
TY22618 Bits;
};
struct  tctx249037  {
  tpasscontext246003 Sup;
TY249229* Code;
TY164208* Debug;
tnode188803* Globals;
tnode188803* Constants;
ttypeseq188835* Types;
tnode188803* Currentexceptiona;
tnode188803* Currentexceptionb;
NI Exceptioninstr;
pprocHEX3Aobjecttype249216* Prc;
tsym188833* Module;
tnode188803* Callsite;
NU8 Mode;
NU8 Features;
NIM_BOOL Traceactive;
NI Loopiterations;
};
struct  tinstantiation188823  {
tsym188833* Sym;
ttypeseq188835* Concretetypes;
TY188922* Usedby;
};
struct  trope145007  {
  TNimObject Sup;
trope145007* Left;
trope145007* Right;
NI Length;
NimStringDesc* Data;
};
struct  tident167019  {
  tidobj167013 Sup;
NimStringDesc* S;
tident167019* Next;
NI H;
};
struct  tfreecell22628  {
tfreecell22628* Next;
NI Zerofield;
};
struct  tblock249023  {
tsym188833* Label;
TY249198* Fixups;
};
struct TY249223 {
NIM_BOOL Field0;
NU8 Field1;
};
typedef TY249223 TY249220[256];
struct  pprocHEX3Aobjecttype249216  {
TY249217* Blocks;
tsym188833* Sym;
TY249220 Slots;
NI Maxslots;
};
struct tsymseq188805 {
  TGenericSeq Sup;
  tsym188833* data[SEQ_DECL_SIZE];
};
struct ttrunkseq185045 {
  TGenericSeq Sup;
  ttrunk185043* data[SEQ_DECL_SIZE];
};
struct tidpairseq188847 {
  TGenericSeq Sup;
  tidpair188845 data[SEQ_DECL_SIZE];
};
struct TY250131 {
  TGenericSeq Sup;
  tinstantiationpair250011 data[SEQ_DECL_SIZE];
};
struct ttypeseq188835 {
  TGenericSeq Sup;
  ttype188837* data[SEQ_DECL_SIZE];
};
struct tnodeseq188797 {
  TGenericSeq Sup;
  tnode188803* data[SEQ_DECL_SIZE];
};
struct TY188933 {
  TGenericSeq Sup;
  tinstantiation188823* data[SEQ_DECL_SIZE];
};
struct TY249229 {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct TY164208 {
  TGenericSeq Sup;
  tlineinfo163527 data[SEQ_DECL_SIZE];
};
struct TY188922 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct TY249198 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY249217 {
  TGenericSeq Sup;
  tblock249023 data[SEQ_DECL_SIZE];
};
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(tcell41090*, usrtocell_44443)(void* usr);
static N_INLINE(void, rtladdzct_46002)(tcell41090* c);
N_NOINLINE(void, addzct_44418)(tcellseq41106* s, tcell41090* c);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP1828)(void* p, NI op);
N_NIMCALL(void, TMP1830)(void* p, NI op);
N_NIMCALL(void, TMP1851)(void* p, NI op);
N_NIMCALL(void, TMP1852)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(void, initintset_185918)(tintset185047* Result);
N_NIMCALL(void, initlinkedlist_118036)(tlinkedlist118023* list);
N_NIMCALL(void, append_118042)(tlinkedlist118023* list, tlistentry118017* entry);
N_NIMCALL(toptionentry250003*, newoptionentry_250158)(void);
N_NIMCALL(void, TMP1857)(void* p, NI op);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_46827)(tcell41090* c);
static N_INLINE(NIM_BOOL, canbecycleroot_44462)(tcell41090* c);
static N_INLINE(void, rtladdcycleroot_45235)(tcell41090* c);
N_NOINLINE(void, incl_41855)(tcellset41102* s, tcell41090* cell);
static N_INLINE(void, decref_46402)(tcell41090* c);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
N_NIMCALL(void, initstrtable_189110)(tstrtable188807* x);
N_NIMCALL(ttype188837*, newtypes_250180)(NU8 kind, tcontext250019* c);
N_NIMCALL(ttype188837*, newtype_189060)(NU8 kind, tsym188833* owner);
N_NIMCALL(tsym188833*, getcurrowner_250215)(void);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src_74604, TNimType* mt);
N_NIMCALL(void, globalerror_165558)(tlineinfo163527 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, rendertree_211051)(tnode188803* n, NU8 renderflags);
static N_INLINE(NI, sonslen_189181)(tnode188803* n);
N_NIMCALL(void, illformedast_251203)(tnode188803* n);
N_NIMCALL(void, addsonskipintlit_242461)(ttype188837* father, ttype188837* son);
N_NIMCALL(void, internalerror_165606)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, HEX24_165714)(TY79484 x_165718);
N_NIMCALL(tnode188803*, newnodei_189099)(NU8 kind, tlineinfo163527 info);
N_NIMCALL(void, addson_189207)(tnode188803* father, tnode188803* son);
N_NIMCALL(tnode188803*, newinttypenode_189074)(NU8 kind, NI64 intval, ttype188837* typ);
N_NIMCALL(ttype188837*, newtypewithsons_250675)(tcontext250019* c, NU8 kind, ttypeseq188835* sons);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, propagatetoowner_192852)(ttype188837* owner, ttype188837* elem);
N_NIMCALL(ttype188837*, getsystype_242024)(NU8 kind);
N_NIMCALL(tnode188803*, newnode_191003)(NU8 kind, tlineinfo163527 info, tnodeseq188797* sons, ttype188837* typ);
N_NIMCALL(tnode188803*, makestaticexpr_250684)(tcontext250019* c, tnode188803* n);
N_NIMCALL(tnode188803*, nminusone_251051)(tnode188803* n);
N_NIMCALL(tnode188803*, newsymnode_189095)(tsym188833* sym);
N_NIMCALL(tsym188833*, getsysmagic_242128)(NimStringDesc* name, NU16 m);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(ttype188837*, errortype_251136)(tcontext250019* c);
N_NIMCALL(ttype188837*, maketypedesc_250627)(tcontext250019* c, ttype188837* typ);
N_NIMCALL(tsym188833*, linkto_189797)(tsym188833* s, ttype188837* t);
N_NIMCALL(tsym188833*, newsym_189053)(NU8 symkind, tident167019* name, tsym188833* owner, tlineinfo163527 info);
N_NIMCALL(tnode188803*, newsymnode_190723)(tsym188833* sym, tlineinfo163527 info);
N_NIMCALL(void, inclsym_250470)(tsymseq188805** sq, tsym188833* s);
STRING_LITERAL(TMP2537, "compiler/semdata.nim", 20);
NIM_CONST TY79484 TMP2536 = {((NimStringDesc*) &TMP2537),
211}
;
NIM_CONST TY79484 TMP2545 = {((NimStringDesc*) &TMP2537),
207}
;
STRING_LITERAL(TMP2680, "<", 1);
STRING_LITERAL(TMP2859, "popOwner", 8);
NIM_CONST TY79484 TMP3030 = {((NimStringDesc*) &TMP2537),
203}
;
tsymseq188805* gowners_250247;
extern TNimType NTI188805; /* TSymSeq */
extern tgcheap43016 gch_43044;
extern TNimType NTI246003; /* TPassContext */
TNimType NTI250019; /* TContext */
extern TNimType NTI188801; /* PSym */
extern TNimType NTI188829; /* PScope */
TNimType NTI250009; /* TProcCon */
extern TNimType NTI106; /* int */
TNimType NTI250007; /* PProcCon */
extern TNimType NTI185047; /* TIntSet */
extern TNimType NTI118023; /* TLinkedList */
extern TNimType NTI188849; /* TIdTable */
TNimType NTI250061; /* proc (PContext, PNode): PNode */
TNimType NTI250066; /* proc (PContext, PNode, TExprFlags): PNode */
TNimType NTI250074; /* proc (PContext, PNode, TExprFlags, bool): PNode */
TNimType NTI250083; /* proc (PContext, PNode): PNode */
TNimType NTI250088; /* proc (PContext, PNode, TExprFlags): PNode */
TNimType NTI250096; /* proc (PContext, PNode): PNode */
TNimType NTI250101; /* proc (PContext, PNode, PNode, TSymKinds): PNode */
TNimType NTI250108; /* proc (PContext, PNode, PType): PType */
TNimType NTI250114; /* tuple[pointer, ref tuple[]] */
extern TNimType NTI147; /* pointer */
TNimType NTI530406; /* tuple[] */
TNimType NTI530405; /* ref tuple[] */
TNimType NTI250120; /* tuple[pointer, ref tuple[]] */
extern TNimType NTI188807; /* TStrTable */
extern TNimType NTI249035; /* PCtx */
TNimType NTI250011; /* TInstantiationPair */
extern TNimType NTI188825; /* PInstantiation */
TNimType NTI250131; /* seq[TInstantiationPair] */
TNimType NTI250017; /* PContext */
extern TNimType NTI118017; /* TListEntry */
TNimType NTI250003; /* TOptionEntry */
extern TNimType NTI137012; /* TOptions */
extern TNimType NTI188003; /* TCallingConvention */
extern TNimType NTI188831; /* PLib */
extern TNimType NTI163523; /* TNoteKinds */
extern TNimType NTI188795; /* PNode */
TNimType NTI250005; /* POptionEntry */
extern NU32 goptions_137108;
extern NU64 gnotes_164181;
extern TNimType NTI188835; /* TTypeSeq */
extern TNimType NTI188797; /* TNodeSeq */
extern TNimType NTI188821; /* TLib */
extern tident167019* idanon_167476;

static N_INLINE(tcell41090*, usrtocell_44443)(void* usr) {
	tcell41090* result;
	result = 0;
	result = ((tcell41090*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(tcell41090))))));
	return result;
}

static N_INLINE(void, rtladdzct_46002)(tcell41090* c) {
	addzct_44418(&gch_43044.Zct, c);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tcell41090* c;
	c = usrtocell_44443(p);
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_46002(c);
	}
	LA3: ;
}
N_NIMCALL(void, TMP1828)(void* p, NI op) {
	tproccon250009* a;
	a = (tproccon250009*)p;
	nimGCvisit((void*)(*a).Owner, op);
	nimGCvisit((void*)(*a).Resultsym, op);
	nimGCvisit((void*)(*a).Next, op);
}
N_NIMCALL(void, TMP1830)(void* p, NI op) {
	TY530406* a;
	a = (TY530406*)p;
}
N_NIMCALL(void, TMP1851)(void* p, NI op) {
	TY250131* a;
	NI LOC1;
	a = (TY250131*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Genericsym, op);
	nimGCvisit((void*)a->data[LOC1].Inst, op);
	}
}
N_NIMCALL(void, TMP1852)(void* p, NI op) {
	tcontext250019* a;
	a = (tcontext250019*)p;
	nimGCvisit((void*)(*a).Module, op);
	nimGCvisit((void*)(*a).Currentscope, op);
	nimGCvisit((void*)(*a).Importtable, op);
	nimGCvisit((void*)(*a).Toplevelscope, op);
	nimGCvisit((void*)(*a).P, op);
	nimGCvisit((void*)(*a).Friendmodule, op);
	nimGCvisit((void*)(*a).Ambiguoussymbols.Head, op);
	nimGCvisit((void*)(*a).Ambiguoussymbols.Data, op);
	nimGCvisit((void*)(*a).Converters, op);
	nimGCvisit((void*)(*a).Patterns, op);
	nimGCvisit((void*)(*a).Optionstack.Head, op);
	nimGCvisit((void*)(*a).Optionstack.Tail, op);
	nimGCvisit((void*)(*a).Symmapping.Data, op);
	nimGCvisit((void*)(*a).Libs.Head, op);
	nimGCvisit((void*)(*a).Libs.Tail, op);
	nimGCvisit((void*)(*a).Seminferredlambda.ClEnv, op);
	nimGCvisit((void*)(*a).Semgenerateinstance.ClEnv, op);
	nimGCvisit((void*)(*a).Includedfiles.Head, op);
	nimGCvisit((void*)(*a).Includedfiles.Data, op);
	nimGCvisit((void*)(*a).Userpragmas.Data, op);
	nimGCvisit((void*)(*a).Evalcontext, op);
	nimGCvisit((void*)(*a).Unknownidents.Head, op);
	nimGCvisit((void*)(*a).Unknownidents.Data, op);
	nimGCvisit((void*)(*a).Generics, op);
}
N_NIMCALL(void, TMP1857)(void* p, NI op) {
	toptionentry250003* a;
	a = (toptionentry250003*)p;
	nimGCvisit((void*)(*a).Sup.Prev, op);
	nimGCvisit((void*)(*a).Sup.Next, op);
	nimGCvisit((void*)(*a).Dynlib, op);
	nimGCvisit((void*)(*a).Otherpragmas, op);
}

static N_INLINE(NIM_BOOL, canbecycleroot_44462)(tcell41090* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).Typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_45235)(tcell41090* c) {
	{
		if (!!((((NI) ((NI)((*c).Refcount & 3))) == 3))) goto LA3;
		(*c).Refcount = (NI)((NI)((*c).Refcount & -4) | 3);
		incl_41855(&gch_43044.Cycleroots, c);
	}
	LA3: ;
}

static N_INLINE(void, incref_46827)(tcell41090* c) {
	(*c).Refcount = (NI)((NU32)((*c).Refcount) + (NU32)(8));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_44462(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_45235(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_46402)(tcell41090* c) {
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_46002(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_44462(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_45235(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tcell41090* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_44443(src);
		incref_46827(LOC5);
	}
	LA3: ;
	{
		tcell41090* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_44443((*dest));
		decref_46402(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(toptionentry250003*, newoptionentry_250158)(void) {
	toptionentry250003* result;
	result = 0;
	result = (toptionentry250003*) newObj((&NTI250005), sizeof(toptionentry250003));
	(*result).Sup.Sup.m_type = (&NTI250003);
	(*result).Options = goptions_137108;
	(*result).Defaultcc = ((NU8) 0);
	asgnRef((void**) &(*result).Dynlib, NIM_NIL);
	(*result).Notes = gnotes_164181;
	return result;
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell41090* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_44443(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell41090* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_44443((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA11;
			rtladdzct_46002(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

N_NIMCALL(tcontext250019*, newcontext_250150)(tsym188833* module) {
	tcontext250019* result;
	toptionentry250003* LOC1;
	result = 0;
	result = (tcontext250019*) newObj((&NTI250017), sizeof(tcontext250019));
	(*result).Sup.Sup.m_type = (&NTI250019);
	initintset_185918(&(*result).Ambiguoussymbols);
	initlinkedlist_118036(&(*result).Optionstack);
	initlinkedlist_118036(&(*result).Libs);
	LOC1 = 0;
	LOC1 = newoptionentry_250158();
	append_118042(&(*result).Optionstack, &LOC1->Sup);
	asgnRefNoCycle((void**) &(*result).Module, module);
	asgnRefNoCycle((void**) &(*result).Friendmodule, module);
	if ((*result).Converters) nimGCunrefNoCycle((*result).Converters);
	(*result).Converters = (tsymseq188805*) newSeqRC1((&NTI188805), 0);
	if ((*result).Patterns) nimGCunrefNoCycle((*result).Patterns);
	(*result).Patterns = (tsymseq188805*) newSeqRC1((&NTI188805), 0);
	initintset_185918(&(*result).Includedfiles);
	initstrtable_189110(&(*result).Userpragmas);
	if ((*result).Generics) nimGCunrefNoCycle((*result).Generics);
	(*result).Generics = (TY250131*) newSeqRC1((&NTI250131), 0);
	initintset_185918(&(*result).Unknownidents);
	return result;
}

N_NIMCALL(tsym188833*, getcurrowner_250215)(void) {
	tsym188833* result;
	result = 0;
	result = gowners_250247->data[(gowners_250247->Sup.len-1)];
	return result;
}

N_NIMCALL(ttype188837*, newtypes_250180)(NU8 kind, tcontext250019* c) {
	ttype188837* result;
	tsym188833* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = getcurrowner_250215();
	result = newtype_189060(kind, LOC1);
	return result;
}

N_NIMCALL(ttype188837*, maketypefromexpr_250668)(tcontext250019* c, tnode188803* n) {
	ttype188837* result;
	result = 0;
	result = newtypes_250180(((NU8) 60), c);
	asgnRefNoCycle((void**) &(*result).N, n);
	return result;
}

N_NIMCALL(ttype188837*, newtypewithsons_250675)(tcontext250019* c, NU8 kind, ttypeseq188835* sons) {
	ttype188837* result;
	tsym188833* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = getcurrowner_250215();
	result = newtype_189060(kind, LOC1);
	genericSeqAssign(&(*result).Sons, sons, (&NTI188835));
	return result;
}

N_NIMCALL(ttype188837*, errortype_251136)(tcontext250019* c) {
	ttype188837* result;
	result = 0;
	result = newtypes_250180(((NU8) 50), c);
	return result;
}

N_NIMCALL(void, illformedast_251203)(tnode188803* n) {
	NimStringDesc* LOC1;
	LOC1 = 0;
	LOC1 = rendertree_211051(n, 4);
	globalerror_165558((*n).Info, ((NU16) 1), LOC1);
}

static N_INLINE(NI, sonslen_189181)(tnode188803* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

N_NIMCALL(void, checksonslen_251209)(tnode188803* n, NI length) {
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = sonslen_189181(n);
		if (!!((LOC3 == length))) goto LA4;
		illformedast_251203(n);
	}
	LA4: ;
}

N_NIMCALL(ttype188837*, maketypedesc_250627)(tcontext250019* c, ttype188837* typ) {
	ttype188837* result;
	result = 0;
	result = newtypes_250180(((NU8) 8), c);
	{
		NimStringDesc* LOC5;
		if (!(typ == NIM_NIL)) goto LA3;
		LOC5 = 0;
		LOC5 = HEX24_165714(TMP2536);
		internalerror_165606(LOC5);
	}
	LA3: ;
	addsonskipintlit_242461(result, typ);
	return result;
}

N_NIMCALL(ttype188837*, makevartype_250175)(tcontext250019* c, ttype188837* basetype) {
	ttype188837* result;
	result = 0;
	result = newtypes_250180(((NU8) 23), c);
	{
		NimStringDesc* LOC5;
		if (!(basetype == NIM_NIL)) goto LA3;
		LOC5 = 0;
		LOC5 = HEX24_165714(TMP2545);
		internalerror_165606(LOC5);
	}
	LA3: ;
	addsonskipintlit_242461(result, basetype);
	return result;
}

N_NIMCALL(ttype188837*, makerangetype_251156)(tcontext250019* c, NI64 first, NI64 last, tlineinfo163527 info, ttype188837* inttype) {
	ttype188837* result;
	tnode188803* n;
	tnode188803* LOC1;
	tnode188803* LOC2;
	result = 0;
	n = newnodei_189099(((NU8) 44), info);
	LOC1 = 0;
	LOC1 = newinttypenode_189074(((NU8) 6), first, inttype);
	addson_189207(n, LOC1);
	LOC2 = 0;
	LOC2 = newinttypenode_189074(((NU8) 6), last, inttype);
	addson_189207(n, LOC2);
	result = newtypes_250180(((NU8) 20), c);
	asgnRefNoCycle((void**) &(*result).N, n);
	addsonskipintlit_242461(result, inttype);
	return result;
}

N_NIMCALL(tnode188803*, makestaticexpr_250684)(tcontext250019* c, tnode188803* n) {
	tnode188803* result;
	TY207692 LOC1;
	ttypeseq188835* LOC2;
	TY350968 LOC3;
	result = 0;
	result = newnodei_189099(((NU8) 62), (*n).Info);
	if ((*result).kindU.S6.Sons) nimGCunrefNoCycle((*result).kindU.S6.Sons);
	(*result).kindU.S6.Sons = (tnodeseq188797*) newSeqRC1((&NTI188797), 1);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = n;
	asgnRefNoCycle((void**) &(*result).kindU.S6.Sons->data[0], LOC1[0]);
	LOC2 = 0;
	LOC2 = (ttypeseq188835*) newSeq((&NTI188835), 1);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = (*n).Typ;
	asgnRefNoCycle((void**) &LOC2->data[0], LOC3[0]);
	asgnRefNoCycle((void**) &(*result).Typ, newtypewithsons_250675(c, ((NU8) 59), LOC2));
	return result;
}

N_NIMCALL(ttype188837*, makeandtype_250741)(tcontext250019* c, ttype188837* t1, ttype188837* t2) {
	ttype188837* result;
	TY250763 LOC1;
	result = 0;
	result = newtypes_250180(((NU8) 55), c);
	if ((*result).Sons) nimGCunrefNoCycle((*result).Sons);
	(*result).Sons = (ttypeseq188835*) newSeqRC1((&NTI188835), 2);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = t1;
	LOC1[1] = t2;
	asgnRefNoCycle((void**) &(*result).Sons->data[0], LOC1[0]);
	asgnRefNoCycle((void**) &(*result).Sons->data[1], LOC1[1]);
	propagatetoowner_192852(result, t1);
	propagatetoowner_192852(result, t2);
	(*result).Flags = ((*result).Flags | (((*t1).Flags | (*t2).Flags) & 4194304));
	return result;
}

N_NIMCALL(ttype188837*, makeortype_250856)(tcontext250019* c, ttype188837* t1, ttype188837* t2) {
	ttype188837* result;
	TY250763 LOC1;
	result = 0;
	result = newtypes_250180(((NU8) 56), c);
	if ((*result).Sons) nimGCunrefNoCycle((*result).Sons);
	(*result).Sons = (ttypeseq188835*) newSeqRC1((&NTI188835), 2);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = t1;
	LOC1[1] = t2;
	asgnRefNoCycle((void**) &(*result).Sons->data[0], LOC1[0]);
	asgnRefNoCycle((void**) &(*result).Sons->data[1], LOC1[1]);
	propagatetoowner_192852(result, t1);
	propagatetoowner_192852(result, t2);
	(*result).Flags = ((*result).Flags | (((*t1).Flags | (*t2).Flags) & 4194304));
	return result;
}

N_NIMCALL(ttype188837*, makenottype_250971)(tcontext250019* c, ttype188837* t1) {
	ttype188837* result;
	TY350968 LOC1;
	result = 0;
	result = newtypes_250180(((NU8) 57), c);
	if ((*result).Sons) nimGCunrefNoCycle((*result).Sons);
	(*result).Sons = (ttypeseq188835*) newSeqRC1((&NTI188835), 1);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = t1;
	asgnRefNoCycle((void**) &(*result).Sons->data[0], LOC1[0]);
	propagatetoowner_192852(result, t1);
	(*result).Flags = ((*result).Flags | ((*t1).Flags & 4194304));
	return result;
}

N_NIMCALL(void, checkminsonslen_251215)(tnode188803* n, NI length) {
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = sonslen_189181(n);
		if (!(LOC3 < length)) goto LA4;
		illformedast_251203(n);
	}
	LA4: ;
}

N_NIMCALL(tnode188803*, nminusone_251051)(tnode188803* n) {
	tnode188803* result;
	tnodeseq188797* LOC1;
	TY251116 LOC2;
	tsym188833* LOC3;
	result = 0;
	LOC1 = 0;
	LOC1 = (tnodeseq188797*) newSeq((&NTI188797), 2);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC3 = 0;
	LOC3 = getsysmagic_242128(((NimStringDesc*) &TMP2680), ((NU16) 18));
	LOC2[0] = newsymnode_189095(LOC3);
	LOC2[1] = n;
	asgnRefNoCycle((void**) &LOC1->data[0], LOC2[0]);
	asgnRefNoCycle((void**) &LOC1->data[1], LOC2[1]);
	result = newnode_191003(((NU8) 27), (*n).Info, LOC1, NIM_NIL);
	return result;
}

N_NIMCALL(ttype188837*, makerangewithstaticexpr_251076)(tcontext250019* c, tnode188803* n) {
	ttype188837* result;
	ttype188837* inttype;
	TY350968 LOC1;
	tnodeseq188797* LOC2;
	TY251116 LOC3;
	tnode188803* LOC4;
	result = 0;
	inttype = getsystype_242024(((NU8) 31));
	result = newtypes_250180(((NU8) 20), c);
	if ((*result).Sons) nimGCunrefNoCycle((*result).Sons);
	(*result).Sons = (ttypeseq188835*) newSeqRC1((&NTI188835), 1);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = inttype;
	asgnRefNoCycle((void**) &(*result).Sons->data[0], LOC1[0]);
	LOC2 = 0;
	LOC2 = (tnodeseq188797*) newSeq((&NTI188797), 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = newinttypenode_189074(((NU8) 6), 0, inttype);
	LOC4 = 0;
	LOC4 = nminusone_251051(n);
	LOC3[1] = makestaticexpr_250684(c, LOC4);
	asgnRefNoCycle((void**) &LOC2->data[0], LOC3[0]);
	asgnRefNoCycle((void**) &LOC2->data[1], LOC3[1]);
	asgnRefNoCycle((void**) &(*result).N, newnode_191003(((NU8) 44), (*n).Info, LOC2, NIM_NIL));
	return result;
}

N_NIMCALL(void, pushowner_250218)(tsym188833* owner) {
	gowners_250247 = (tsymseq188805*) incrSeq(&(gowners_250247)->Sup, sizeof(tsym188833*));
	asgnRefNoCycle((void**) &gowners_250247->data[gowners_250247->Sup.len-1], owner);
}

N_NIMCALL(void, makeinstpair_250136)(tsym188833* s, tinstantiation188823* inst, tinstantiationpair250011* Result) {
	unsureAsgnRef((void**) &(*Result).Genericsym, s);
	unsureAsgnRef((void**) &(*Result).Inst, inst);
}

N_NIMCALL(tlib188821*, newlib_250161)(NU8 kind) {
	tlib188821* result;
	result = 0;
	result = (tlib188821*) newObj((&NTI188831), sizeof(tlib188821));
	(*result).Sup.Sup.m_type = (&NTI188821);
	(*result).Kind = kind;
	return result;
}

N_NIMCALL(void, addtolib_250165)(tlib188821* lib, tsym188833* sym) {
	asgnRef((void**) &(*sym).Annex, lib);
}

N_NIMCALL(toptionentry250003*, lastoptionentry_250154)(tcontext250019* c) {
	toptionentry250003* result;
	result = 0;
	result = ((toptionentry250003*) ((*c).Optionstack.Tail));
	return result;
}

N_NIMCALL(void, popowner_250222)(void) {
	NI length;
	length = gowners_250247->Sup.len;
	{
		if (!(0 < length)) goto LA3;
		gowners_250247 = (tsymseq188805*) setLengthSeq(&(gowners_250247)->Sup, sizeof(tsym188833*), (NI32)(length - 1));
	}
	goto LA1;
	LA3: ;
	{
		internalerror_165606(((NimStringDesc*) &TMP2859));
	}
	LA1: ;
}

N_NIMCALL(tnode188803*, errornode_251142)(tcontext250019* c, tnode188803* n) {
	tnode188803* result;
	result = 0;
	result = newnodei_189099(((NU8) 1), (*n).Info);
	asgnRefNoCycle((void**) &(*result).Typ, errortype_251136(c));
	return result;
}

N_NIMCALL(ttype188837*, makeptrtype_250170)(tcontext250019* c, ttype188837* basetype) {
	ttype188837* result;
	result = 0;
	result = newtypes_250180(((NU8) 21), c);
	{
		NimStringDesc* LOC5;
		if (!(basetype == NIM_NIL)) goto LA3;
		LOC5 = 0;
		LOC5 = HEX24_165714(TMP3030);
		internalerror_165606(LOC5);
	}
	LA3: ;
	addsonskipintlit_242461(result, basetype);
	return result;
}

N_NIMCALL(tnode188803*, maketypesymnode_250658)(tcontext250019* c, ttype188837* typ, tlineinfo163527 info) {
	tnode188803* result;
	ttype188837* typedesc;
	tsym188833* sym;
	tsym188833* LOC1;
	tsym188833* LOC2;
	result = 0;
	typedesc = maketypedesc_250627(c, typ);
	LOC1 = 0;
	LOC1 = getcurrowner_250215();
	LOC2 = 0;
	LOC2 = newsym_189053(((NU8) 7), idanon_167476, LOC1, info);
	sym = linkto_189797(LOC2, typedesc);
	result = newsymnode_190723(sym, info);
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, inclsym_250470)(tsymseq188805** sq, tsym188833* s) {
	NI l;
	NI i_250499;
	NI HEX3Atmp_250516;
	NI res_250518;
	l = (*sq)->Sup.len;
	i_250499 = 0;
	HEX3Atmp_250516 = 0;
	HEX3Atmp_250516 = (NI32)(l - 1);
	res_250518 = 0;
	while (1) {
		if (!(res_250518 <= HEX3Atmp_250516)) goto LA1;
		i_250499 = res_250518;
		{
			if (!((*(*sq)->data[i_250499]).Sup.Id == (*s).Sup.Id)) goto LA4;
			goto BeforeRet;
		}
		LA4: ;
		res_250518 += 1;
	} LA1: ;
	(*sq) = (tsymseq188805*) setLengthSeq(&((*sq))->Sup, sizeof(tsym188833*), (NI32)(l + 1));
	asgnRefNoCycle((void**) &(*sq)->data[l], s);
	BeforeRet: ;
}

N_NIMCALL(void, addconverter_250523)(tcontext250019* c, tsym188833* conv) {
	inclsym_250470(&(*c).Converters, conv);
}

N_NIMCALL(void, addpattern_250530)(tcontext250019* c, tsym188833* p) {
	inclsym_250470(&(*c).Patterns, p);
}
N_NOINLINE(void, semdataInit)(void) {
	if (gowners_250247) nimGCunrefNoCycle(gowners_250247);
	gowners_250247 = (tsymseq188805*) newSeqRC1((&NTI188805), 0);
}

N_NOINLINE(void, semdataDatInit)(void) {
static TNimNode* TMP1826[35];
static TNimNode* TMP1827[6];
static TNimNode* TMP1829[2];
static TNimNode* TMP1831[2];
static TNimNode* TMP1850[2];
static TNimNode* TMP1853[5];
static TNimNode TMP838[59];
NTI250019.size = sizeof(tcontext250019);
NTI250019.kind = 17;
NTI250019.base = (&NTI246003);
TMP1826[0] = &TMP838[1];
TMP838[1].kind = 1;
TMP838[1].offset = offsetof(tcontext250019, Module);
TMP838[1].typ = (&NTI188801);
TMP838[1].name = "module";
TMP1826[1] = &TMP838[2];
TMP838[2].kind = 1;
TMP838[2].offset = offsetof(tcontext250019, Currentscope);
TMP838[2].typ = (&NTI188829);
TMP838[2].name = "currentScope";
TMP1826[2] = &TMP838[3];
TMP838[3].kind = 1;
TMP838[3].offset = offsetof(tcontext250019, Importtable);
TMP838[3].typ = (&NTI188829);
TMP838[3].name = "importTable";
TMP1826[3] = &TMP838[4];
TMP838[4].kind = 1;
TMP838[4].offset = offsetof(tcontext250019, Toplevelscope);
TMP838[4].typ = (&NTI188829);
TMP838[4].name = "topLevelScope";
TMP1826[4] = &TMP838[5];
NTI250009.size = sizeof(tproccon250009);
NTI250009.kind = 18;
NTI250009.base = 0;
TMP1827[0] = &TMP838[7];
TMP838[7].kind = 1;
TMP838[7].offset = offsetof(tproccon250009, Owner);
TMP838[7].typ = (&NTI188801);
TMP838[7].name = "owner";
TMP1827[1] = &TMP838[8];
TMP838[8].kind = 1;
TMP838[8].offset = offsetof(tproccon250009, Resultsym);
TMP838[8].typ = (&NTI188801);
TMP838[8].name = "resultSym";
TMP1827[2] = &TMP838[9];
TMP838[9].kind = 1;
TMP838[9].offset = offsetof(tproccon250009, Nestedloopcounter);
TMP838[9].typ = (&NTI106);
TMP838[9].name = "nestedLoopCounter";
TMP1827[3] = &TMP838[10];
TMP838[10].kind = 1;
TMP838[10].offset = offsetof(tproccon250009, Nestedblockcounter);
TMP838[10].typ = (&NTI106);
TMP838[10].name = "nestedBlockCounter";
TMP1827[4] = &TMP838[11];
TMP838[11].kind = 1;
TMP838[11].offset = offsetof(tproccon250009, Intrystmt);
TMP838[11].typ = (&NTI106);
TMP838[11].name = "inTryStmt";
TMP1827[5] = &TMP838[12];
TMP838[12].kind = 1;
TMP838[12].offset = offsetof(tproccon250009, Next);
TMP838[12].typ = (&NTI250007);
TMP838[12].name = "next";
TMP838[6].len = 6; TMP838[6].kind = 2; TMP838[6].sons = &TMP1827[0];
NTI250009.node = &TMP838[6];
NTI250007.size = sizeof(tproccon250009*);
NTI250007.kind = 22;
NTI250007.base = (&NTI250009);
NTI250007.marker = TMP1828;
TMP838[5].kind = 1;
TMP838[5].offset = offsetof(tcontext250019, P);
TMP838[5].typ = (&NTI250007);
TMP838[5].name = "p";
TMP1826[5] = &TMP838[13];
TMP838[13].kind = 1;
TMP838[13].offset = offsetof(tcontext250019, Friendmodule);
TMP838[13].typ = (&NTI188801);
TMP838[13].name = "friendModule";
TMP1826[6] = &TMP838[14];
TMP838[14].kind = 1;
TMP838[14].offset = offsetof(tcontext250019, Instcounter);
TMP838[14].typ = (&NTI106);
TMP838[14].name = "instCounter";
TMP1826[7] = &TMP838[15];
TMP838[15].kind = 1;
TMP838[15].offset = offsetof(tcontext250019, Ambiguoussymbols);
TMP838[15].typ = (&NTI185047);
TMP838[15].name = "ambiguousSymbols";
TMP1826[8] = &TMP838[16];
TMP838[16].kind = 1;
TMP838[16].offset = offsetof(tcontext250019, Intypeclass);
TMP838[16].typ = (&NTI106);
TMP838[16].name = "inTypeClass";
TMP1826[9] = &TMP838[17];
TMP838[17].kind = 1;
TMP838[17].offset = offsetof(tcontext250019, Ingenericcontext);
TMP838[17].typ = (&NTI106);
TMP838[17].name = "inGenericContext";
TMP1826[10] = &TMP838[18];
TMP838[18].kind = 1;
TMP838[18].offset = offsetof(tcontext250019, Inunrolledcontext);
TMP838[18].typ = (&NTI106);
TMP838[18].name = "inUnrolledContext";
TMP1826[11] = &TMP838[19];
TMP838[19].kind = 1;
TMP838[19].offset = offsetof(tcontext250019, Incompilescontext);
TMP838[19].typ = (&NTI106);
TMP838[19].name = "inCompilesContext";
TMP1826[12] = &TMP838[20];
TMP838[20].kind = 1;
TMP838[20].offset = offsetof(tcontext250019, Ingenericinst);
TMP838[20].typ = (&NTI106);
TMP838[20].name = "inGenericInst";
TMP1826[13] = &TMP838[21];
TMP838[21].kind = 1;
TMP838[21].offset = offsetof(tcontext250019, Converters);
TMP838[21].typ = (&NTI188805);
TMP838[21].name = "converters";
TMP1826[14] = &TMP838[22];
TMP838[22].kind = 1;
TMP838[22].offset = offsetof(tcontext250019, Patterns);
TMP838[22].typ = (&NTI188805);
TMP838[22].name = "patterns";
TMP1826[15] = &TMP838[23];
TMP838[23].kind = 1;
TMP838[23].offset = offsetof(tcontext250019, Optionstack);
TMP838[23].typ = (&NTI118023);
TMP838[23].name = "optionStack";
TMP1826[16] = &TMP838[24];
TMP838[24].kind = 1;
TMP838[24].offset = offsetof(tcontext250019, Symmapping);
TMP838[24].typ = (&NTI188849);
TMP838[24].name = "symMapping";
TMP1826[17] = &TMP838[25];
TMP838[25].kind = 1;
TMP838[25].offset = offsetof(tcontext250019, Libs);
TMP838[25].typ = (&NTI118023);
TMP838[25].name = "libs";
TMP1826[18] = &TMP838[26];
NTI250061.size = sizeof(TY250061);
NTI250061.kind = 25;
NTI250061.base = 0;
NTI250061.flags = 3;
TMP838[26].kind = 1;
TMP838[26].offset = offsetof(tcontext250019, Semconstexpr);
TMP838[26].typ = (&NTI250061);
TMP838[26].name = "semConstExpr";
TMP1826[19] = &TMP838[27];
NTI250066.size = sizeof(TY250066);
NTI250066.kind = 25;
NTI250066.base = 0;
NTI250066.flags = 3;
TMP838[27].kind = 1;
TMP838[27].offset = offsetof(tcontext250019, Semexpr);
TMP838[27].typ = (&NTI250066);
TMP838[27].name = "semExpr";
TMP1826[20] = &TMP838[28];
NTI250074.size = sizeof(TY250074);
NTI250074.kind = 25;
NTI250074.base = 0;
NTI250074.flags = 3;
TMP838[28].kind = 1;
TMP838[28].offset = offsetof(tcontext250019, Semtryexpr);
TMP838[28].typ = (&NTI250074);
TMP838[28].name = "semTryExpr";
TMP1826[21] = &TMP838[29];
NTI250083.size = sizeof(TY250083);
NTI250083.kind = 25;
NTI250083.base = 0;
NTI250083.flags = 3;
TMP838[29].kind = 1;
TMP838[29].offset = offsetof(tcontext250019, Semtryconstexpr);
TMP838[29].typ = (&NTI250083);
TMP838[29].name = "semTryConstExpr";
TMP1826[22] = &TMP838[30];
NTI250088.size = sizeof(TY250088);
NTI250088.kind = 25;
NTI250088.base = 0;
NTI250088.flags = 3;
TMP838[30].kind = 1;
TMP838[30].offset = offsetof(tcontext250019, Semoperand);
TMP838[30].typ = (&NTI250088);
TMP838[30].name = "semOperand";
TMP1826[23] = &TMP838[31];
NTI250096.size = sizeof(TY250096);
NTI250096.kind = 25;
NTI250096.base = 0;
NTI250096.flags = 3;
TMP838[31].kind = 1;
TMP838[31].offset = offsetof(tcontext250019, Semconstboolexpr);
TMP838[31].typ = (&NTI250096);
TMP838[31].name = "semConstBoolExpr";
TMP1826[24] = &TMP838[32];
NTI250101.size = sizeof(TY250101);
NTI250101.kind = 25;
NTI250101.base = 0;
NTI250101.flags = 3;
TMP838[32].kind = 1;
TMP838[32].offset = offsetof(tcontext250019, Semoverloadedcall);
TMP838[32].typ = (&NTI250101);
TMP838[32].name = "semOverloadedCall";
TMP1826[25] = &TMP838[33];
NTI250108.size = sizeof(TY250108);
NTI250108.kind = 25;
NTI250108.base = 0;
NTI250108.flags = 3;
TMP838[33].kind = 1;
TMP838[33].offset = offsetof(tcontext250019, Semtypenode);
TMP838[33].typ = (&NTI250108);
TMP838[33].name = "semTypeNode";
TMP1826[26] = &TMP838[34];
NTI250114.size = sizeof(TY530403);
NTI250114.kind = 18;
NTI250114.base = 0;
NTI250114.flags = 2;
TMP1829[0] = &TMP838[36];
TMP838[36].kind = 1;
TMP838[36].offset = offsetof(TY530403, Field0);
TMP838[36].typ = (&NTI147);
TMP838[36].name = "Field0";
TMP1829[1] = &TMP838[37];
NTI530406.size = sizeof(TY530406);
NTI530406.kind = 18;
NTI530406.base = 0;
NTI530406.flags = 3;
TMP838[38].len = 0; TMP838[38].kind = 2;
NTI530406.node = &TMP838[38];
NTI530405.size = sizeof(TY530406*);
NTI530405.kind = 22;
NTI530405.base = (&NTI530406);
NTI530405.flags = 2;
NTI530405.marker = TMP1830;
TMP838[37].kind = 1;
TMP838[37].offset = offsetof(TY530403, Field1);
TMP838[37].typ = (&NTI530405);
TMP838[37].name = "Field1";
TMP838[35].len = 2; TMP838[35].kind = 2; TMP838[35].sons = &TMP1829[0];
NTI250114.node = &TMP838[35];
TMP838[34].kind = 1;
TMP838[34].offset = offsetof(tcontext250019, Seminferredlambda);
TMP838[34].typ = (&NTI250114);
TMP838[34].name = "semInferredLambda";
TMP1826[27] = &TMP838[39];
NTI250120.size = sizeof(TY530403);
NTI250120.kind = 18;
NTI250120.base = 0;
NTI250120.flags = 2;
TMP1831[0] = &TMP838[41];
TMP838[41].kind = 1;
TMP838[41].offset = offsetof(TY530403, Field0);
TMP838[41].typ = (&NTI147);
TMP838[41].name = "Field0";
TMP1831[1] = &TMP838[42];
TMP838[42].kind = 1;
TMP838[42].offset = offsetof(TY530403, Field1);
TMP838[42].typ = (&NTI530405);
TMP838[42].name = "Field1";
TMP838[40].len = 2; TMP838[40].kind = 2; TMP838[40].sons = &TMP1831[0];
NTI250120.node = &TMP838[40];
TMP838[39].kind = 1;
TMP838[39].offset = offsetof(tcontext250019, Semgenerateinstance);
TMP838[39].typ = (&NTI250120);
TMP838[39].name = "semGenerateInstance";
TMP1826[28] = &TMP838[43];
TMP838[43].kind = 1;
TMP838[43].offset = offsetof(tcontext250019, Includedfiles);
TMP838[43].typ = (&NTI185047);
TMP838[43].name = "includedFiles";
TMP1826[29] = &TMP838[44];
TMP838[44].kind = 1;
TMP838[44].offset = offsetof(tcontext250019, Userpragmas);
TMP838[44].typ = (&NTI188807);
TMP838[44].name = "userPragmas";
TMP1826[30] = &TMP838[45];
TMP838[45].kind = 1;
TMP838[45].offset = offsetof(tcontext250019, Evalcontext);
TMP838[45].typ = (&NTI249035);
TMP838[45].name = "evalContext";
TMP1826[31] = &TMP838[46];
TMP838[46].kind = 1;
TMP838[46].offset = offsetof(tcontext250019, Unknownidents);
TMP838[46].typ = (&NTI185047);
TMP838[46].name = "unknownIdents";
TMP1826[32] = &TMP838[47];
NTI250011.size = sizeof(tinstantiationpair250011);
NTI250011.kind = 18;
NTI250011.base = 0;
NTI250011.flags = 2;
TMP1850[0] = &TMP838[49];
TMP838[49].kind = 1;
TMP838[49].offset = offsetof(tinstantiationpair250011, Genericsym);
TMP838[49].typ = (&NTI188801);
TMP838[49].name = "genericSym";
TMP1850[1] = &TMP838[50];
TMP838[50].kind = 1;
TMP838[50].offset = offsetof(tinstantiationpair250011, Inst);
TMP838[50].typ = (&NTI188825);
TMP838[50].name = "inst";
TMP838[48].len = 2; TMP838[48].kind = 2; TMP838[48].sons = &TMP1850[0];
NTI250011.node = &TMP838[48];
NTI250131.size = sizeof(TY250131*);
NTI250131.kind = 24;
NTI250131.base = (&NTI250011);
NTI250131.flags = 2;
NTI250131.marker = TMP1851;
TMP838[47].kind = 1;
TMP838[47].offset = offsetof(tcontext250019, Generics);
TMP838[47].typ = (&NTI250131);
TMP838[47].name = "generics";
TMP1826[33] = &TMP838[51];
TMP838[51].kind = 1;
TMP838[51].offset = offsetof(tcontext250019, Lastgenericidx);
TMP838[51].typ = (&NTI106);
TMP838[51].name = "lastGenericIdx";
TMP1826[34] = &TMP838[52];
TMP838[52].kind = 1;
TMP838[52].offset = offsetof(tcontext250019, Hloloopdetector);
TMP838[52].typ = (&NTI106);
TMP838[52].name = "hloLoopDetector";
TMP838[0].len = 35; TMP838[0].kind = 2; TMP838[0].sons = &TMP1826[0];
NTI250019.node = &TMP838[0];
NTI250017.size = sizeof(tcontext250019*);
NTI250017.kind = 22;
NTI250017.base = (&NTI250019);
NTI250017.marker = TMP1852;
NTI250003.size = sizeof(toptionentry250003);
NTI250003.kind = 17;
NTI250003.base = (&NTI118017);
TMP1853[0] = &TMP838[54];
TMP838[54].kind = 1;
TMP838[54].offset = offsetof(toptionentry250003, Options);
TMP838[54].typ = (&NTI137012);
TMP838[54].name = "options";
TMP1853[1] = &TMP838[55];
TMP838[55].kind = 1;
TMP838[55].offset = offsetof(toptionentry250003, Defaultcc);
TMP838[55].typ = (&NTI188003);
TMP838[55].name = "defaultCC";
TMP1853[2] = &TMP838[56];
TMP838[56].kind = 1;
TMP838[56].offset = offsetof(toptionentry250003, Dynlib);
TMP838[56].typ = (&NTI188831);
TMP838[56].name = "dynlib";
TMP1853[3] = &TMP838[57];
TMP838[57].kind = 1;
TMP838[57].offset = offsetof(toptionentry250003, Notes);
TMP838[57].typ = (&NTI163523);
TMP838[57].name = "notes";
TMP1853[4] = &TMP838[58];
TMP838[58].kind = 1;
TMP838[58].offset = offsetof(toptionentry250003, Otherpragmas);
TMP838[58].typ = (&NTI188795);
TMP838[58].name = "otherPragmas";
TMP838[53].len = 5; TMP838[53].kind = 2; TMP838[53].sons = &TMP1853[0];
NTI250003.node = &TMP838[53];
NTI250005.size = sizeof(toptionentry250003*);
NTI250005.kind = 22;
NTI250005.base = (&NTI250003);
NTI250005.marker = TMP1857;
}

