>>>>> "Paolo" == Paolo Bonzini <[EMAIL PROTECTED]> writes:
>> On Wed, Dec 20, 2006 at 03:50:23PM +0000, Joseph S. Myers wrote: >> For signed integers, overflow is undefined, but for unsigned integers, >> overflow wraps. Paolo> You mean writing the hypothetical PLUS_WRAP_EXPR <a, b> (where a and b Paolo> are ints) as (int) ((unsigned)a + (unsigned)b)? Paolo> That might work actually. However, I don't know if the optimizers Paolo> will be able to see through the casts and perform all the subsequent Paolo> optimizations appropriately. I think we already have some problems with this... as I recall PR 21855 includes a problem in this area (though it is somewhat glossed over in the PR itself). FWIW LLVM recently moved to having unsigned operations rather than unsigned types. Here's a bit of info on it: http://nondot.org/sabre/LLVMNotes/TypeSystemChanges.txt Tom