Messages in this thread |  | | | Subject | Re: [PATCH] C undefined behavior fix | | From | Florian Weimer <> | | Date | Fri, 04 Jan 2002 09:38:35 +0100 |
| |
dewar@gnat.com writes:
> <<No, in fact the kernel isn't written in ANSI C. :) > If nothing else, the fact that it uses a lot of gcc-specific > extensions rules that out. And it assumes that you can freely cast > pointers to unsigned longs and back again. I'm sure others can add to > this list. >>> > > Most certainly this list should exist in precise defined form.
C99 includes a list of additional guarantees made by many C implementations (in an informative index). I think we really should check this list (and the list of implementation-defined behavior) and document the choices made by GCC. In fact, this documentation is required by the standard.
> It is this kind of informality that is asking for trouble.
We have seen much trouble in this area before, but I doubt we can avoid all of them by proper documentation. Quite a few people seem to write some C code, check that it works, look at the generated machine code, and if it seems to be correct, the C code is considered to be correct. - 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/
|  |