diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-02-29 17:44:15 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2016-02-29 17:44:15 +0100 |
commit | 017969c1462b84297a64bd99e3bcc8c2399b8036 (patch) | |
tree | 5dfc22451ed062ff3d47b3a7b729ede467275475 /compiler | |
parent | 14f48f39fd127819c658aec816a07a63a0d54e15 (diff) | |
parent | 040d4864a4b012f5876b72e5b6c9a3921e1a0674 (diff) | |
download | Nim-017969c1462b84297a64bd99e3bcc8c2399b8036.tar.gz |
Merge pull request #3904 from endragor/fixnocppexceptions
Fixed try statement generation with --noCppExceptions switch
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ccgstmts.nim | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim index 529e59273..f2ceadcce 100644 --- a/compiler/ccgstmts.nim +++ b/compiler/ccgstmts.nim @@ -928,8 +928,10 @@ proc genTry(p: BProc, t: PNode, d: var TLoc) = for j in countup(0, blen - 2): assert(t.sons[i].sons[j].kind == nkType) if orExpr != nil: add(orExpr, "||") - appcg(p.module, orExpr, - "#isObj(#getCurrentException()->Sup.m_type, $1)", + let isObjFormat = if not p.module.compileToCpp: + "#isObj(#getCurrentException()->Sup.m_type, $1)" + else: "#isObj(#getCurrentException()->m_type, $1)" + appcg(p.module, orExpr, isObjFormat, [genTypeInfo(p.module, t.sons[i].sons[j].typ)]) if i > 1: line(p, cpsStmts, "else ") startBlock(p, "if ($1) {$n", [orExpr]) |