summary refs log tree commit diff stats
path: root/tests/ccgbugs
diff options
context:
space:
mode:
authorBrandon Pickering <brandonpickering95@gmail.com>2017-01-10 21:24:31 -0800
committerAndreas Rumpf <rumpf_a@web.de>2017-01-11 06:24:31 +0100
commitda1293c405c3323430cf7dc0f1abcd025b6fe70c (patch)
tree9249ef308f64625e2c7d3e7ade615042281186a9 /tests/ccgbugs
parent767524d62a1ecf8bdab1457d08a51f77cedefca3 (diff)
downloadNim-da1293c405c3323430cf7dc0f1abcd025b6fe70c.tar.gz
Reset exprs before return by arg. Fixes #5098 (#5191)
Diffstat (limited to 'tests/ccgbugs')
-rw-r--r--tests/ccgbugs/tret_arg_init.nim26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/ccgbugs/tret_arg_init.nim b/tests/ccgbugs/tret_arg_init.nim
new file mode 100644
index 000000000..3c80fb061
--- /dev/null
+++ b/tests/ccgbugs/tret_arg_init.nim
@@ -0,0 +1,26 @@
+discard """
+  output: '''nil
+nil
+nil'''
+"""
+
+type Bar = object
+  s1, s2: string
+
+proc initBar(): Bar = discard
+
+var a: array[5, Bar]
+a[0].s1 = "hey"
+a[0] = initBar()
+echo a[0].s1
+
+type Foo = object
+  b: Bar
+var f: Foo
+f.b.s1 = "hi"
+f.b = initBar()
+echo f.b.s1
+
+var ad = addr f.b
+ad[] = initBar()
+echo ad[].s1