public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Some cleanup patches for: '...lvalues is deprecated'
@ 2004-07-03 12:53 Joel Soete
  2004-07-03 20:56 ` Vojtech Pavlik
  0 siblings, 1 reply; 18+ messages in thread
From: Joel Soete @ 2004-07-03 12:53 UTC (permalink / raw)
  To: Linux Kernel, marcelo.tosatti

[-- Attachment #1: Type: text/plain, Size: 3470 bytes --]

Hi Marcelo,

Please appolgies first for wrong presentation of previous post (that was the first and certainly the last time that I used the 
'forwarding' option of this webmail interface :( ).

Here are some backport to clean up some warning of type: use of cast experssion
as lvalues is deprecated.
--- linux-2.4.27-rc2-pa4mm/kernel/sysctl.c.Orig	2004-06-29 09:03:42.000000000 +0200
+++ linux-2.4.27-rc2-pa4mm/kernel/sysctl.c	2004-06-29 10:10:31.588030256 +0200
@@ -890,7 +890,7 @@
  				if (!isspace(c))
  					break;
  				left--;
-				((char *) buffer)++;
+				buffer += sizeof(char);
  			}
  			if (!left)
  				break;
@@ -1043,7 +1043,7 @@
  				if (!isspace(c))
  					break;
  				left--;
-				((char *) buffer)++;
+				buffer += sizeof(char);
  			}
  			if (!left)
  				break;
@@ -1144,7 +1144,7 @@
  				if (!isspace(c))
  					break;
  				left--;
-				((char *) buffer)++;
+				buffer += sizeof(char);
  			}
  			if (!left)
  				break;
=========><=========
--- linux-2.4.27-rc2-pa4mm/fs/readdir.c.Orig	2004-06-29 11:18:46.636488264 +0200
+++ linux-2.4.27-rc2-pa4mm/fs/readdir.c	2004-06-29 11:25:40.281604648 +0200
@@ -264,7 +264,7 @@
  	put_user(reclen, &dirent->d_reclen);
  	copy_to_user(dirent->d_name, name, namlen);
  	put_user(0, dirent->d_name + namlen);
-	((char *) dirent) += reclen;
+	dirent = (void *)dirent + reclen;
  	buf->current_dir = dirent;
  	buf->count -= reclen;
  	return 0;
@@ -347,7 +347,7 @@
  	copy_to_user(dirent, &d, NAME_OFFSET(&d));
  	copy_to_user(dirent->d_name, name, namlen);
  	put_user(0, dirent->d_name + namlen);
-	((char *) dirent) += reclen;
+	dirent = (void *)dirent + reclen;
  	buf->current_dir = dirent;
  	buf->count -= reclen;
  	return 0;
=========><=========
--- linux-2.4.27-rc2-pa4mm/drivers/video/fbcon.c.Orig	2004-06-29 10:47:31.901491304 +0200
+++ linux-2.4.27-rc2-pa4mm/drivers/video/fbcon.c	2004-06-29 11:13:31.846343640 +0200
@@ -1877,7 +1877,10 @@
         font length must be multiple of 256, at least. And 256 is multiple
         of 4 */
      k = 0;
-    while (p > new_data) k += *--(u32 *)p;
+    while (p > new_data) {
+        p = (u8 *)((u32 *)p - 1);
+        k += *(u32 *)p;
+    }
      FNTSUM(new_data) = k;
      /* Check if the same font is on some other console already */
      for (i = 0; i < MAX_NR_CONSOLES; i++) {
=========><=========
--- linux-2.4.27-rc2-pa4mm/lib/crc32.c.Orig	2004-06-29 11:29:31.721420448 +0200
+++ linux-2.4.27-rc2-pa4mm/lib/crc32.c	2004-06-29 11:36:19.964358088 +0200
@@ -99,7 +99,9 @@
  	/* Align it */
  	if(unlikely(((long)b)&3 && len)){
  		do {
-			DO_CRC(*((u8 *)b)++);
+			u8 *p = (u8 *)b;
+			DO_CRC(*p++);
+			b = (void *)p;
  		} while ((--len) && ((long)b)&3 );
  	}
  	if(likely(len >= 4)){
@@ -120,7 +122,9 @@
  	/* And the last few bytes */
  	if(len){
  		do {
-			DO_CRC(*((u8 *)b)++);
+			u8 *p = (u8 *)b;
+			DO_CRC(*p++);
+			b = (void *)p;
  		} while (--len);
  	}

@@ -200,7 +204,9 @@
  	/* Align it */
  	if(unlikely(((long)b)&3 && len)){
  		do {
-			DO_CRC(*((u8 *)b)++);
+			u8 *p = (u8 *)b;
+			DO_CRC(*p++);
+			b = (void *)p;
  		} while ((--len) && ((long)b)&3 );
  	}
  	if(likely(len >= 4)){
@@ -221,7 +227,9 @@
  	/* And the last few bytes */
  	if(len){
  		do {
-			DO_CRC(*((u8 *)b)++);
+			u8 *p = (u8 *)b;
+			DO_CRC(*p++);
+			b = (void *)p;
  		} while (--len);
  	}
  	return __be32_to_cpu(crc);
=========><=========

hth,
     Joel

PS: because of bad wrapping pb with mail interface I also join original
files

[-- Attachment #2: k-2.4.27-rc2_crc32.c.diff --]
[-- Type: text/plain, Size: 1002 bytes --]

--- linux-2.4.27-rc2-pa4mm/lib/crc32.c.Orig	2004-06-29 11:29:31.721420448 +0200
+++ linux-2.4.27-rc2-pa4mm/lib/crc32.c	2004-06-29 11:36:19.964358088 +0200
@@ -99,7 +99,9 @@
 	/* Align it */
 	if(unlikely(((long)b)&3 && len)){
 		do {
-			DO_CRC(*((u8 *)b)++);
+			u8 *p = (u8 *)b;
+			DO_CRC(*p++);
+			b = (void *)p;
 		} while ((--len) && ((long)b)&3 );
 	}
 	if(likely(len >= 4)){
@@ -120,7 +122,9 @@
 	/* And the last few bytes */
 	if(len){
 		do {
-			DO_CRC(*((u8 *)b)++);
+			u8 *p = (u8 *)b;
+			DO_CRC(*p++);
+			b = (void *)p;
 		} while (--len);
 	}
 
@@ -200,7 +204,9 @@
 	/* Align it */
 	if(unlikely(((long)b)&3 && len)){
 		do {
-			DO_CRC(*((u8 *)b)++);
+			u8 *p = (u8 *)b;
+			DO_CRC(*p++);
+			b = (void *)p;
 		} while ((--len) && ((long)b)&3 );
 	}
 	if(likely(len >= 4)){
@@ -221,7 +227,9 @@
 	/* And the last few bytes */
 	if(len){
 		do {
-			DO_CRC(*((u8 *)b)++);
+			u8 *p = (u8 *)b;
+			DO_CRC(*p++);
+			b = (void *)p;
 		} while (--len);
 	}
 	return __be32_to_cpu(crc);

[-- Attachment #3: k-2.4.27-rc2_fbcon.c.diff --]
[-- Type: text/plain, Size: 579 bytes --]

--- linux-2.4.27-rc2-pa4mm/drivers/video/fbcon.c.Orig	2004-06-29 10:47:31.901491304 +0200
+++ linux-2.4.27-rc2-pa4mm/drivers/video/fbcon.c	2004-06-29 11:13:31.846343640 +0200
@@ -1877,7 +1877,10 @@
        font length must be multiple of 256, at least. And 256 is multiple
        of 4 */
     k = 0;
-    while (p > new_data) k += *--(u32 *)p;
+    while (p > new_data) {
+        p = (u8 *)((u32 *)p - 1);
+        k += *(u32 *)p;
+    }
     FNTSUM(new_data) = k;
     /* Check if the same font is on some other console already */
     for (i = 0; i < MAX_NR_CONSOLES; i++) {

[-- Attachment #4: k-2.4.27-rc2_readdir.c.diff --]
[-- Type: text/plain, Size: 717 bytes --]

--- linux-2.4.27-rc2-pa4mm/fs/readdir.c.Orig	2004-06-29 11:18:46.636488264 +0200
+++ linux-2.4.27-rc2-pa4mm/fs/readdir.c	2004-06-29 11:25:40.281604648 +0200
@@ -264,7 +264,7 @@
 	put_user(reclen, &dirent->d_reclen);
 	copy_to_user(dirent->d_name, name, namlen);
 	put_user(0, dirent->d_name + namlen);
-	((char *) dirent) += reclen;
+	dirent = (void *)dirent + reclen;
 	buf->current_dir = dirent;
 	buf->count -= reclen;
 	return 0;
@@ -347,7 +347,7 @@
 	copy_to_user(dirent, &d, NAME_OFFSET(&d));
 	copy_to_user(dirent->d_name, name, namlen);
 	put_user(0, dirent->d_name + namlen);
-	((char *) dirent) += reclen;
+	dirent = (void *)dirent + reclen;
 	buf->current_dir = dirent;
 	buf->count -= reclen;
 	return 0;

[-- Attachment #5: k-2.4.27-rc2_sysctl.c.diff --]
[-- Type: text/plain, Size: 635 bytes --]

--- linux-2.4.27-rc2-pa4mm/kernel/sysctl.c.Orig	2004-06-29 09:03:42.000000000 +0200
+++ linux-2.4.27-rc2-pa4mm/kernel/sysctl.c	2004-06-29 10:10:31.588030256 +0200
@@ -890,7 +890,7 @@
 				if (!isspace(c))
 					break;
 				left--;
-				((char *) buffer)++;
+				buffer += sizeof(char);
 			}
 			if (!left)
 				break;
@@ -1043,7 +1043,7 @@
 				if (!isspace(c))
 					break;
 				left--;
-				((char *) buffer)++;
+				buffer += sizeof(char);
 			}
 			if (!left)
 				break;
@@ -1144,7 +1144,7 @@
 				if (!isspace(c))
 					break;
 				left--;
-				((char *) buffer)++;
+				buffer += sizeof(char);
 			}
 			if (!left)
 				break;

^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: Some cleanup patches for: '...lvalues is deprecated'
@ 2004-07-31  8:41 Mikael Pettersson
  2004-08-01 10:40 ` Adrian Bunk
  0 siblings, 1 reply; 18+ messages in thread
From: Mikael Pettersson @ 2004-07-31  8:41 UTC (permalink / raw)
  To: jon, soete.joel; +Cc: dan, linux-kernel, marcelo.tosatti, vojtech

On Fri, 30 Jul 2004 11:11:32 +0200, Joel Soete wrote:
>> FYI, lvalue casts are treated as errors in gcc 3.5.
>> 
>According to this kind remark, I think so that following attachement patc=
>hes
>would be interesting.

(cast-as-lvalue elimination patches omitted)

Did you know that there is a larger gcc-3.4 fixes patch:
<http://www.csd.uu.se/~mikpe/linux/patches/2.4/patch-gcc340-fixes-v4-2.4.27-rc3>
?

This patch handles all issues when using gcc-3.4 to compile
the current 2.4 kernel, of which cast-as-lvalue is just one.
The only difference, AFAIK, is that gcc-3.4 "merely" warns
about cast-as-lvalue while gcc-3.5 errors out on them.

All changes in the gcc-3.4 fixes patch are backports from
the 2.6 kernel, except in very few cases when 2.4 and 2.6
have diverged making slightly different fixes more appropriate
for 2.4.

The patch handles i386, x86-64, and ppc architecture code,
plus whatever drivers etc I've ever needed, plus drivers
etc other people have contributed or requested fixes for.
The only code I'm not considering is architecture code for
other architectures than i386/x86-64/ppc, since those are
the only ones I can compile and test.

/Mikael

^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: Some cleanup patches for: '...lvalues is deprecated'
@ 2004-08-02 11:34 Mikael Pettersson
  2004-08-02 23:08 ` Adrian Bunk
  0 siblings, 1 reply; 18+ messages in thread
From: Mikael Pettersson @ 2004-08-02 11:34 UTC (permalink / raw)
  To: bunk; +Cc: linux-kernel, marcelo.tosatti

On Sun, 1 Aug 2004 12:40:26 +0200, Adrian Bunk wrote:
>On Sat, Jul 31, 2004 at 10:41:53AM +0200, Mikael Pettersson wrote:
>>...
>> Did you know that there is a larger gcc-3.4 fixes patch:
>> <http://www.csd.uu.se/~mikpe/linux/patches/2.4/patch-gcc340-fixes-v4-2.4.27-rc3>
>> ?
>> 
>> This patch handles all issues when using gcc-3.4 to compile
>> the current 2.4 kernel, of which cast-as-lvalue is just one.
>> The only difference, AFAIK, is that gcc-3.4 "merely" warns
>> about cast-as-lvalue while gcc-3.5 errors out on them.
>> 
>> All changes in the gcc-3.4 fixes patch are backports from
>> the 2.6 kernel, except in very few cases when 2.4 and 2.6
>> have diverged making slightly different fixes more appropriate
>> for 2.4.
>>...
>
>
>BTW:
>
>Please don't include the compiler.h part of your patch.
>It's already reverted in -mm, and we're currently fixing the inlines
>in 2.6 .
>
>This was started after with this patch in 2.6 somewhere a required 
>inlining did no longer occur (and a compile error is definitely better 
>than a potential runtime problem).

Which one was that? DaveM wrote recently that they had eliminated
SPARC's save_flags/restore_flags-in-same-stack-frame requirement.

>Although fixing it correctly touches at about three dozen files, these 
>are pretty straightforward patches (removing inlines or moving code 
>inside files). After all these issues are sorted out in 2.6, the inline 
>fixes could be backported to 2.4 .

I'll consider attacking the inlining issues, after I've reviewed my
cast-as-lvalue and fastcall fixes -- I noticed that at least one fix
had changed in 2.6 since I first adapted it to 2.4.

/Mikael

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2004-08-02 23:08 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-03 12:53 Some cleanup patches for: '...lvalues is deprecated' Joel Soete
2004-07-03 20:56 ` Vojtech Pavlik
2004-07-03 21:39   ` Joel Soete
2004-07-03 21:45     ` Vojtech Pavlik
2004-07-05  5:10   ` Daniel Jacobowitz
2004-07-05  8:59     ` David Vrabel
2004-07-05 11:59     ` Joel Soete
2004-07-27 12:54       ` Marcelo Tosatti
2004-07-27 15:59         ` Joel Soete
2004-07-27 15:59         ` Joel Soete
2004-07-27 16:31           ` Jon Oberheide
2004-07-30  9:11             ` Joel Soete
2004-07-30 12:51               ` Joel Soete
2004-07-30 17:29                 ` Joel Soete
  -- strict thread matches above, loose matches on Subject: below --
2004-07-31  8:41 Mikael Pettersson
2004-08-01 10:40 ` Adrian Bunk
2004-08-02 11:34 Mikael Pettersson
2004-08-02 23:08 ` Adrian Bunk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox