public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] gcc-3.0 warnings
@ 2001-03-23  0:11 J . A . Magallon
  2001-03-23  0:28 ` Alan Cox
  2001-03-23 17:12 ` Horst von Brand
  0 siblings, 2 replies; 16+ messages in thread
From: J . A . Magallon @ 2001-03-23  0:11 UTC (permalink / raw)
  To: Linux Kernel; +Cc: Alan Cox, Linus Torvalds

Hi, kernel list readers.

I have been building (and hopefully booting) ac-21 with gcc-3.0 snapshot
dated 20010312. I have cleared the 99% of the warnings that 3.0 issues
when building the kernel. Obviuosly, only in the main kernel part for
i386 and the drivers I use. I suppose other arch will require a similar
cleanup.

All are related to multiline strings in asm() sentences, that seem to have
been deprecated, and out: or default: labels at the end of blocks. Pathc
is inlined.

There are a couple more curious errors:
1) Is this a bug ?
make[1]: Entering directory `/usr/src/linux-2.4.2-ac21/arch/i386/kernel'
gcc ... -c -o setup.o setup.c
setup.c: In function `get_cpuinfo':
setup.c:2378: warning: unused variable `x86_udelay_tsc'
I have not patched this. Is a reminder of previous work, or should be used
for something and the use has flown erroneously ?

2)
gcc ... -c -o aic7xxx.o aic7xxx.c
aic7xxx.c: In function `ahc_print_scb':
aic7xxx.c:1335: warning: operation on `i' may be undefined
(nine times)
The piece of code is three reps of this:
printf("             %#02x %#02x %#02x %#02x\n",
    hscb->shared_data.cdb[i++],
    hscb->shared_data.cdb[i++],
    hscb->shared_data.cdb[i++],
    hscb->shared_data.cdb[i++]);
I suppose that gcc claims that the result is dependent on evaluation order
of the args to the printf(), so it is potentially dangerous. Just chaged it
to
    hscb->shared_data.cdb[ 1],
    hscb->shared_data.cdb[ 2],
    hscb->shared_data.cdb[ 3],
etc.

If mantainers do not like the way I corrected this, at least it is a list
of thigs to look at.

BTW, after that changes, the kernel built and booted ok.

============ patch-gcc-3

--- linux-2.4.2-ac21/fs/smbfs/cache.c.orig	Fri Mar 23 00:45:27 2001
+++ linux-2.4.2-ac21/fs/smbfs/cache.c	Fri Mar 23 00:46:04 2001
@@ -34,7 +34,7 @@
 
 	page = grab_cache_page(&dir->i_data, 0);
 	if (!page)
-		goto out;
+		return;
 
 	if (!Page_Uptodate(page))
 		goto out_unlock;
@@ -47,7 +47,6 @@
 out_unlock:
 	UnlockPage(page);
 	page_cache_release(page);
-out:
 }
 
 /*
--- linux-2.4.2-ac21/fs/smbfs/ioctl.c.orig	Fri Mar 23 00:46:22 2001
+++ linux-2.4.2-ac21/fs/smbfs/ioctl.c	Fri Mar 23 00:46:56 2001
@@ -45,7 +45,7 @@
 		if (!copy_from_user(&opt, (void *)arg, sizeof(opt)))
 			result = smb_newconn(server, &opt);
 		break;
-	default:
+	default:;
 	}
 
 	return result;
--- linux-2.4.2-ac21/include/asm-i386/string.h.orig	Thu Mar 22 23:17:03
2001
+++ linux-2.4.2-ac21/include/asm-i386/string.h	Thu Mar 22 23:20:40 2001
@@ -516,12 +516,12 @@
 {
 	if (!size)
 		return addr;
-	__asm__("repnz; scasb
-		jnz 1f
-		dec %%edi
-1:		"
-		: "=D" (addr), "=c" (size)
-		: "0" (addr), "1" (size), "a" (c));
+	__asm__("repnz; scasb\n\t"
+			"		jnz 1f\n\t"
+			"		dec %%edi\n\t"
+			"1:"
+			: "=D" (addr), "=c" (size)
+			: "0" (addr), "1" (size), "a" (c));
 	return addr;
 }
 
--- linux-2.4.2-ac21/include/asm-i386/system.h.orig	Thu Mar 22 23:20:50
2001
+++ linux-2.4.2-ac21/include/asm-i386/system.h	Thu Mar 22 23:21:47 2001
@@ -145,10 +145,10 @@
 		unsigned int low, unsigned int high)
 {
 __asm__ __volatile__ (
-	"1:	movl (%0), %%eax;
-		movl 4(%0), %%edx;
-		cmpxchg8b (%0);
-		jnz 1b"
+	"1:	movl (%0), %%eax;\n\t"
+	"movl 4(%0), %%edx;\n\t"
+	"cmpxchg8b (%0);\n\t"
+	"jnz 1b"
 	::		"D"(ptr),
 			"b"(low),
 			"c"(high)
--- linux-2.4.2-ac21/include/asm-i386/checksum.h.orig	Thu Mar 22 23:21:58
2001
+++ linux-2.4.2-ac21/include/asm-i386/checksum.h	Thu Mar 22 23:25:19 2001
@@ -69,25 +69,24 @@
 					  unsigned int ihl) {
 	unsigned int sum;
 
-	__asm__ __volatile__("
-	    movl (%1), %0
-	    subl $4, %2
-	    jbe 2f
-	    addl 4(%1), %0
-	    adcl 8(%1), %0
-	    adcl 12(%1), %0
-1:	    adcl 16(%1), %0
-	    lea 4(%1), %1
-	    decl %2
-	    jne	1b
-	    adcl $0, %0
-	    movl %0, %2
-	    shrl $16, %0
-	    addw %w2, %w0
-	    adcl $0, %0
-	    notl %0
-2:
-	    "
+	__asm__ __volatile__(
+"	    movl (%1), %0\n"
+"	    subl $4, %2\n"
+"	    jbe 2f\n"
+"	    addl 4(%1), %0\n"
+"	    adcl 8(%1), %0\n"
+"	    adcl 12(%1), %0\n"
+"1:	    adcl 16(%1), %0\n"
+"	    lea 4(%1), %1\n"
+"	    decl %2\n"
+"	    jne	1b\n"
+"	    adcl $0, %0\n"
+"	    movl %0, %2\n"
+"	    shrl $16, %0\n"
+"	    addw %w2, %w0\n"
+"	    adcl $0, %0\n"
+"	    notl %0\n"
+"2:"
 	/* Since the input registers which are loaded with iph and ipl
 	   are modified, we must also specify them as outputs, or gcc
 	   will assume they contain their original values. */
@@ -102,10 +101,9 @@
 
 static inline unsigned int csum_fold(unsigned int sum)
 {
-	__asm__("
-		addl %1, %0
-		adcl $0xffff, %0
-		"
+	__asm__(
+		"addl %1, %0\n"
+		"adcl $0xffff, %0\n"
 		: "=r" (sum)
 		: "r" (sum << 16), "0" (sum & 0xffff0000)
 	);
@@ -118,12 +116,11 @@
 						   unsigned short proto,
 						   unsigned int sum) 
 {
-    __asm__("
-	addl %1, %0
-	adcl %2, %0
-	adcl %3, %0
-	adcl $0, %0
-	"
+    __asm__(
+	"addl %1, %0\n"
+	"adcl %2, %0\n"
+	"adcl %3, %0\n"
+	"adcl $0, %0\n"
 	: "=r" (sum)
 	: "g" (daddr), "g"(saddr), "g"((ntohs(len)<<16)+proto*256), "0"(sum));
     return sum;
@@ -158,19 +155,18 @@
 						     unsigned short proto,
 						     unsigned int sum) 
 {
-	__asm__("
-		addl 0(%1), %0
-		adcl 4(%1), %0
-		adcl 8(%1), %0
-		adcl 12(%1), %0
-		adcl 0(%2), %0
-		adcl 4(%2), %0
-		adcl 8(%2), %0
-		adcl 12(%2), %0
-		adcl %3, %0
-		adcl %4, %0
-		adcl $0, %0
-		"
+	__asm__(
+		"addl 0(%1), %0\n"
+		"adcl 4(%1), %0\n"
+		"adcl 8(%1), %0\n"
+		"adcl 12(%1), %0\n"
+		"adcl 0(%2), %0\n"
+		"adcl 4(%2), %0\n"
+		"adcl 8(%2), %0\n"
+		"adcl 12(%2), %0\n"
+		"adcl %3, %0\n"
+		"adcl %4, %0\n"
+		"adcl $0, %0\n"
 		: "=&r" (sum)
 		: "r" (saddr), "r" (daddr), 
 		  "r"(htonl(len)), "r"(htonl(proto)), "0"(sum));
--- linux-2.4.2-ac21/include/asm-i386/floppy.h.orig	Thu Mar 22 23:27:27
2001
+++ linux-2.4.2-ac21/include/asm-i386/floppy.h	Thu Mar 22 23:28:37 2001
@@ -75,28 +75,28 @@
 
 #ifndef NO_FLOPPY_ASSEMBLER
 	__asm__ (
-       "testl %1,%1
-	je 3f
-1:	inb %w4,%b0
-	andb $160,%b0
-	cmpb $160,%b0
-	jne 2f
-	incw %w4
-	testl %3,%3
-	jne 4f
-	inb %w4,%b0
-	movb %0,(%2)
-	jmp 5f
-4:     	movb (%2),%0
-	outb %b0,%w4
-5:	decw %w4
-	outb %0,$0x80
-	decl %1
-	incl %2
-	testl %1,%1
-	jne 1b
-3:	inb %w4,%b0
-2:	"
+"	testl %1,%1\n"
+"	je 3f\n"
+"1:	inb %w4,%b0\n"
+"	andb $160,%b0\n"
+"	cmpb $160,%b0\n"
+"	jne 2f\n"
+"	incw %w4\n"
+"	testl %3,%3\n"
+"	jne 4f\n"
+"	inb %w4,%b0\n"
+"	movb %0,(%2)\n"
+"	jmp 5f\n"
+"4:     	movb (%2),%0\n"
+"	outb %b0,%w4\n"
+"5:	decw %w4\n"
+"	outb %0,$0x80\n"
+"	decl %1\n"
+"	incl %2\n"
+"	testl %1,%1\n"
+"	jne 1b\n"
+"3:	inb %w4,%b0\n"
+"2:"
        : "=a" ((char) st), 
        "=c" ((long) virtual_dma_count), 
        "=S" ((long) virtual_dma_addr)
--- linux-2.4.2-ac21/net/ipv4/icmp.c.orig	Thu Mar 22 23:39:22 2001
+++ linux-2.4.2-ac21/net/ipv4/icmp.c	Thu Mar 22 23:42:23 2001
@@ -574,7 +574,7 @@
 				} else {
 					info = ip_rt_frag_needed(iph, ntohs(icmph->un.frag.mtu));
 					if (!info) 
-						goto out;
+						return;
 				}
 				break;
 			case ICMP_SR_FAILED:
@@ -585,7 +585,7 @@
 				break;
 		}
 		if (icmph->code>NR_ICMP_UNREACH)
-			goto out;
+			return;
 	} else if (icmph->type == ICMP_PARAMETERPROB) {
 		info = ntohl(icmph->un.gateway)>>24;
 	}
@@ -613,7 +613,7 @@
 			if (net_ratelimit())
 				printk(KERN_WARNING "%u.%u.%u.%u sent an
invalid ICMP error to a broadcast.\n",
 			       	NIPQUAD(skb->nh.iph->saddr));
-			goto out;
+			return;
 		}
 	}
 
@@ -621,7 +621,7 @@
 	 * avoid additional coding at protocol handlers.
 	 */
 	if (!pskb_may_pull(skb, iph->ihl*4+8))
-		goto out;
+		return;
 
 	iph = (struct iphdr *) skb->data;
 	protocol = iph->protocol;
@@ -668,7 +668,6 @@
 
 		ipprot = nextip;
   	}
-out:
 }
 
 
@@ -879,7 +878,7 @@
 	case CHECKSUM_NONE:
 		if ((u16)csum_fold(skb_checksum(skb, 0, skb->len, 0)))
 			goto error;
-	default:
+	default:;
 	}
 
 	if (!pskb_pull(skb, sizeof(struct icmphdr)))
--- linux-2.4.2-ac21/drivers/scsi/aic7xxx/aic7xxx.c.orig	Fri Mar 23
01:01:40 2001
+++ linux-2.4.2-ac21/drivers/scsi/aic7xxx/aic7xxx.c	Fri Mar 23 00:53:11
2001
@@ -1327,22 +1327,21 @@
 	       hscb->scsiid,
 	       hscb->lun,
 	       hscb->cdb_len);
-	i=0;
 	printf("Shared Data: %#02x %#02x %#02x %#02x\n",
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++]);
+	       hscb->shared_data.cdb[ 0],
+	       hscb->shared_data.cdb[ 1],
+	       hscb->shared_data.cdb[ 2],
+	       hscb->shared_data.cdb[ 3]);
 	printf("             %#02x %#02x %#02x %#02x\n",
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++]);
+	       hscb->shared_data.cdb[ 4],
+	       hscb->shared_data.cdb[ 5],
+	       hscb->shared_data.cdb[ 6],
+	       hscb->shared_data.cdb[ 7]);
 	printf("             %#02x %#02x %#02x %#02x\n",
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++],
-	       hscb->shared_data.cdb[i++]);
+	       hscb->shared_data.cdb[ 8],
+	       hscb->shared_data.cdb[ 9],
+	       hscb->shared_data.cdb[10],
+	       hscb->shared_data.cdb[11]);
 	printf("        dataptr:%#x datacnt:%#x sgptr:%#x tag:%#x\n",
 		ahc_le32toh(hscb->dataptr),
 		ahc_le32toh(hscb->datacnt),
--- linux-2.4.2-ac21/drivers/i2c/i2c-core.c.orig	Fri Mar 23 00:42:08 2001
+++ linux-2.4.2-ac21/drivers/i2c/i2c-core.c	Fri Mar 23 00:43:40 2001
@@ -378,13 +378,9 @@
 					if ((res = driver->
 							detach_client(client)))
 					{
-						printk("i2c-core.o: while "
-						       "unregistering driver "
-						       "`%s', the client at "
-						       "address %02x of
-						       adapter `%s' could not
-						       be detached; driver
-						       not unloaded!",
+						printk("i2c-core.o: while unregistering
driver <%s>"
+						   " the client at address %02x of
adapter <%s>"
+						   " could not be detached; driver
not unloaded!",
 						       driver->name,
 						       client->addr,
 						       adap->name);
--- linux-2.4.2-ac21/arch/i386/kernel/semaphore.c.orig	Thu Mar 22
23:42:54 2001
+++ linux-2.4.2-ac21/arch/i386/kernel/semaphore.c	Thu Mar 22 23:46:58
2001
@@ -231,49 +231,45 @@
 );
 
 asm(
-"
-.align 4
-.globl __down_read_failed
-__down_read_failed:
-	pushl	%edx
-	pushl	%ecx
-	jnc	2f
-
-3:	call	down_read_failed_biased
-
-1:	popl	%ecx
-	popl	%edx
-	ret
-
-2:	call	down_read_failed
-	" LOCK "subl	$1,(%eax)
-	jns	1b
-	jnc	2b
-	jmp	3b
-"
+".align 4\n"
+".globl __down_read_failed\n"
+"__down_read_failed:\n"
+"	pushl	%edx\n"
+"	pushl	%ecx\n"
+"	jnc	2f\n"
+"\n"
+"3:	call	down_read_failed_biased\n"
+"\n"
+"1:	popl	%ecx\n"
+"	popl	%edx\n"
+"	ret\n"
+"\n"
+"2:	call	down_read_failed\n"
+LOCK "subl	$1,(%eax)\n"
+"	jns	1b\n"
+"	jnc	2b\n"
+"	jmp	3b\n"
 );
 
 asm(
-"
-.align 4
-.globl __down_write_failed
-__down_write_failed:
-	pushl	%edx
-	pushl	%ecx
-	jnc	2f
-
-3:	call	down_write_failed_biased
-
-1:	popl	%ecx
-	popl	%edx
-	ret
-
-2:	call	down_write_failed
-	" LOCK "subl	$" RW_LOCK_BIAS_STR ",(%eax)
-	jz	1b
-	jnc	2b
-	jmp	3b
-"
+".align 4\n"
+".globl __down_write_failed\n"
+"__down_write_failed:\n"
+"	pushl	%edx\n"
+"	pushl	%ecx\n"
+"	jnc	2f\n"
+"\n"
+"3:	call	down_write_failed_biased\n"
+"\n"
+"1:	popl	%ecx\n"
+"	popl	%edx\n"
+"	ret\n"
+"\n"
+"2:	call	down_write_failed\n"
+LOCK "subl	$" RW_LOCK_BIAS_STR ",(%eax)\n"
+"	jz	1b\n"
+"	jnc	2b\n"
+"	jmp	3b\n"
 );
 
 struct rw_semaphore *FASTCALL(rwsem_wake_readers(struct rw_semaphore *sem));
@@ -384,23 +380,21 @@
 }
 
 asm(
-"
-.align 4
-.globl __rwsem_wake
-__rwsem_wake:
-	pushl	%edx
-	pushl	%ecx
-
-	jz	1f
-	call	rwsem_wake_readers
-	jmp	2f
-
-1:	call	rwsem_wake_writer
-
-2:	popl	%ecx
-	popl	%edx
-	ret
-"
+".align 4\n"
+".globl __rwsem_wake\n"
+"__rwsem_wake:\n"
+"	pushl	%edx\n"
+"	pushl	%ecx\n"
+"\n"
+"	jz	1f\n"
+"	call	rwsem_wake_readers\n"
+"	jmp	2f\n"
+"\n"
+"1:	call	rwsem_wake_writer\n"
+"\n"
+"2:	popl	%ecx\n"
+"	popl	%edx\n"
+"	ret\n"
 );
 
 /* Called when someone has done an up that transitioned from
@@ -425,30 +419,28 @@
 
 #if defined(CONFIG_SMP)
 asm(
-"
-.align	4
-.globl	__write_lock_failed
-__write_lock_failed:
-	" LOCK "addl	$" RW_LOCK_BIAS_STR ",(%eax)
-1:	cmpl	$" RW_LOCK_BIAS_STR ",(%eax)
-	jne	1b
-
-	" LOCK "subl	$" RW_LOCK_BIAS_STR ",(%eax)
-	jnz	__write_lock_failed
-	ret
-
-
-.align	4
-.globl	__read_lock_failed
-__read_lock_failed:
-	lock ; incl	(%eax)
-1:	cmpl	$1,(%eax)
-	js	1b
-
-	lock ; decl	(%eax)
-	js	__read_lock_failed
-	ret
-"
+".align	4\n"
+".globl	__write_lock_failed\n"
+"__write_lock_failed:\n"
+LOCK "addl	$" RW_LOCK_BIAS_STR ",(%eax)\n"
+"1:	cmpl	$" RW_LOCK_BIAS_STR ",(%eax)\n"
+"	jne	1b\n"
+"\n"
+LOCK "subl	$" RW_LOCK_BIAS_STR ",(%eax)\n"
+"	jnz	__write_lock_failed\n"
+"	ret\n"
+"\n"
+"\n"
+".align	4\n"
+".globl	__read_lock_failed\n"
+"__read_lock_failed:\n"
+"	lock ; incl	(%eax)\n"
+"1:	cmpl	$1,(%eax)\n"
+"	js	1b\n"
+"\n"
+"	lock ; decl	(%eax)\n"
+"	js	__read_lock_failed\n"
+"	ret\n"
 );
 #endif
 




-- 
J.A. Magallon                                          #  Let the source
mailto:jamagallon@able.es                              #  be with you, Luke... 

Linux werewolf 2.4.2-ac21 #5 SMP Thu Mar 22 23:47:26 CET 2001 i686


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

end of thread, other threads:[~2001-03-26 14:27 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-03-23  0:11 [PATCH] gcc-3.0 warnings J . A . Magallon
2001-03-23  0:28 ` Alan Cox
2001-03-23  0:38   ` J . A . Magallon
2001-03-23  9:29     ` Tim Waugh
2001-03-23 23:56     ` Ingo Oeser
2001-03-23 22:29   ` Bill Wendling
2001-03-23 22:34     ` Linus Torvalds
2001-03-23 22:59       ` J . A . Magallon
2001-03-24  0:31         ` Tim Wright
2001-03-24  0:42         ` Andrew Morton
2001-03-24  0:55           ` J . A . Magallon
2001-03-24 21:51             ` Tim Waugh
2001-03-24  1:16         ` Stephen Satchell
2001-03-26 14:25           ` Tim Wright
2001-03-24  5:30         ` Ion Badulescu
2001-03-23 17:12 ` Horst von Brand

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