◐ Shell
clean mode source ↗

Message 301528 - Python tracker

According to C99, "When a finite value of real floating type is converted to an integer type other than _Bool, the  fractional  part  is  discarded  (i.e.,  the  value  is  truncated  toward  zero). If the value of the integral part cannot be represented by the integer type,the behavior is undefined." So, e.g., (long)x, where x is a double is in general undefined behavior without a range check. We have several cases in CPython where we need to fix this.