warnings generated by bits/string2.h
Bruno Haible
haible@ilog.fr
Mon Jan 24 02:18:00 GMT 2000
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;
More information about the Libc-alpha
mailing list