summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-02-29 17:44:15 +0100
committerAndreas Rumpf <rumpf_a@web.de>2016-02-29 17:44:15 +0100
commit017969c1462b84297a64bd99e3bcc8c2399b8036 (patch)
tree5dfc22451ed062ff3d47b3a7b729ede467275475 /compiler
parent14f48f39fd127819c658aec816a07a63a0d54e15 (diff)
parent040d4864a4b012f5876b72e5b6c9a3921e1a0674 (diff)
downloadNim-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.nim6
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])