Re: [PATCH][next] btrfs: remove shadowed declaration of variable i in for-loops

From: David Sterba
Date: Thu Nov 30 2023 - 17:57:56 EST


On Thu, Nov 30, 2023 at 03:08:11PM +0000, Colin Ian King wrote:
> The variable i is declared at the start of function btrfs_qgroup_inherit
> however there are two for-loops that redeclare the variable using a C99
> declaration, causes name shadowing. I believe there is no need for this
> local scoping of i in the loop, so replace the declaration in the loops
> with assignments.
>
> Cleans up clang scan build warnings:
>
> fs/btrfs/qgroup.c:3194:12: warning: declaration shadows a local variable [-Wshadow]
> 3194 | for (int i = 0; i < inherit->num_qgroups; i++) {
> | ^
> fs/btrfs/qgroup.c:3089:6: note: previous declaration is here
> 3089 | int i;
> | ^
> fs/btrfs/qgroup.c:3321:12: warning: declaration shadows a local variable [-Wshadow]
> 3321 | for (int i = 0; i < inherit->num_qgroups; i++)
> | ^
> fs/btrfs/qgroup.c:3089:6: note: previous declaration is here
> 3089 | int i;
> | ^
>
> Signed-off-by: Colin Ian King <colin.i.king@xxxxxxxxx>
> ---
> fs/btrfs/qgroup.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
> index ce446d9d7f23..b1f93dbf468c 100644
> --- a/fs/btrfs/qgroup.c
> +++ b/fs/btrfs/qgroup.c
> @@ -3191,7 +3191,7 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans, u64 srcid,
> ret = -ENOMEM;
> goto out;
> }
> - for (int i = 0; i < inherit->num_qgroups; i++) {
> + for (i = 0; i < inherit->num_qgroups; i++) {

We want to use the for(...) local definitions, so this should change the
function scope 'i'.