PR#5934: integer shift by negative amount (-1).
Several occurrences of the same pattern:
let p = ref(1 lsl N) in
for i = N downto 0 do ... p := !p lsr 1 done
rewritten so as not to precompute "1 lsl N".
This was rather harmless since the value of p wasn't used in the case N < 0.
This is why I'm fixing this on trunk but not on 4.00 branch.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13438 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02