ref: 3706df6d6726eb94ac301e4a8eae5d6dc3393df4
parent: d489185e0bf6b3ef4aa394938810c5c1483841a5
author: Quentin Carbonneaux <quentin@c9x.me>
date: Fri Jul 6 12:37:42 EDT 2018
Fix auto expressions for complex values. Hello Myrddin folks, The current code to handle auto expressions does not correctly deal with complex values (i.e., values that do not fit in a register). This patch attempts to fix the issue. -- Quentin
--- a/mi/flatten.c
+++ b/mi/flatten.c
@@ -537,9 +537,8 @@
args = n->expr.args;
switch (exprop(n)) {
case Oauto:
- r = rval(s, n->expr.args[0]);
- t = temp(s, r);
- r = asn(t, r);
+ t = temp(s, n);
+ r = assign(s, t, n->expr.args[0]);
lappend(&s->curst->autotmp, &s->curst->nautotmp, t);
break;
case Osize: