diff mbox series

rtc: Move variable into switch case statement

Message ID 20211209043915.1378393-1-keescook@chromium.org
State Accepted
Headers show
Series rtc: Move variable into switch case statement | expand

Commit Message

Kees Cook Dec. 9, 2021, 4:39 a.m. UTC
When building with automatic stack variable initialization, GCC 12
complains about variables defined outside of switch case statements.
Move the variable into the case that uses it, which silences the warning:

drivers/rtc/dev.c: In function 'rtc_dev_ioctl':
drivers/rtc/dev.c:394:30: warning: statement will never be executed [-Wswitch-unreachable]
  394 |                         long offset;
      |                              ^~~~~~

Fixes: 6a8af1b6568a ("rtc: add parameter ioctl")
Signed-off-by: Kees Cook <keescook@chromium.org>
---
 drivers/rtc/dev.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Gustavo A. R. Silva Dec. 14, 2021, 12:47 a.m. UTC | #1
On Wed, Dec 08, 2021 at 08:39:15PM -0800, Kees Cook wrote:
> When building with automatic stack variable initialization, GCC 12
> complains about variables defined outside of switch case statements.
> Move the variable into the case that uses it, which silences the warning:
> 
> drivers/rtc/dev.c: In function 'rtc_dev_ioctl':
> drivers/rtc/dev.c:394:30: warning: statement will never be executed [-Wswitch-unreachable]
>   394 |                         long offset;
>       |                              ^~~~~~
> 
> Fixes: 6a8af1b6568a ("rtc: add parameter ioctl")
> Signed-off-by: Kees Cook <keescook@chromium.org>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks
--
Gustavo

> ---
>  drivers/rtc/dev.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/rtc/dev.c b/drivers/rtc/dev.c
> index e104972a28fd..69325aeede1a 100644
> --- a/drivers/rtc/dev.c
> +++ b/drivers/rtc/dev.c
> @@ -391,14 +391,14 @@ static long rtc_dev_ioctl(struct file *file,
>  		}
>  
>  		switch(param.param) {
> -			long offset;
>  		case RTC_PARAM_FEATURES:
>  			if (param.index != 0)
>  				err = -EINVAL;
>  			param.uvalue = rtc->features[0];
>  			break;
>  
> -		case RTC_PARAM_CORRECTION:
> +		case RTC_PARAM_CORRECTION: {
> +			long offset;
>  			mutex_unlock(&rtc->ops_lock);
>  			if (param.index != 0)
>  				return -EINVAL;
> @@ -407,7 +407,7 @@ static long rtc_dev_ioctl(struct file *file,
>  			if (err == 0)
>  				param.svalue = offset;
>  			break;
> -
> +		}
>  		default:
>  			if (rtc->ops->param_get)
>  				err = rtc->ops->param_get(rtc->dev.parent, &param);
> -- 
> 2.30.2
> 
> 
> 
>
Alexandre Belloni Jan. 5, 2022, 12:05 a.m. UTC | #2
On Wed, 8 Dec 2021 20:39:15 -0800, Kees Cook wrote:
> When building with automatic stack variable initialization, GCC 12
> complains about variables defined outside of switch case statements.
> Move the variable into the case that uses it, which silences the warning:
> 
> drivers/rtc/dev.c: In function 'rtc_dev_ioctl':
> drivers/rtc/dev.c:394:30: warning: statement will never be executed [-Wswitch-unreachable]
>   394 |                         long offset;
>       |                              ^~~~~~
> 
> [...]

Applied, thanks!

[1/1] rtc: Move variable into switch case statement
      commit: ba52eac083e1598e748811ff58d259f77e4c5c4d

Best regards,
diff mbox series

Patch

diff --git a/drivers/rtc/dev.c b/drivers/rtc/dev.c
index e104972a28fd..69325aeede1a 100644
--- a/drivers/rtc/dev.c
+++ b/drivers/rtc/dev.c
@@ -391,14 +391,14 @@  static long rtc_dev_ioctl(struct file *file,
 		}
 
 		switch(param.param) {
-			long offset;
 		case RTC_PARAM_FEATURES:
 			if (param.index != 0)
 				err = -EINVAL;
 			param.uvalue = rtc->features[0];
 			break;
 
-		case RTC_PARAM_CORRECTION:
+		case RTC_PARAM_CORRECTION: {
+			long offset;
 			mutex_unlock(&rtc->ops_lock);
 			if (param.index != 0)
 				return -EINVAL;
@@ -407,7 +407,7 @@  static long rtc_dev_ioctl(struct file *file,
 			if (err == 0)
 				param.svalue = offset;
 			break;
-
+		}
 		default:
 			if (rtc->ops->param_get)
 				err = rtc->ops->param_get(rtc->dev.parent, &param);