summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/transf.nim4
-rw-r--r--tests/ccgbugs/tstringslice.nim15
2 files changed, 14 insertions, 5 deletions
diff --git a/compiler/transf.nim b/compiler/transf.nim
index 7e56f09dc..325ce9d5e 100644
--- a/compiler/transf.nim
+++ b/compiler/transf.nim
@@ -399,7 +399,7 @@ proc transformConv(c: PTransf, n: PNode): PTransNode =
       if diff < 0:
         result = newTransNode(nkObjUpConv, n, 1)
         result[0] = transform(c, n.sons[1])
-      elif diff > 0:
+      elif diff > 0 and diff != high(int):
         result = newTransNode(nkObjDownConv, n, 1)
         result[0] = transform(c, n.sons[1])
       else:
@@ -411,7 +411,7 @@ proc transformConv(c: PTransf, n: PNode): PTransNode =
     if diff < 0:
       result = newTransNode(nkObjUpConv, n, 1)
       result[0] = transform(c, n.sons[1])
-    elif diff > 0:
+    elif diff > 0 and diff != high(int):
       result = newTransNode(nkObjDownConv, n, 1)
       result[0] = transform(c, n.sons[1])
     else:
diff --git a/tests/ccgbugs/tstringslice.nim b/tests/ccgbugs/tstringslice.nim
index d4d1a2294..00c1adf74 100644
--- a/tests/ccgbugs/tstringslice.nim
+++ b/tests/ccgbugs/tstringslice.nim
@@ -1,9 +1,18 @@
 discard """
-  disabled: "true"
+  output: '''1
+1234
+1234
+2
+234
+234
+3
+34
+34
+4
+4
+4'''
 """
 
-# Now the compiler fails with OOM. yay.
-
 # bug #794
 type TRange = range[0..3]