summary refs log tree commit diff stats
path: root/tests/ccgbugs
diff options
context:
space:
mode:
authorandri lim <jangko128@gmail.com>2018-03-16 21:32:01 +0700
committerAndreas Rumpf <rumpf_a@web.de>2018-03-16 15:32:01 +0100
commit4f9f9ea528899760d24bc5cc8e6f4bea4a363abe (patch)
treeb8334d2b1bceceea8b5ed3cc619f2713613cd53e /tests/ccgbugs
parentcc5140d8b6ea8ca65ec9b74348cf23aec09d6723 (diff)
downloadNim-4f9f9ea528899760d24bc5cc8e6f4bea4a363abe.tar.gz
fixes #7332 (#7341)
Diffstat (limited to 'tests/ccgbugs')
-rw-r--r--tests/ccgbugs/tresult_of_array.nim29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ccgbugs/tresult_of_array.nim b/tests/ccgbugs/tresult_of_array.nim
new file mode 100644
index 000000000..fb5abf18a
--- /dev/null
+++ b/tests/ccgbugs/tresult_of_array.nim
@@ -0,0 +1,29 @@
+discard """
+  output: '''false
+true
+false
+[false, false, false]
+'''
+"""
+
+# bug #7332
+# resetLoc generate incorrect memset code
+# because of array passed as argument decaying into a pointer
+
+import tables
+const tableOfArray = {
+    "one": [true, false, false],
+    "two": [false, true, false],
+    "three": [false, false, true]
+}.toTable()
+for i in 0..2:
+    echo tableOfArray["two"][i]
+
+var seqOfArray = @[
+    [true, false, false],
+    [false, true, false],
+    [false, false, true]
+]
+proc crashingProc*[B](t: seq[B], index: Natural): B =
+    discard
+echo seqOfArray.crashingProc(0)