Bring pswt.c back to where it was. Reference: /n/patches.lsub.org/patch/pswtback Date: Sat Sep 15 10:55:43 CES 2012 Signed-off-by: paurea@lsub.org --- /sys/src/cmd/cc/pswt.c Fri Sep 14 00:26:46 2012 +++ /sys/src/cmd/cc/pswt.c Sat Sep 15 10:53:44 2012 @@ -35,14 +35,20 @@ isv |= c->isv; nc++; } - if(isv && !typev[n->type->etype]) + if(typev[n->type->etype]) + isv = 1; + else if(isv){ warn(n, "32-bit switch expression with 64-bit case constant"); + isv = 0; + } iq = alloc(nc*sizeof(C1)); q = iq; for(c = cases; c->link != C; c = c->link) { if(c->def) continue; + if(c->isv && !isv) + continue; /* can never match */ q->label = c->label; if(isv) q->val = c->val; @@ -112,7 +118,7 @@ } patch(hsb, pc); if(0){for(int k=0; k