This is the mail archive of the libc-alpha@sources.redhat.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]

[letmein <letmein@erols.com>] fix for bug#2110



The appended bug report could be qualified as "GCC should not warn
about such stuff in system headers especially when using
__extension__" - and AFAIK GCC 3.0 will not warn about it.

But since the patch just adds some casts and helps to reduce noise for
GCC 2.95.x, I propose to add it.

Any objections or comments?

Andreas



Hello 

I am sending in a patch to fix bug #2110. This bug definately exists
in glibc2.2.2. This patch must be applied to /usr/include/bits/string2.h


-Alex
--- string2.h.save	Wed Jan 24 17:50:06 2001
+++ string2.h	Sat Feb 24 18:33:24 2001
@@ -122,54 +122,54 @@
        {								      \
        case 15:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__ (void *)((char *) __u + 4);			      \
        case 11:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 7:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 3:								      \
 	 __u->__usi = (unsigned short int) __c * 0x0101;		      \
-	 __u = __extension__ ((void *) __u + 2);			      \
+	 __u = __extension__(void *) ((char *) __u + 2);			      \
 	 __u->__uc = (unsigned char) __c;				      \
 	 break;								      \
 									      \
        case 14:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 10:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 6:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 2:								      \
 	 __u->__usi = (unsigned short int) __c * 0x0101;		      \
 	 break;								      \
 									      \
        case 13:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 9:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 5:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 1:								      \
 	 __u->__uc = (unsigned char) __c;				      \
 	 break;								      \
 									      \
        case 16:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 12:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 8:								      \
 	 __u->__ui = __c * 0x01010101;					      \
-	 __u = __extension__ ((void *) __u + 4);			      \
+	 __u = __extension__(void *) ((char *) __u + 4);			      \
        case 4:								      \
 	 __u->__ui = __c * 0x01010101;					      \
        case 0:								      \
@@ -234,47 +234,47 @@
     {
     case 1:
       __u->__c = __src0_1;
-      __u = __extension__ ((void *) __u + 1);
+      __u = __extension__(void *) ((char *) __u + 1);
       break;
     case 2:
       __u->__usi = __src0_2;
-      __u = __extension__ ((void *) __u + 2);
+      __u = __extension__(void *) ((char *) __u + 2);
       break;
     case 3:
       __u->__usi = __src0_2;
-      __u = __extension__ ((void *) __u + 2);
+      __u = __extension__(void *) ((char *) __u + 2);
       __u->__c = __src2_1;
-      __u = __extension__ ((void *) __u + 1);
+      __u = __extension__(void *) ((char *) __u + 1);
       break;
     case 4:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       break;
     case 5:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__c = __src4_1;
-      __u = __extension__ ((void *) __u + 1);
+      __u = __extension__(void *) ((char *) __u + 1);
       break;
     case 6:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__usi = __src4_2;
-      __u = __extension__ ((void *) __u + 2);
+      __u = __extension__(void *) ((char *) __u + 2);
       break;
     case 7:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__usi = __src4_2;
-      __u = __extension__ ((void *) __u + 2);
+      __u = __extension__(void *) ((char *) __u + 2);
       __u->__c = __src6_1;
-      __u = __extension__ ((void *) __u + 1);
+      __u = __extension__(void *) ((char *) __u + 1);
       break;
     case 8:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__ui = __src4_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       break;
     }
   return (void *) __u;
@@ -359,7 +359,7 @@
       __extension__ __u->__sca8 = __src8;
       break;
     }
-  return __extension__ ((void *) __u + __srclen);
+  return __extension__ ((char *) __u + __srclen);
 }
 #  endif
 # endif
@@ -415,7 +415,7 @@
       break;
     case 3:
       __u->__usi = __src0_2;
-      __u = __extension__ ((void *) __u + 2);
+      __u = __extension__(void *) ((char *) __u + 2);
       __u->__uc = '\0';
       break;
     case 4:
@@ -423,24 +423,24 @@
       break;
     case 5:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__uc = '\0';
       break;
     case 6:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__usi = __src4_2;
       break;
     case 7:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__usi = __src4_2;
-      __u = __extension__ ((void *) __u + 2);
+      __u = __extension__(void *) ((char *) __u + 2);
       __u->__uc = '\0';
       break;
     case 8:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__ui = __src4_4;
       break;
     }
@@ -572,40 +572,40 @@
       break;
     case 2:
       __u->__usi = __src0_2;
-      __u = __extension__ ((void *) __u + 1);
+      __u = __extension__(void *) ((char *) __u + 1);
       break;
     case 3:
       __u->__usi = __src0_2;
-      __u = __extension__ ((void *) __u + 2);
+      __u = __extension__(void *) ((char *) __u + 2);
       __u->__uc = '\0';
       break;
     case 4:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 3);
+      __u = __extension__(void *) ((char *) __u + 3);
       break;
     case 5:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__uc = '\0';
       break;
     case 6:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__usi = __src4_2;
-      __u = __extension__ ((void *) __u + 1);
+      __u = __extension__(void *) ((char *) __u + 1);
       break;
     case 7:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__usi = __src4_2;
-      __u = __extension__ ((void *) __u + 2);
+      __u = __extension__(void *) ((char *) __u + 2);
       __u->__uc = '\0';
       break;
     case 8:
       __u->__ui = __src0_4;
-      __u = __extension__ ((void *) __u + 4);
+      __u = __extension__(void *) ((char *) __u + 4);
       __u->__ui = __src4_4;
-      __u = __extension__ ((void *) __u + 3);
+      __u = __extension__(void *) ((char *) __u + 3);
       break;
     }
   return &__u->__c;




-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj

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