By "signed" I meant "signed integer type of the same size" and by "unsigned" I meant "unsigned integer type of the same size". The "same size" means: the same number of bits as the original integer type, so in the case of example 2 this means "signed long long" and "unsigned long long". Sorry for not being clear.
Signed overflow optimization hazards in the kernel
Posted Aug 20, 2012 0:44 UTC (Mon) by PaulMcKenney (subscriber, #9624)
[Link]
No problem!
I must admit that it would be nice if "(signed typeof(a))" and (unsigned typeof(b))" flipped the signedness of "a" and "b", but my version of gcc really doesn't like either variant. ;-)