shithub: mc

Download patch

ref: e15b9b8ff63de5a461257b1ecfa9689e853c90ab
parent: a143d21397a31766874783b7e008a54928af5da5
author: Ori Bernstein <[email protected]>
date: Tue Jul 24 21:59:04 EDT 2012

Add failing ptrpreinc test.

--- a/8/simp.c
+++ b/8/simp.c
@@ -614,8 +614,9 @@
 
     switch (exprop(n)) {
         case Ovar:      r = n;  break;
-        case Oidx:      r = idxaddr(s, n);      break;
-        case Omemb:     r = membaddr(s, n);     break;
+        case Oidx:      r = idxaddr(s, n); break;
+        case Oderef:    r = rval(s, n->expr.args[0], NULL); break;
+        case Omemb:     r = membaddr(s, n); break;
         default:
             die("%s cannot be an lval", opstr(exprop(n)));
             break;
--- /dev/null
+++ b/test/ptrpreinc.myr
@@ -1,0 +1,10 @@
+const ppreinc = {p
+	-> ++*p
+}
+
+const main = {
+	var x = 8
+
+	-> ppreinc(&x)
+}
+
--- a/test/tests
+++ b/test/tests
@@ -19,6 +19,7 @@
 B div		E	42
 B mod		E	6
 B bsr		E	5
+B ptrpreinc	E       9
 B struct1	E	12
 B struct	E	42
 B structptr	E	42