diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim index 5ebe0323d..9015c57a5 100644 --- a/compiler/ccgstmts.nim +++ b/compiler/ccgstmts.nim @@ -509,7 +509,7 @@ proc genWhileStmt(p: BProc, t: PNode) = # for closure support weird loop bodies are generated: if loopBody.len == 2 and loopBody.sons[0].kind == nkEmpty: loopBody = loopBody.sons[1] - genComputedGoto(p, loopBody) # TODO foobar + genComputedGoto(p, loopBody) else: p.breakIdx = startBlock(p, "while (1) {$n") p.blocks[p.breakIdx].isLoop = true @@ -874,15 +874,15 @@ proc genTryCpp(p: BProc, t: PNode, d: var TLoc) = discard pop(p.nestedTryStmts) - if not catchAllPresent and t[^1].kind == nkFinally: - # finally requires catch all presence - startBlock(p, "catch (...) {$n") - genSimpleBlock(p, t[^1][0]) - line(p, cpsStmts, ~"throw;$n") - endBlock(p) - if t[^1].kind == nkFinally: - genSimpleBlock(p, t[^1][0]) + if catchAllPresent: + genSimpleBlock(p, t[^1][0]) + else: + # finally requires catch all presence + startBlock(p, "catch (...) {$n") + genSimpleBlock(p, t[^1][0]) + line(p, cpsStmts, ~"throw;$n") + endBlock(p) proc genTry(p: BProc, t: PNode, d: var TLoc) = # code to generate: