I was getting this warning during a compile
authorSteve Murphy <murf@digium.com>
Mon, 15 Dec 2008 19:42:05 +0000 (19:42 +0000)
committerSteve Murphy <murf@digium.com>
Mon, 15 Dec 2008 19:42:05 +0000 (19:42 +0000)
on a 64-bit machine running ubuntu server 8.10,
and gcc-4.3.2:

   [CXXi] chan_vpb.ii -> chan_vpb.oo
cc1plus: warnings being treated as errors
In file included from /home/murf/asterisk/trunk/include/asterisk/utils.h:671,
                 from chan_vpb.cc:46:
/home/murf/asterisk/trunk/include/asterisk/strings.h: In function ‘char* ast_str_truncate(ast_str*, ssize_t)’:
/home/murf/asterisk/trunk/include/asterisk/strings.h:479: error: comparison between signed and unsigned integer expressions
make[1]: *** [chan_vpb.oo] Error 1
make: *** [channels] Error 2

which this fix silences

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164415 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/strings.h

index 1b70c15..0001c96 100644 (file)
@@ -481,7 +481,7 @@ char *ast_str_truncate(struct ast_str *buf, ssize_t len),
 {
 #ifdef DEBUG_OPAQUE
        if (len < 0) {
-               buf->used2 += ((ssize_t) abs(len)) > buf->used2 ? -buf->used2 : len;
+               buf->used2 += ((ssize_t) abs(len)) > (ssize_t) buf->used2 ? -buf->used2 : len;
        } else {
                buf->used2 = len;
        }
@@ -489,7 +489,7 @@ char *ast_str_truncate(struct ast_str *buf, ssize_t len),
        return buf->str2;
 #else
        if (len < 0) {
-               buf->used += ((ssize_t) abs(len)) > buf->used ? -buf->used : len;
+               buf->used += ((ssize_t) abs(len)) > (ssize_t) buf->used ? -buf->used : len;
        } else {
                buf->used = len;
        }