diff options
Diffstat (limited to 'rod/ccgstmts.nim')
-rwxr-xr-x | rod/ccgstmts.nim | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/rod/ccgstmts.nim b/rod/ccgstmts.nim index 9171b5fb8..348615cce 100755 --- a/rod/ccgstmts.nim +++ b/rod/ccgstmts.nim @@ -715,10 +715,12 @@ proc genStmts(p: BProc, t: PNode) = of nkProcDef, nkMethodDef, nkConverterDef: if (t.sons[genericParamsPos] == nil): prc = t.sons[namePos].sym - if not (optDeadCodeElim in gGlobalOptions) and - not (sfDeadCodeElim in getModule(prc).flags) or + if (optDeadCodeElim notin gGlobalOptions and + sfDeadCodeElim notin getModule(prc).flags) or ({sfExportc, sfCompilerProc} * prc.flags == {sfExportc}) or + (sfExportc in prc.flags and lfExportLib in prc.loc.flags) or (prc.kind == skMethod): + # we have not only the header: if (t.sons[codePos] != nil) or (lfDynamicLib in prc.loc.flags): genProc(p.module, prc) else: internalError(t.info, "genStmts(" & $t.kind & ')') |