2010-11-09 16:55:38

by Davidlohr Bueso

[permalink] [raw]
Subject: [PATCH] serial: 8250: fix uninitialized compiler warning

From: Davidlohr Bueso <[email protected]>

This addresses:

CC [M] drivers/serial/8250.o
drivers/serial/8250.c: In function ‘serial8250_shutdown’:
drivers/serial/8250.c:1696: warning: ‘i’ may be used uninitialized in this function
drivers/serial/8250.c:1696: note: ‘i’ was declared here

Signed-off-by: Davidlohr Bueso <[email protected]>
---
drivers/serial/8250.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 4d8e14b..f734eee 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1693,7 +1693,7 @@ static int serial_link_irq_chain(struct uart_8250_port *up)

static void serial_unlink_irq_chain(struct uart_8250_port *up)
{
- struct irq_info *i;
+ struct irq_info *i = NULL;
struct hlist_node *n;
struct hlist_head *h;

--
1.7.1



2010-11-09 17:03:05

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] serial: 8250: fix uninitialized compiler warning

On Tue, 09 Nov 2010 13:55:23 -0300 Davidlohr Bueso wrote:

> From: Davidlohr Bueso <[email protected]>
>
> This addresses:
>
> CC [M] drivers/serial/8250.o
> drivers/serial/8250.c: In function ‘serial8250_shutdown’:
> drivers/serial/8250.c:1696: warning: ‘i’ may be used uninitialized in this function
> drivers/serial/8250.c:1696: note: ‘i’ was declared here

so in your analysis of this compiler warning, was the warning correct & justified,
or was it false? I.e., is the init to NULL needed?

If it was false, could we just quieten the warning by using:

struct irq_info *unitialized_var(i);

plus #include <linux/compiler.h> ?


> Signed-off-by: Davidlohr Bueso <[email protected]>
> ---
> drivers/serial/8250.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
> index 4d8e14b..f734eee 100644
> --- a/drivers/serial/8250.c
> +++ b/drivers/serial/8250.c
> @@ -1693,7 +1693,7 @@ static int serial_link_irq_chain(struct uart_8250_port *up)
>
> static void serial_unlink_irq_chain(struct uart_8250_port *up)
> {
> - struct irq_info *i;
> + struct irq_info *i = NULL;
> struct hlist_node *n;
> struct hlist_head *h;
>
> --


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2010-11-09 18:34:35

by Alan

[permalink] [raw]
Subject: Re: [PATCH] serial: 8250: fix uninitialized compiler warning

On Tue, 09 Nov 2010 13:55:23 -0300
Davidlohr Bueso <[email protected]> wrote:

> From: Davidlohr Bueso <[email protected]>
>
> This addresses:
>
> CC [M] drivers/serial/8250.o
> drivers/serial/8250.c: In function ‘serial8250_shutdown’:
> drivers/serial/8250.c:1696: warning: ‘i’ may be used uninitialized in this function
> drivers/serial/8250.c:1696: note: ‘i’ was declared here

NAK - pleass see the four or five previous discussions on this one.

The current compilers all seem to get it right anyway.

Alan

2010-11-09 18:54:47

by Davidlohr Bueso

[permalink] [raw]
Subject: Re: [PATCH] serial: 8250: fix uninitialized compiler warning

On Tue, 2010-11-09 at 18:33 +0000, Alan Cox wrote:
> On Tue, 09 Nov 2010 13:55:23 -0300
> Davidlohr Bueso <[email protected]> wrote:
>
> > From: Davidlohr Bueso <[email protected]>
> >
> > This addresses:
> >
> > CC [M] drivers/serial/8250.o
> > drivers/serial/8250.c: In function ‘serial8250_shutdown’:
> > drivers/serial/8250.c:1696: warning: ‘i’ may be used uninitialized in this function
> > drivers/serial/8250.c:1696: note: ‘i’ was declared here
>
> NAK - pleass see the four or five previous discussions on this one.
>
Yes I should have googled this one before sending.

> The current compilers all seem to get it right anyway.

This is with gcc 4.4.5 (ubuntu 10.10 - latest), released on October 1st,
2010 (quite current).

Thanks,
Davidlohr