This is the mail archive of the libc-alpha@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

warnings generated by bits/string2.h



Hello,

I'm used to compiling my programs with "-Wpointer-arith". Since I upgraded
to glibc-2.1.2, I get warnings from bits/string2.h. This is with gcc-2.95.2.

gcc -O -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wno-sign-compare -DUNICODE -DDYNAMIC_FFI -g -x none varbrace.c -o varbrace
In file included from /usr/include/string.h:346,
                 from ../utils/varbrace.d:46:
/usr/include/bits/string2.h: In function `__strcpy_small':
/usr/include/bits/string2.h:419: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:427: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:432: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:437: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:439: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:444: warning: pointer of type `void *' used in arithmetic
In file included from /usr/include/string.h:346,
                 from dcgettext.c:66:
/usr/include/bits/string2.h: In function `__mempcpy_small':
/usr/include/bits/string2.h:238: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:242: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:246: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:248: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:252: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:256: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:258: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:262: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:264: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:268: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:270: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:272: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:276: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:278: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h: In function `__stpcpy_small':
/usr/include/bits/string2.h:575: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:579: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:584: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:588: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:593: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:595: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:599: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:601: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:606: warning: pointer of type `void *' used in arithmetic
/usr/include/bits/string2.h:608: warning: pointer of type `void *' used in arithmetic

Fix:

*** glibc-2.1.2/string/bits/string2.h.bak	Fri Nov 12 21:15:55 1999
--- glibc-2.1.2/string/bits/string2.h	Sat Jan 22 20:19:55 2000
***************
*** 235,281 ****
      {
      case 1:
        __u->__c = __src0_1;
!       __u = __extension__ ((void *) __u + 1);
        break;
      case 2:
        __u->__usi = __src0_2;
!       __u = __extension__ ((void *) __u + 2);
        break;
      case 3:
        __u->__usi = __src0_2;
!       __u = __extension__ ((void *) __u + 2);
        __u->__c = __src2_1;
!       __u = __extension__ ((void *) __u + 1);
        break;
      case 4:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        break;
      case 5:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__c = __src4_1;
!       __u = __extension__ ((void *) __u + 1);
        break;
      case 6:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__usi = __src4_2;
!       __u = __extension__ ((void *) __u + 2);
        break;
      case 7:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__usi = __src4_2;
!       __u = __extension__ ((void *) __u + 2);
        __u->__c = __src6_1;
!       __u = __extension__ ((void *) __u + 1);
        break;
      case 8:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__ui = __src4_4;
!       __u = __extension__ ((void *) __u + 4);
        break;
      }
    return (void *) __u;
--- 235,281 ----
      {
      case 1:
        __u->__c = __src0_1;
!       __u = (void *) ((char *) __u + 1);
        break;
      case 2:
        __u->__usi = __src0_2;
!       __u = (void *) ((char *) __u + 2);
        break;
      case 3:
        __u->__usi = __src0_2;
!       __u = (void *) ((char *) __u + 2);
        __u->__c = __src2_1;
!       __u = (void *) ((char *) __u + 1);
        break;
      case 4:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        break;
      case 5:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__c = __src4_1;
!       __u = (void *) ((char *) __u + 1);
        break;
      case 6:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__usi = __src4_2;
!       __u = (void *) ((char *) __u + 2);
        break;
      case 7:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__usi = __src4_2;
!       __u = (void *) ((char *) __u + 2);
        __u->__c = __src6_1;
!       __u = (void *) ((char *) __u + 1);
        break;
      case 8:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__ui = __src4_4;
!       __u = (void *) ((char *) __u + 4);
        break;
      }
    return (void *) __u;
***************
*** 416,422 ****
        break;
      case 3:
        __u->__usi = __src0_2;
!       __u = __extension__ ((void *) __u + 2);
        __u->__uc = '\0';
        break;
      case 4:
--- 416,422 ----
        break;
      case 3:
        __u->__usi = __src0_2;
!       __u = (void *) ((char *) __u + 2);
        __u->__uc = '\0';
        break;
      case 4:
***************
*** 424,447 ****
        break;
      case 5:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__uc = '\0';
        break;
      case 6:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__usi = __src4_2;
        break;
      case 7:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__usi = __src4_2;
!       __u = __extension__ ((void *) __u + 2);
        __u->__uc = '\0';
        break;
      case 8:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__ui = __src4_4;
        break;
      }
--- 424,447 ----
        break;
      case 5:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__uc = '\0';
        break;
      case 6:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__usi = __src4_2;
        break;
      case 7:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__usi = __src4_2;
!       __u = (void *) ((char *) __u + 2);
        __u->__uc = '\0';
        break;
      case 8:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__ui = __src4_4;
        break;
      }
***************
*** 572,611 ****
        break;
      case 2:
        __u->__usi = __src0_2;
!       __u = __extension__ ((void *) __u + 1);
        break;
      case 3:
        __u->__usi = __src0_2;
!       __u = __extension__ ((void *) __u + 2);
        __u->__uc = '\0';
        break;
      case 4:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 3);
        break;
      case 5:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__uc = '\0';
        break;
      case 6:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__usi = __src4_2;
!       __u = __extension__ ((void *) __u + 1);
        break;
      case 7:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__usi = __src4_2;
!       __u = __extension__ ((void *) __u + 2);
        __u->__uc = '\0';
        break;
      case 8:
        __u->__ui = __src0_4;
!       __u = __extension__ ((void *) __u + 4);
        __u->__ui = __src4_4;
!       __u = __extension__ ((void *) __u + 3);
        break;
      }
    return &__u->__uc;
--- 572,611 ----
        break;
      case 2:
        __u->__usi = __src0_2;
!       __u = (void *) ((char *) __u + 1);
        break;
      case 3:
        __u->__usi = __src0_2;
!       __u = (void *) ((char *) __u + 2);
        __u->__uc = '\0';
        break;
      case 4:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 3);
        break;
      case 5:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__uc = '\0';
        break;
      case 6:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__usi = __src4_2;
!       __u = (void *) ((char *) __u + 1);
        break;
      case 7:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__usi = __src4_2;
!       __u = (void *) ((char *) __u + 2);
        __u->__uc = '\0';
        break;
      case 8:
        __u->__ui = __src0_4;
!       __u = (void *) ((char *) __u + 4);
        __u->__ui = __src4_4;
!       __u = (void *) ((char *) __u + 3);
        break;
      }
    return &__u->__uc;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]