[dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning

Neil Horman nhorman at tuxdriver.com
Mon Mar 16 14:19:16 CET 2015


On Mon, Mar 16, 2015 at 12:56:04PM +0000, John McNamara wrote:
> Fix a warning when the rte_common.h header is included in a compilation
> using  -Wbad-function-cast, such as in Open vSwitch where the
> following warning is emitted repeatedly:
> 
>     ../rte_common.h: In function 'rte_is_aligned':
>     ../rte_common.h:184:9: warning: cast from function call of
>     type 'uintptr_t' to non-matching type 'void *' [-Wbad-function-cast]
> 
> This change fixes the issue in rte_common.h by using the RTE_ALIGN_FLOOR
> macro to get the aligned floor value with generic type casting.
> 
> Signed-off-by: John McNamara <john.mcnamara at intel.com>
> ---
>  lib/librte_eal/common/include/rte_common.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
> index 4971049..86b7e9b 100644
> --- a/lib/librte_eal/common/include/rte_common.h
> +++ b/lib/librte_eal/common/include/rte_common.h
> @@ -120,7 +120,7 @@ rte_align_floor_int(uintptr_t ptr, uintptr_t align)
>   * must be a power-of-two value.
>   */
>  #define RTE_PTR_ALIGN_FLOOR(ptr, align) \
> -	(typeof(ptr))rte_align_floor_int((uintptr_t)ptr, align)
> +	(typeof(ptr))RTE_ALIGN_FLOOR((uintptr_t)ptr, align)
>  
>  /**
>   * Macro to align a value to a given power-of-two. The resultant value
> -- 
> 1.8.1.4
> 
> 

This looks reasonable, but it rather begs the question as to why we need
rte_align_floor_int in the first place.  Theres only one other call site, and it
looks like it could use RTE_PTR_ALIGN_FLOOR just as easily.  What about fixing
up the second call site and removing the function to save some space?

Best
Neil



More information about the dev mailing list