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