diff options
Diffstat (limited to 'compiler/cgendata.nim')
-rw-r--r-- | compiler/cgendata.nim | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/compiler/cgendata.nim b/compiler/cgendata.nim index bf7daeea6..96e382873 100644 --- a/compiler/cgendata.nim +++ b/compiler/cgendata.nim @@ -11,7 +11,7 @@ import ast, ropes, options, intsets, - tables, ndi, lineinfos, pathutils, modulegraphs + tables, ndi, lineinfos, pathutils, modulegraphs, sets type TLabel* = Rope # for the C generator a label is just a rope @@ -25,7 +25,7 @@ type # this is needed for strange type generation # reasons cfsFieldInfo, # section for field information - cfsTypeInfo, # section for type information + cfsTypeInfo, # section for type information (ag ABI checks) cfsProcHeaders, # section for C procs prototypes cfsData, # section for C constant data cfsVars, # section for C variable declarations @@ -144,6 +144,10 @@ type # without extension) tmpBase*: Rope # base for temp identifier generation typeCache*: TypeCache # cache the generated types + typeABICache*: HashSet[SigHash] # cache for ABI checks; reusing typeCache + # would be ideal but for some reason enums + # don't seem to get cached so it'd generate + # 1 ABI check per occurence in code forwTypeCache*: TypeCache # cache for forward declarations of types declaredThings*: IntSet # things we have declared in this .c file declaredProtos*: IntSet # prototypes we have declared in this .c file |