On Mon, May 21, 2018 at 10:01:03AM +0800, Andy Green wrote: > In file included from /projects/lagopus/src/dpdk/ > build/include/rte_rwlock.h:12, > from ./mgr/lock.h:24, > from ./mgr/sock_io.c:54: > /projects/lagopus/src/dpdk/build/include/generic/ > rte_rwlock.h: In function 'rte_rwlock_read_lock': > /projects/lagopus/src/dpdk/build/include/generic/ > rte_rwlock.h:74:12: warning: conversion to 'uint32_t' > {aka 'unsigned int'} from 'int32_t' {aka 'int'} may > change the sign of the result [-Wsign-conversion] > x, x + 1); > ^ > /projects/lagopus/src/dpdk/build/include/generic/ > rte_rwlock.h:74:17: warning: conversion to 'uint32_t' > {aka 'unsigned int'} from 'int' may change the sign > of the result [-Wsign-conversion] > x, x + 1); > ~~^~~ > /projects/lagopus/src/dpdk/build/include/generic/ > rte_rwlock.h: In function 'rte_rwlock_write_lock': > /projects/lagopus/src/dpdk/build/include/generic/ > rte_rwlock.h:110:15: warning: unsigned conversion > from 'int' to 'uint32_t' {aka 'unsigned int'} > changes value from '-1' to '4294967295' > [-Wsign-conversion] > 0, -1); > ^~ > > Again in this case we are making explicit the exact cast > that was always happening implicitly. The patch does not > change the generated code. > > The int32_t temp "x" is required to be signed to detect > a < 0 error condition from the lock status. Afterwards, > it has always been implicitly cast to uint32_t when it > is used in the arguments to rte_atomic32_cmpset()... > gcc8.1 objects to the implicit cast now and requires us > to cast it explicitly. > > Fixes: af75078fec ("first public release") > Signed-off-by: Andy Green <a...@warmcat.com> > ---
Acked-by: Bruce Richardson <bruce.richard...@intel.com>