Message ID | 152609035240.121661.17896359108855967217.stgit@localhost.localdomain (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Thomas Monjalon |
Headers | show |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
12/05/2018 03:59, Andy Green: > warning: conversion to 'uint64_t' {aka 'long unsigned int'} > from 'long int' may change the sign of the result > [-Wsign-conversion] > val = lrand48(); > ^~~~~~~ [...] > rte_rand(void) > { > uint64_t val; > - val = lrand48(); > + val = (unsigned long)lrand48(); I think the right cast is uint64_t. It makes a difference in 32-bit environment.
On 05/14/2018 12:24 AM, Thomas Monjalon wrote: > 12/05/2018 03:59, Andy Green: >> warning: conversion to 'uint64_t' {aka 'long unsigned int'} >> from 'long int' may change the sign of the result >> [-Wsign-conversion] >> val = lrand48(); >> ^~~~~~~ > [...] >> rte_rand(void) >> { >> uint64_t val; >> - val = lrand48(); >> + val = (unsigned long)lrand48(); > > I think the right cast is uint64_t. > It makes a difference in 32-bit environment. Yes, you are right thanks. I changed it accordingly. -Andy > >
diff --git a/lib/librte_eal/common/include/rte_random.h b/lib/librte_eal/common/include/rte_random.h index 63bb28088..96c64fdd2 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); } /** @@ -48,9 +48,9 @@ static inline uint64_t rte_rand(void) { uint64_t val; - val = lrand48(); + val = (unsigned long)lrand48(); val <<= 32; - val += lrand48(); + val += (unsigned long)lrand48(); return val; }
/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@warmcat.com> --- lib/librte_eal/common/include/rte_random.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)