From da1293c405c3323430cf7dc0f1abcd025b6fe70c Mon Sep 17 00:00:00 2001 From: Brandon Pickering Date: Tue, 10 Jan 2017 21:24:31 -0800 Subject: Reset exprs before return by arg. Fixes #5098 (#5191) --- tests/ccgbugs/tret_arg_init.nim | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tests/ccgbugs/tret_arg_init.nim (limited to 'tests/ccgbugs') 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 -- cgit 1.4.1-2-gfad0