2005-04-01 20:18:16

by Matt Mackall

[permalink] [raw]
Subject: [PATCH] quiet ide-cd warning

This shuts up a potential uninitialized variable warning.

Signed-off-by: Matt Mackall <[email protected]>

Index: af/drivers/ide/ide-cd.c
===================================================================
--- af.orig/drivers/ide/ide-cd.c 2005-04-01 11:17:37.000000000 -0800
+++ af/drivers/ide/ide-cd.c 2005-04-01 11:55:09.000000000 -0800
@@ -430,7 +430,7 @@ void cdrom_analyze_sense_data(ide_drive_
#if VERBOSE_IDE_CD_ERRORS
{
int i;
- const char *s;
+ const char *s = "bad sense key!";
char buf[80];

printk ("ATAPI device %s:\n", drive->name);
@@ -445,8 +445,6 @@ void cdrom_analyze_sense_data(ide_drive_

if (sense->sense_key < ARY_LEN(sense_key_texts))
s = sense_key_texts[sense->sense_key];
- else
- s = "bad sense key!";

printk("%s -- (Sense key=0x%02x)\n", s, sense->sense_key);


--
Mathematics is the supreme nostalgia of our time.


2005-04-01 23:47:04

by Michael Tokarev

[permalink] [raw]
Subject: Re: [PATCH] quiet ide-cd warning

Matt Mackall wrote:
> This shuts up a potential uninitialized variable warning.

Potential warning or potential uninitialized use?
The code was right before the change, and if the compiler
generates such a warning on it, it's the compiler who
should be fixed, not the code: it's obvious the variable
can't be used uninitialized here, and moving the things
around like that makes the code misleading and hard to
understand...

/mjt

> Signed-off-by: Matt Mackall <[email protected]>
>
> Index: af/drivers/ide/ide-cd.c
> ===================================================================
> --- af.orig/drivers/ide/ide-cd.c 2005-04-01 11:17:37.000000000 -0800
> +++ af/drivers/ide/ide-cd.c 2005-04-01 11:55:09.000000000 -0800
> @@ -430,7 +430,7 @@ void cdrom_analyze_sense_data(ide_drive_
> #if VERBOSE_IDE_CD_ERRORS
> {
> int i;
> - const char *s;
> + const char *s = "bad sense key!";
> char buf[80];
>
> printk ("ATAPI device %s:\n", drive->name);
> @@ -445,8 +445,6 @@ void cdrom_analyze_sense_data(ide_drive_
>
> if (sense->sense_key < ARY_LEN(sense_key_texts))
> s = sense_key_texts[sense->sense_key];
> - else
> - s = "bad sense key!";
>
> printk("%s -- (Sense key=0x%02x)\n", s, sense->sense_key);
>
>

2005-04-02 00:36:04

by Matt Mackall

[permalink] [raw]
Subject: Re: [PATCH] quiet ide-cd warning

On Sat, Apr 02, 2005 at 03:46:53AM +0400, Michael Tokarev wrote:
> Matt Mackall wrote:
> >This shuts up a potential uninitialized variable warning.
>
> Potential warning or potential uninitialized use?
> The code was right before the change, and if the compiler
> generates such a warning on it, it's the compiler who
> should be fixed, not the code: it's obvious the variable
> can't be used uninitialized here, and moving the things
> around like that makes the code misleading and hard to
> understand...

It's a compiler problem.

With gcc 3.3.5:

drivers/ide/ide-cd.c: In function `cdrom_analyze_sense_data':
drivers/ide/ide-cd.c:433: warning: `s' might be used uninitialized in
this function

Looks like the compiler's being stupid about my earlier patch which
makes printk an inline (and it's the only thing in the tree to do so).
gcc-snapshot doesn't complain.

> /mjt
>
> >Signed-off-by: Matt Mackall <[email protected]>
> >
> >Index: af/drivers/ide/ide-cd.c
> >===================================================================
> >--- af.orig/drivers/ide/ide-cd.c 2005-04-01 11:17:37.000000000 -0800
> >+++ af/drivers/ide/ide-cd.c 2005-04-01 11:55:09.000000000 -0800
> >@@ -430,7 +430,7 @@ void cdrom_analyze_sense_data(ide_drive_
> > #if VERBOSE_IDE_CD_ERRORS
> > {
> > int i;
> >- const char *s;
> >+ const char *s = "bad sense key!";
> > char buf[80];
> >
> > printk ("ATAPI device %s:\n", drive->name);
> >@@ -445,8 +445,6 @@ void cdrom_analyze_sense_data(ide_drive_
> >
> > if (sense->sense_key < ARY_LEN(sense_key_texts))
> > s = sense_key_texts[sense->sense_key];
> >- else
> >- s = "bad sense key!";
> >
> > printk("%s -- (Sense key=0x%02x)\n", s, sense->sense_key);
> >
> >

--
Mathematics is the supreme nostalgia of our time.