Re: GCC 3.3.1, new warnings with <limits>
From: David Leimbach (leimy2k_at_mac.com)
Date: 07/13/03
- Previous message: Don Lewis: "sporadic disk syncing failures when shutting down"
- In reply to: Craig Rodrigues: "GCC 3.3.1, new warnings with <limits>"
- Next in thread: Craig Rodrigues: "Re: GCC 3.3.1, new warnings with <limits>"
- Reply: Craig Rodrigues: "Re: GCC 3.3.1, new warnings with <limits>"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Sat, 12 Jul 2003 21:50:21 -0500 To: Craig Rodrigues <rodrigc@crodrigues.org>
Heh that's because the offending macro __glibcpp_digits calls
__glibcpp_signed (T)
on an unsigned type which does a < compareison.
std::numeric_limits <signed long>::digits on a 32bit FBSD will yield 31
because its
got 31 bits for magnitude.
Unfortunately the way it seems to go about calculating that stuff at
compile time
seems to be invalid due to the fact that it does < 0 compares on
unsigned types.
Is this a gcc issue or a FBSD issue? [is this the original gcc c++
header file or has
it been tweaked?]
Dave
On Saturday, July 12, 2003, at 10:53AM, Craig Rodrigues wrote:
> Hi,
>
> If I compile the following program:
>
> #include <iostream>
> int main(int argc, char *argv[] { return 0; }
>
> with the following flags:
>
> g++ -W -Wall b.cc
>
>
> I get lots of warnings that did not appear in GCC 3.2:
>
> In file included from /usr/include/c++/3.3/bits/locale_facets.tcc:43,
> from /usr/include/c++/3.3/locale:47,
> from /usr/include/c++/3.3/bits/ostream.tcc:37,
> from /usr/include/c++/3.3/ostream:535,
> from /usr/include/c++/3.3/iostream:45,
> from b.cc:1:
> /usr/include/c++/3.3/limits:630: warning: comparison of unsigned
> expression < 0
> is always false
> /usr/include/c++/3.3/limits:631: warning: comparison of unsigned
> expression < 0
> is always false
> /usr/include/c++/3.3/limits:730: warning: comparison of unsigned
> expression < 0
> is always false
> /usr/include/c++/3.3/limits:731: warning: comparison of unsigned
> expression < 0
> is always false
> /usr/include/c++/3.3/limits:830: warning: comparison of unsigned
> expression < 0
> is always false
> /usr/include/c++/3.3/limits:831: warning: comparison of unsigned
> expression < 0
> is always false
>
>
>
>
> Is there a way to fix the <limits> header file?
> --
> 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"
_______________________________________________
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: Don Lewis: "sporadic disk syncing failures when shutting down"
- In reply to: Craig Rodrigues: "GCC 3.3.1, new warnings with <limits>"
- Next in thread: Craig Rodrigues: "Re: GCC 3.3.1, new warnings with <limits>"
- Reply: Craig Rodrigues: "Re: GCC 3.3.1, new warnings with <limits>"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]