Also, I'd vote for just directly stating that "X << Y" sign overflows if and only if "X * (1 << Y)" sign overflows. What it actually implies for shifting out sign bits etc. should be stated as a corollary. http://reviews.llvm.org/D8890 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/