Re: GCC 3.3.1, new warnings with <limits>
From: David Leimbach (leimy2k_at_mac.com)
Date: 07/13/03
- Previous message: Sean Kelly: "Re: sporadic disk syncing failures when shutting down"
- In reply to: Craig Rodrigues: "Re: GCC 3.3.1, new warnings with <limits>"
- Next in thread: Alexander Kabaev: "Re: GCC 3.3.1, new warnings with <limits>"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Sat, 12 Jul 2003 22:27:24 -0500 To: Craig Rodrigues <rodrigc@crodrigues.org>
> Hi,
>
> I think that this is a FreeBSD issue. I compiled
> the same file under Linux, with a GCC 3.3.1 checked out on 7/11
> and did not encounter this warning.
>
I think you hit it on the head.
> I looked in the source code of gcc and found this:
> /usr/src/contrib/gcc/c-common.c
>
> 2597 case LT_EXPR:
> 2598 if (extra_warnings && !in_system_header
> 2599 && ! (TREE_CODE (primop0) == INTEGER_CST
> 2600 && ! TREE_OVERFLOW (convert
> (c_common_signed_typ
> e (type),
> 2601
> primop0))))
> 2602 warning ("comparison of unsigned expression <
> 0 is alway
> s false");
> 2603 value = boolean_false_node;
> 2604 break;
>
>
>
>
> I am guessing that the C preprocessor does not think that it is
> in a system header, and thus prints out the warning.
>
> If I take the following preprocessed source (test.ii) and compile it
> under FreeBSD with g++ -W -c test.ii:
>
> =======================================================================
> ========
> # 1 "test.cc"
> # 1 "<built-in>"
> # 1 "<command line>"
> # 1 "test.cc"
> # 1 "/usr/include/c++/3.3/iostream" 1 3
> # 43 "/usr/include/c++/3.3/iostream" 3
>
> static const int digits = (sizeof(unsigned int) * 8 - ((unsigned
> int)(-1) < 0));
>
> =======================================================================
> ========
>
> I get:
>
> In file included from test.cc:1:
> /usr/include/c++/3.3/iostream:44: warning: comparison of unsigned
> expression <
> 0 is always false
>
>
>
>
>
> If I compile the same file on my Linux box, with a gcc checked out
> from the FSF CVS repository (gcc version 3.3.1 20030711 (prerelease)),
> I do not get the warning.
>
> I am not an expert on the GNU C preprocessor format, but I changed
> two of the lines in the above file to:
>
> # 1 "/usr/include/c++/3.3/iostream" 1
> # 43 "/usr/include/c++/3.3/iostream"
>
> and when I recompiled it under Linux, I also got the warning:
>
> In file included from test.cc:1:
> /usr/include/c++/3.3/iostream:44: warning: comparison of unsigned
> expression <
> 0 is always false
>
>
>
> Any GCC/FreeBSD expert care to comment? ;)
>
> --
> Craig Rodrigues
> http://crodrigues.org
> rodrigc@crodrigues.org
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
- Previous message: Sean Kelly: "Re: sporadic disk syncing failures when shutting down"
- In reply to: Craig Rodrigues: "Re: GCC 3.3.1, new warnings with <limits>"
- Next in thread: Alexander Kabaev: "Re: GCC 3.3.1, new warnings with <limits>"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|