Messages in this thread | | | From | John Alvord <> | Subject | Re: [PATCH] s390 (7/13): gcc 3.3 adaptions. | Date | Mon, 24 Feb 2003 15:52:20 -0800 |
| |
On Mon, 24 Feb 2003 17:39:34 -0500, Jakub Jelinek <jakub@redhat.com> wrote:
>On Mon, Feb 24, 2003 at 10:35:24PM +0100, Andreas Schwab wrote: >> Linus Torvalds <torvalds@transmeta.com> writes: >> >> |> Does gcc still warn about things like >> |> >> |> #define COUNT (sizeof(array)/sizeof(element)) >> |> >> |> int i; >> |> for (i = 0; i < COUNT; i++) >> |> ... >> |> >> |> where COUNT is obviously unsigned (because sizeof is size_t and thus >> |> unsigned)? >> |> >> |> Gcc used to complain about things like that, which is a FUCKING DISASTER. >> >> How can you distinguish that from other occurrences of (int)<(size_t)? > >Value range propagation pass, then warn?
I know it is stupid/unnecessary etc, but you could do
#if COUNT > INT_MAX #error you idiot... #endif
int i; for(i =0; i < (int)COUNT; i++) ...
where the #if was placed in whatever header COUNT was defined.
and have safe code with no runtime overhead and looking only mildly idiotic.
john alvord - 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/
| |