efriedma added a comment. The check for whether an input is "out of range" doesn't handle fractions correctly. Testcase: int a() { return 2147483647.5; } unsigned b() { return -.5; } Repository: rC Clang https://reviews.llvm.org/D46535