[dpdk-dev,v3,06/24] /lib/librte_eal: stage cast from uint64 to long
Checks
Commit Message
/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(-)
Comments
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
>
>
@@ -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;
}