[dpdk-dev] [PATCH v4 05/23] /lib/librte_eal: stage cast from uint64 to long

Bruce Richardson bruce.richardson at intel.com
Thu May 17 12:47:37 CEST 2018


On Mon, May 14, 2018 at 01:09:52PM +0800, Andy Green wrote:
> /projects/lagopus/src/dpdk/build/include/rte_random.h:
> In function 'rte_srand':
> /projects/lagopus/src/dpdk/build/include/rte_random.h:34:10:
> warning: conversion to 'long int' from 'long unsigned int'
> may change the sign of the result [-Wsign-conversion]
>   srand48((long unsigned int)seedval);
> 
> /projects/lagopus/src/dpdk/build/include/rte_random.h:51:8:
> warning: conversion to 'uint64_t' {aka 'long unsigned int'}
> from 'long int' may change the sign of the result
> [-Wsign-conversion]
>   val = lrand48();
>         ^~~~~~~
> /projects/lagopus/src/dpdk/build/include/rte_random.h:53:6:
> warning: conversion to 'long unsigned int' from 'long int'
> may change the sign of the result [-Wsign-conversion]
>   val += lrand48();
> 
> Signed-off-by: Andy Green <andy at warmcat.com>
> ---
>  lib/librte_eal/common/include/rte_random.h |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/librte_eal/common/include/rte_random.h b/lib/librte_eal/common/include/rte_random.h
> index 63bb28088..e30777b83 100644
> --- a/lib/librte_eal/common/include/rte_random.h
> +++ b/lib/librte_eal/common/include/rte_random.h
> @@ -31,7 +31,7 @@ extern "C" {
>  static inline void
>  rte_srand(uint64_t seedval)
>  {
> -	srand48((long unsigned int)seedval);
> +	srand48((long)(unsigned long)seedval);

Is double-cast necessary here? Can we not just cast straight to long?

>  }
>  
>  /**
> @@ -48,9 +48,9 @@ static inline uint64_t
>  rte_rand(void)
>  {
>  	uint64_t val;
> -	val = lrand48();
> +	val = (uint64_t)lrand48();
>  	val <<= 32;
> -	val += lrand48();
> +	val += (uint64_t)lrand48();
>  	return val;
>  }
>  
> 

Apart from the one minor comment above LGTM

Acked-by: Bruce Richardson <bruce.richardson at intel.com>



More information about the dev mailing list