Re: [PATCH] mm/vmstat: Fix a W=1 clang compiler warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 12 Dec 2024 13:31:26 -0800 Bart Van Assche <bvanassche@xxxxxxx> wrote:

> Fix the following clang compiler warning that is reported if the kernel is
> built with W=1:
> 
> ./include/linux/vmstat.h:518:36: error: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Werror,-Wenum-enum-conversion]
>   518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
>       |                               ~~~~~~~~~~~ ^ ~~~
> 
> ...
>
> --- a/include/linux/vmstat.h
> +++ b/include/linux/vmstat.h
> @@ -515,7 +515,7 @@ static inline const char *node_stat_name(enum node_stat_item item)
>  
>  static inline const char *lru_list_name(enum lru_list lru)
>  {
> -	return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
> +	return node_stat_name(NR_LRU_BASE + (enum node_stat_item)lru) + 3; // skip "nr_"
>  }
>  

Spose so.  One always suspects that adding a typecast is a sign that we
screwed things up somehow.  The relationship between enums lru_list and
node_stat_item is foggy, and I'm unsure whether this is the place to
make the transition it.  Perhaps lru_list_name() should take an
`unsigned int' arg instead.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux