Re: [patch] CFS scheduler, -v8

From: Esben Nielsen
Date: Tue May 08 2007 - 06:27:51 EST




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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/