summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cmd/8g/cgen.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/cmd/8g/cgen.c b/src/cmd/8g/cgen.c
index 6ea637a28..6a2122507 100644
--- a/src/cmd/8g/cgen.c
+++ b/src/cmd/8g/cgen.c
@@ -92,12 +92,6 @@ cgen(Node *n, Node *res)
break;
}
- // complex types
- if(complexop(n, res)) {
- complexgen(n, res);
- return;
- }
-
// if both are addressable, move
if(n->addable && res->addable) {
gmove(n, res);
@@ -123,6 +117,12 @@ cgen(Node *n, Node *res)
return;
}
+ // complex types
+ if(complexop(n, res)) {
+ complexgen(n, res);
+ return;
+ }
+
// otherwise, the result is addressable but n is not.
// let's do some computation.