libstdc++/2923: signed/unsigned comparison in stringbuf::sync()
jakob@unthought.net
jakob@unthought.net
Thu May 24 03:56:00 GMT 2001
>Number: 2923
>Category: libstdc++
>Synopsis: signed/unsigned comparison in stringbuf::sync()
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu May 24 03:56:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: jakob@unthought.net
>Release: gcc-2.96(RH), release -81 and others
>Organization:
>Environment:
i686, GNU/Linux
>Description:
I get the warning:
/usr/include/g++-3/sstream: In method `int stringbuf::sync ()':
/usr/include/g++-3/sstream:171: warning: comparison between signed and unsigned integer expressions
Obviously this isn't critical, everything works, it's just annoying.
>How-To-Repeat:
Compile the following file with g++ -Wall:
#include <sstream>
Yes, the only line required is the include of sstream.
>Fix:
buf.size() - rpos (in sstream:171) evaluates to a signed integer. It's compared with n of type streamsize. I guess casting to signed or unsigned would fix this without any impact on any practical uses of the code.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="warn.cc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="warn.cc"
I2luY2x1ZGUgPHNzdHJlYW0+Cgo=
More information about the Gcc-prs
mailing list