shithub: mc

Download patch

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: