On Tue, May 08, 2007, Esben Nielsen wrote: > > This is contrary to C99 standeard annex H2.2 > (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf): > > "An implementation that defines signed integer types as also being modulo > need > not detect integer overflow, in which case, only integer divide-by-zero need > be detected." > > So if it doesn't properly defines wrapping it has to detect integer > overflow, right?
No. Annex H (informative!) only talks about LIA-1 conformance. C99 isn't LIA-1 conformant. H2.2 describes what an implementation might do to make signed integers LIA-1 compatible, which is what gcc does with -fwarpv or -ftrapv. At least that's how I understand it, the C99 standard seems to have been written with the "it was hard to write, so it should be hard to read" mindset. :-/ I still don't know _why_ signed integer overflow behaviour isn't defined in C. It just goes against everyones expectation and thus causes bugs. Johannes - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/