diff options
Diffstat (limited to 'src/cmd/cc/scon.c')
-rw-r--r-- | src/cmd/cc/scon.c | 5 |
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: |