Warning using -Wconversion and -Ox in gcc 4.5 and 4.6 but not in previous releases
José Luis García Pallero
jgpallero@gmail.com
Mon Mar 7 14:20:00 GMT 2011
El día 7 de marzo de 2011 14:16, Marc Glisse <marc.glisse@inria.fr> escribió:
> On Mon, 7 Mar 2011, José Luis García Pallero wrote:
>
>> Hello,
>> In this example:
>>
>> #include<stdlib.h>
>> #include<string.h>
>> int main() {
>> strspn("hello","h");
>> return 0;
>> }
>>
>> I obtain a warning as:
>>
>> test.c:4:5: warning: conversion to ‘size_t’ from ‘int’ may change the
>> sign of the result
>>
>> If I compile the program with the options:
>>
>> gcc -Wconversion -O test.c -o test
>
> Note that your example can be reduced to:
> int main() {
> (0 ? ((void) (0), 0) : 1u) ;
> return 0;
> }
>
> Not a most useful warning indeed...
>
>> The warning appears with -O, -O1, -O2 and -O3, but not with -O0.
>
> glibc includes different code when __OPTIMIZE__ is defined.
>
> --
> Marc Glisse
>
But why in previous gcc versions the warning didn't appears. And
strspn() is a common function in string.h. I don't understand why the
call to strspn() with correct arguments emits a warning.
--
*****************************************
José Luis García Pallero
jgpallero@gmail.com
(o<
/ / \
V_/_
Use Debian GNU/Linux and enjoy!
*****************************************
More information about the Gcc-help
mailing list