Re: GCC 3.3.1, new warnings with <limits>

From: David Leimbach (leimy2k_at_mac.com)
Date: 07/13/03

  • Next message: Bruce Evans: "Re: make release of CURRENT on 4.7 box"
    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"


  • Next message: Bruce Evans: "Re: make release of CURRENT on 4.7 box"