From 394a56650ae6139786d8cefb838b0e3e282c24a1 Mon Sep 17 00:00:00 2001 From: Clyybber Date: Sun, 28 Jun 2020 17:47:47 +0200 Subject: [PATCH] Fix #14647 (#14776) * Fix #14647 * Correct fix * Typo and add test * For real now :p --- compiler/cgen.nim | 9 +++------ compiler/cgendata.nim | 4 ++-- tests/destructor/tgotoexceptions5.nim | 8 +++++++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/compiler/cgen.nim b/compiler/cgen.nim index cd02ba9b1..99bfe9119 100644 --- a/compiler/cgen.nim +++ b/compiler/cgen.nim @@ -1777,11 +1777,6 @@ proc genModule(m: BModule, cfile: Cfile): Rope = if moduleIsEmpty: result = nil -proc newPreInitProc(m: BModule): BProc = - result = newProc(nil, m) - # little hack so that unique temporaries are generated: - result.labels = 100_000 - proc initProcOptions(m: BModule): TOptions = let opts = m.config.options if sfSystemModule in m.module.flags: opts-{optStackTrace} else: opts @@ -1802,7 +1797,9 @@ proc rawNewModule(g: BModuleList; module: PSym, filename: AbsoluteFile): BModule result.sigConflicts = initCountTable[SigHash]() result.initProc = newProc(nil, result) result.initProc.options = initProcOptions(result) - result.preInitProc = newPreInitProc(result) + result.preInitProc = newProc(nil, result) + result.preInitProc.flags.incl nimErrorFlagDisabled + result.preInitProc.labels = 100_000 # little hack so that unique temporaries are generated initNodeTable(result.dataCache) result.typeStack = @[] result.typeNodesName = getTempName(result) diff --git a/compiler/cgendata.nim b/compiler/cgendata.nim index ce74963e2..a20931be4 100644 --- a/compiler/cgendata.nim +++ b/compiler/cgendata.nim @@ -189,8 +189,8 @@ proc newProc*(prc: PSym, module: BModule): BProc = new(result) result.prc = prc result.module = module - if prc != nil: result.options = prc.options - else: result.options = module.config.options + result.options = if prc != nil: prc.options + else: module.config.options newSeq(result.blocks, 1) result.nestedTryStmts = @[] result.finallySafePoints = @[] diff --git a/tests/destructor/tgotoexceptions5.nim b/tests/destructor/tgotoexceptions5.nim index 0e538d89e..695aab0a4 100644 --- a/tests/destructor/tgotoexceptions5.nim +++ b/tests/destructor/tgotoexceptions5.nim @@ -5,7 +5,7 @@ swallowed before swallowed B ''' - cmd: "nim c --gc:arc --exceptions:goto $file" + cmd: "nim c --gc:arc --exceptions:goto -d:ssl $file" """ # bug #13599 @@ -37,3 +37,9 @@ try: mainB() except: echo "swallowed B" + +# bug #14647 +import httpclient + +newAsyncHttpClient().close() +