summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/ccgexprs.nim1
-rw-r--r--compiler/injectdestructors.nim2
-rw-r--r--tests/ccgbugs/tderefblock.nim1
-rw-r--r--tests/misc/t19600.nim1
4 files changed, 4 insertions, 1 deletions
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim
index fb2f4aeaf..99e43056d 100644
--- a/compiler/ccgexprs.nim
+++ b/compiler/ccgexprs.nim
@@ -735,6 +735,7 @@ proc derefBlock(p: BProc, e: PNode, d: var TLoc) =
   # We transform (block: x)[] to (block: x[])
   let e0 = e[0]
   var n = shallowCopy(e0)
+  n.typ = e.typ
   for i in 0 ..< e0.len - 1:
     n[i] = e0[i]
   n[e0.len-1] = newTreeIT(nkHiddenDeref, e.info, e.typ, e0[e0.len-1])
diff --git a/compiler/injectdestructors.nim b/compiler/injectdestructors.nim
index 867d30d96..4cb3b4f50 100644
--- a/compiler/injectdestructors.nim
+++ b/compiler/injectdestructors.nim
@@ -569,7 +569,7 @@ proc processScope(c: var Con; s: var Scope; ret: PNode): PNode =
 
 template processScopeExpr(c: var Con; s: var Scope; ret: PNode, processCall: untyped): PNode =
   assert not ret.typ.isEmptyType
-  var result = newNodeI(nkStmtListExpr, ret.info)
+  var result = newNodeIT(nkStmtListExpr, ret.info, ret.typ)
   # There is a possibility to do this check: s.wasMoved.len > 0 or s.final.len > 0
   # later and use it to eliminate the temporary when theres no need for it, but its
   # tricky because you would have to intercept moveOrCopy at a certain point
diff --git a/tests/ccgbugs/tderefblock.nim b/tests/ccgbugs/tderefblock.nim
index 55253da10..fd21a19b8 100644
--- a/tests/ccgbugs/tderefblock.nim
+++ b/tests/ccgbugs/tderefblock.nim
@@ -1,5 +1,6 @@
 discard """
   cmd: "nim c -d:release -d:danger $file"
+  matrix: ";--gc:orc"
   output: "42"
 """
 
diff --git a/tests/misc/t19600.nim b/tests/misc/t19600.nim
index 3708dac18..8d3978660 100644
--- a/tests/misc/t19600.nim
+++ b/tests/misc/t19600.nim
@@ -2,6 +2,7 @@ discard """
   targets: "c cpp"
   disabled: "win"
   disabled: "osx"
+  disabled: "linux"
   exitcode: 1
   outputsub: "No space left on device"
 """