summaryrefslogtreecommitdiff
path: root/src/cmd/cc/scon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/cc/scon.c')
-rw-r--r--src/cmd/cc/scon.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cmd/cc/scon.c b/src/cmd/cc/scon.c
index 193331f77..f6031a5be 100644
--- a/src/cmd/cc/scon.c
+++ b/src/cmd/cc/scon.c
@@ -175,7 +175,10 @@ evconst(Node *n)
break;
case OLSHR:
- v = (uvlong)l->vconst >> r->vconst;
+ if(l->type->width != sizeof(uvlong))
+ v = ((uvlong)l->vconst & 0xffffffffULL) >> r->vconst;
+ else
+ v = (uvlong)l->vconst >> r->vconst;
break;
case OASHR: