2020-09-07 15:52:28

by Tom Rix

[permalink] [raw]
Subject: [PATCH] EDAC: sb_edac: simplify switch statement

From: Tom Rix <[email protected]>

clang static analyzer reports this problem

sb_edac.c:959:2: warning: Undefined or garbage value
returned to caller
return type;
^~~~~~~~~~~

This is a false positive.

However by initializing the type to DEV_UNKNOWN the 3 case can be
removed from the switch, saving a comparison and jump.

Signed-off-by: Tom Rix <[email protected]>
---
drivers/edac/sb_edac.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
index 68f2fe4df333..93daa4297f2e 100644
--- a/drivers/edac/sb_edac.c
+++ b/drivers/edac/sb_edac.c
@@ -939,12 +939,9 @@ static enum dev_type sbridge_get_width(struct sbridge_pvt *pvt, u32 mtr)

static enum dev_type __ibridge_get_width(u32 mtr)
{
- enum dev_type type;
+ enum dev_type type = DEV_UNKNOWN;

switch (mtr) {
- case 3:
- type = DEV_UNKNOWN;
- break;
case 2:
type = DEV_X16;
break;
--
2.18.1


2020-09-08 04:31:27

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [PATCH] EDAC: sb_edac: simplify switch statement

On Mon, Sep 07, 2020 at 08:32:25AM -0700, [email protected] wrote:
> From: Tom Rix <[email protected]>
>
> clang static analyzer reports this problem
>
> sb_edac.c:959:2: warning: Undefined or garbage value
> returned to caller
> return type;
> ^~~~~~~~~~~
>
> This is a false positive.
>
> However by initializing the type to DEV_UNKNOWN the 3 case can be
> removed from the switch, saving a comparison and jump.
>
> Signed-off-by: Tom Rix <[email protected]>

Some maintainers have a preference for a default case statement but
presumably this case statement has been cutting it as is so:

Reviewed-by: Nathan Chancellor <[email protected]>

> ---
> drivers/edac/sb_edac.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
> index 68f2fe4df333..93daa4297f2e 100644
> --- a/drivers/edac/sb_edac.c
> +++ b/drivers/edac/sb_edac.c
> @@ -939,12 +939,9 @@ static enum dev_type sbridge_get_width(struct sbridge_pvt *pvt, u32 mtr)
>
> static enum dev_type __ibridge_get_width(u32 mtr)
> {
> - enum dev_type type;
> + enum dev_type type = DEV_UNKNOWN;
>
> switch (mtr) {
> - case 3:
> - type = DEV_UNKNOWN;
> - break;
> case 2:
> type = DEV_X16;
> break;
> --
> 2.18.1
>
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200907153225.7294-1-trix%40redhat.com.

2020-09-08 22:09:37

by Luck, Tony

[permalink] [raw]
Subject: RE: [PATCH] EDAC: sb_edac: simplify switch statement

> However by initializing the type to DEV_UNKNOWN the 3 case can be
> removed from the switch, saving a comparison and jump.
>
> Signed-off-by: Tom Rix <[email protected]>

Applied. Thanks.

-Tony

[Boris: Pushed to edac-misc and edac-for-next branches in RAS tree]

2020-09-10 16:15:06

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH] EDAC: sb_edac: simplify switch statement

On Tue, Sep 08, 2020 at 10:08:28PM +0000, Luck, Tony wrote:
> [Boris: Pushed to edac-misc and edac-for-next branches in RAS tree]

Yap, looks good.

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette