Left shift of a negative number is undefined behaviour