On 05/17/2018 06:47 PM, Bruce Richardson wrote:
On Mon, May 14, 2018 at 01:09:52PM +0800, Andy Green wrote:
In function 'rte_srand':
warning: conversion to 'long int' from 'long unsigned int'
may change the sign of the result [-Wsign-conversion]
   srand48((long unsigned int)seedval);

warning: conversion to 'uint64_t' {aka 'long unsigned int'}
from 'long int' may change the sign of the result
   val = lrand48();
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 <a...@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 
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?

You're right, it can just go straight to long.

I'm going through adding the compiler errors into the patches that have them missing and doing this kind of small change, and I'll reissue in an hour or two (.


@@ -48,9 +48,9 @@ static inline uint64_t
        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.richard...@intel.com>

Reply via email to