This pull request has fixes to prevent bit shifting signed integers to the left, onto and past the sign bit.
While this currently does not cause problems, it is undefined behavior in C++11 and could cause problems in the future (i.e. so-called time bombs). Bitcoin in particular should be extra careful about these problems.