[issue12701] Apple's clang 2.1 (xcode 4.1, OSX 10.7) optimizer miscompiles intobject.c

2011-08-05 Thread deadshort
New submission from deadshort : Apple Radar ticket 9908625 has been filed. The clang 2.1 optimizer causes overflows in Object/intobject.c:int_pow() to be missed, so 2**63 turns into a negative integer. The attached test program narrows it down. llvm-gcc is fine, so this ticket is mostly an

[issue12701] Apple's clang 2.1 (xcode 4.1, OSX 10.7) optimizer miscompiles intobject.c

2011-08-05 Thread deadshort
deadshort added the comment: Blecch: cut-o. The bad case should have been the matching: idiotbox:Python-2.7.2 cloomis$ ./seqpoint 40 40 a=40, b=40, c(a*b)=-2446744073709551616, c/b=40 overflow detected: 0

[issue12701] Apple's clang 2.1 (xcode 4.1, OSX 10.7) optimizer miscompiles intobject.c

2011-08-08 Thread deadshort
deadshort added the comment: Yup, that was it. Something new learnt. Thanks. Not sure how to have configure spot that clang needs the flag. OK, the configure stanza for gcc is hardly general; maybe trying $(CC) -fwrapv and keeping the flag if that does not blow up on the pad? But I guess

[issue1621] Do not assume signed integer overflow behavior

2011-08-10 Thread deadshort
deadshort added the comment: Since this is still dribbling along I'll point out intobject.c:int_pow() and: prev = ix; /* Save value for overflow check */ if (iw & 1) { ix = ix*temp; if (temp == 0) break; /* Avo