ref: def0aab5b2b3a1c2326a6c593761e1f27a089601
parent: 0e987e21af03dccfe1b37141ca024f657238dfd2
author: Ori Bernstein <ori@eigenstate.org>
date: Wed Aug 14 19:33:48 EDT 2013
Fix postincrement's returned value. We didn't actually return a valid rvalue when lowering postincrement expressions. This fixes it.
--- a/6/simp.c
+++ b/6/simp.c
@@ -1167,11 +1167,13 @@
* x = x + 1
*/
case Opostinc:
- t = assign(s, args[0], addk(args[0], 1));
+ r = lval(s, args[0]);
+ t = assign(s, r, addk(r, 1));
lappend(&s->incqueue, &s->nqueue, t);
break;
case Opostdec:
- t = assign(s, args[0], subk(args[0], 1));
+ r = lval(s, args[0]);
+ t = assign(s, r, subk(r, 1));
lappend(&s->incqueue, &s->nqueue, t);
break;
case Olit: