Hi tech,

if I compile rcs, gcc prints a few warnings like this:
- comparison between signed and unsigned
- signed and unsigned type in conditional expression

I'm not quite sure if the typecasts are at the correct place, but these diffs 
removes the warnings.

fritjof


Index: buf.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/buf.c,v
retrieving revision 1.22
diff -u -p -r1.22 buf.c
--- buf.c       6 Jul 2011 15:36:52 -0000       1.22
+++ buf.c       6 May 2014 20:56:55 -0000
@@ -98,7 +98,7 @@ buf_load(const char *path)
        if (fstat(fd, &st) == -1)
                goto out;
 
-       if (st.st_size > SIZE_MAX) {
+       if (st.st_size > (off_t)SIZE_MAX) {
                errno = EFBIG;
                goto out;
        }

Index: diff.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/diff.c,v
retrieving revision 1.34
diff -u -p -r1.34 diff.c
--- diff.c      16 May 2013 12:44:48 -0000      1.34
+++ diff.c      6 May 2014 20:57:07 -0000
@@ -432,13 +432,13 @@ prepare(int i, FILE *fd, off_t filesize,
 
        rewind(fd);
 
-       sz = (filesize <= SIZE_MAX ? filesize : SIZE_MAX) / 25;
+       sz = (filesize <= (off_t)SIZE_MAX ? filesize : (off_t)SIZE_MAX) / 25;
        if (sz < 100)
                sz = 100;
 
        p = xcalloc(sz + 3, sizeof(*p));
        for (j = 0; (h = readhash(fd, flags));) {
-               if (j == sz) {
+               if ((size_t)j == sz) {
                        sz = sz * 3 / 2;
                        p = xrealloc(p, sz + 3, sizeof(*p));
                }

Index: diff3.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/diff3.c,v
retrieving revision 1.33
diff -u -p -r1.33 diff3.c
--- diff3.c     4 Mar 2012 04:05:15 -0000       1.33
+++ diff3.c     6 May 2014 20:57:18 -0000
@@ -908,7 +908,7 @@ edscript(int n)
                (void)fseek(fp[2], (long)de[n].new.from, SEEK_SET);
                for (k = de[n].new.to-de[n].new.from; k > 0; k-= j) {
                        j = k > BUFSIZ ? BUFSIZ : k;
-                       if (fread(block, 1, j, fp[2]) != j)
+                       if ((int)fread(block, 1, j, fp[2]) != j)
                                return (-1);
                        block[j] = '\0';
                        diff_output("%s", block);

Index: buf.c
===================================================================
RCS file: /cvs/src/usr.bin/rcs/buf.c,v
retrieving revision 1.22
diff -u -p -r1.22 buf.c
--- buf.c       6 Jul 2011 15:36:52 -0000       1.22
+++ buf.c       6 May 2014 20:57:30 -0000
@@ -98,7 +98,7 @@ buf_load(const char *path)
        if (fstat(fd, &st) == -1)
                goto out;
 
-       if (st.st_size > SIZE_MAX) {
+       if (st.st_size > (off_t)SIZE_MAX) {
                errno = EFBIG;
                goto out;
        }

Reply via email to