summary refs log tree commit diff
path: root/lisc
diff options
context:
space:
mode:
Diffstat (limited to 'lisc')
-rw-r--r--lisc/copy.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/lisc/copy.c b/lisc/copy.c
index 1daca2b..d2b0285 100644
--- a/lisc/copy.c
+++ b/lisc/copy.c
@@ -56,15 +56,12 @@ visitins(Ins *i, Ref *cp, RList **w)
 {
 	Ref r;
 
-	if (i->op != OCopy) {
-		if (!req(i->to, R)) {
-			assert(rtype(i->to) == RTmp);
-			update(i->to, i->to, cp, w);
-		}
-	} else {
-		assert(rtype(i->to) == RTmp);
+	if (i->op == OCopy) {
 		r = copyof(i->arg[0], cp);
 		update(i->to, r, cp, w);
+	} else if (!req(i->to, R)) {
+		assert(rtype(i->to) == RTmp);
+		update(i->to, i->to, cp, w);
 	}
 }