On Mon, Feb 24, 2003 at 01:02:39PM -0800, Linus Torvalds wrote:
>...
> 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.
>
> Any compiler that complains about the above should be shot in the head,
> and the warning should be killed.
In the program below -Wall doesn't warn in neither 2.95 nor 3.2. You
need -Wsign-compare to get a warning. IMHO a warning is useful in this
example, some people might wrongly assume that the "Hello, world!" would
be printed more than once.
<-- snip -->
#include <stdio.h>
int array[] = {1, 2, 3, 4, 5};
#define COUNT (sizeof(array)/sizeof(array[0]))
int main()
{
int i;
for (i = 0; i < COUNT; i++)
{
i -= 2;
printf("Hello, world!\n");
}
return(0);
}
<-- snip -->
> Linus
cu
Adrian
--"Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed
- 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/
This archive was generated by hypermail 2b29 : Fri Feb 28 2003 - 22:00:22 EST