Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 134693
Collapse All | Expand All

(-)20040817-gcc4.patch.original (-7 / +7 lines)
Lines 26-65 Link Here
26
-  case 1: *((unsigned char*)buffer)++ = fill_value; return;
26
-  case 1: *((unsigned char*)buffer)++ = fill_value; return;
27
-  case 2: *((unsigned short*)buffer)++ = fill_value; return;
27
-  case 2: *((unsigned short*)buffer)++ = fill_value; return;
28
-  case 3: { unsigned char *p=buffer; p[2]=p[1]=p[0] = fill_value;} return;
28
-  case 3: { unsigned char *p=buffer; p[2]=p[1]=p[0] = fill_value;} return;
29
+  case 1: ++p; *p = fill_value; return;
29
+  case 1: *p = fill_value; return;
30
+  case 2: ++s; *s = fill_value; return;
30
+  case 2: *s = fill_value; return;
31
+  case 3: { p[2]=p[1]=p[0] = fill_value;} return;
31
+  case 3: { p[2]=p[1]=p[0] = fill_value;} return;
32
   default:
32
   default:
33
 	if ((int)buffer&1) {
33
 	if ((int)buffer&1) {
34
-		*((unsigned char*)buffer)++ = fill_value; size--;
34
-		*((unsigned char*)buffer)++ = fill_value; size--;
35
+		++p; *p = fill_value; size--;
35
+		*p = fill_value; ++p; size--;
36
+		buffer = p;
36
+		buffer = p;
37
 	}
37
 	}
38
 	if ((int)buffer&2) {
38
 	if ((int)buffer&2) {
39
-		*((unsigned short*)buffer)++ = fill_value; size-=2;
39
-		*((unsigned short*)buffer)++ = fill_value; size-=2;
40
+		++s; *s = fill_value; size-=2;
40
+		*s = fill_value; ++s; size-=2;
41
+		buffer = s;
41
+		buffer = s;
42
 	}
42
 	}
43
 	lsize = size>>2;
43
 	lsize = size>>2;
44
+	unsigned int *up = buffer;
44
+	unsigned int *up = buffer;
45
 	while(lsize) {
45
 	while(lsize) {
46
-		*((unsigned int*)buffer)++ = fill_value;
46
-		*((unsigned int*)buffer)++ = fill_value;
47
+		++up;
48
+		*up = fill_value;
47
+		*up = fill_value;
48
+		++up;
49
 		lsize--;
49
 		lsize--;
50
 	}
50
 	}
51
+	buffer = up;
51
+	buffer = up;
52
 	if (size&2) {
52
 	if (size&2) {
53
-		*((unsigned short*)buffer)++ = fill_value;
53
-		*((unsigned short*)buffer)++ = fill_value;
54
+		s = buffer;
54
+		s = buffer;
55
+		++s;
56
+		*s = fill_value;
55
+		*s = fill_value;
56
+		++s;
57
 	}
57
 	}
58
 	if (size&1) {
58
 	if (size&1) {
59
-		*((unsigned char*)buffer)++ = fill_value;
59
-		*((unsigned char*)buffer)++ = fill_value;
60
+		p = buffer;
60
+		p = buffer;
61
+		++p;
62
+		*p = fill_value;
61
+		*p = fill_value;
62
+		++p;
63
 	}
63
 	}
64
   }
64
   }
65
 }
65
 }

Return to bug 134693