I agree that `shr` on signed `int` is error prone, but that is how the things 
are now. To have a save transition I would suggest to have 2 operators `shr` 
and another one `ashr` or `sar` or whatever with signed shift behavior. We 
should then deprecate `shr` for signed `int` and in the future make it an error 
to use it with signed `int`. If someone needs pure binary shift, (s)he should 
cast the signed `int` to `uint`

Reply via email to