Messages in this thread | | | Date | Tue, 8 May 2007 12:27:28 +0200 (CEST) | From | Esben Nielsen <> | Subject | Re: [patch] CFS scheduler, -v8 |
| |
On Tue, 8 May 2007, Johannes Stezenbach wrote:
> 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.
"The signed C integer types int, long int, long long int, and the corresponding unsigned types are compatible with LIA-1."
I read this as any C99 implementation must be compatible. I would like to see LIA-1 to check.
>, which is > what gcc does with -fwarpv or -ftrapv. >
Yes, either or: Either wrap or trap.
> 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.
Because it is hard to make wrapping work on non twos complement architectures. Then it is easier to trap.
Esben
> > > Johannes > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |