summary refs log tree commit diff stats
path: root/tests/ccgbugs
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-03-01 21:41:21 +0100
committerAraq <rumpf_a@web.de>2015-03-01 21:41:21 +0100
commit24ae0c387f4f95f5e61279dc3c78c117ca939eca (patch)
tree5c0bd2f0fb845c541224b3c49550cf58f8a056fd /tests/ccgbugs
parent566ee874cde6defb128cdf9df124c45146187129 (diff)
downloadNim-24ae0c387f4f95f5e61279dc3c78c117ca939eca.tar.gz
some love for the testsuite; fixed regressions
Diffstat (limited to 'tests/ccgbugs')
-rw-r--r--tests/ccgbugs/tmissingderef.nim30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/ccgbugs/tmissingderef.nim b/tests/ccgbugs/tmissingderef.nim
new file mode 100644
index 000000000..edff1dd4e
--- /dev/null
+++ b/tests/ccgbugs/tmissingderef.nim
@@ -0,0 +1,30 @@
+discard """
+  output: '''255
+1 1
+0.5'''
+"""
+
+# bug #1181
+
+type
+  TFoo = object
+    x: int32
+
+proc mainowar =
+  var foo: TFoo
+  foo.x = 0xff
+  var arr1 = cast[ptr array[4, uint8]](addr foo)[] # Fails.
+  echo arr1[when cpuEndian == littleEndian: 0 else: 3]
+
+  var i = 1i32
+  let x = addr i
+  var arr2 = cast[ptr array[4, uint8]](x)[] # Fails.
+  echo arr2[when cpuEndian == littleEndian: 0 else: 3], " ", i
+
+  # bug #1715
+  var a: array[2, float32] = [0.5'f32, 0.7]
+  let p = addr a
+  var b = p[]
+  echo b[0]
+
+mainowar()