summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--load.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/load.c b/load.c
index 4805720..bb4acbc 100644
--- a/load.c
+++ b/load.c
@@ -172,8 +172,14 @@ killsl(Ref r, Slice sl)
 	if (rtype(sl.ref) != RTmp)
 		return 0;
 	a = &curf->tmp[sl.ref.val].alias;
-	assert(a->type==ALoc || a->type==AEsc || a->type==AUnk);
-	return req(a->base, r);
+	switch (a->type) {
+	default:   die("unreachable");
+	case ALoc:
+	case AEsc:
+	case AUnk: return req(a->base, r);
+	case ACon:
+	case ASym: return 0;
+	}
 }
 
 /* returns a ref containing the contents of the slice