From: Andy Green Date: Sat, 12 May 2018 01:58:57 +0000 (+0800) Subject: eal: explicit cast of builtin for bsf32 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=54a93341ccaaf3665352ddad0807cf3ed40c36f9;p=dpdk.git eal: explicit cast of builtin for bsf32 rte_common.h:416:9: warning: conversion to 'uint32_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Wsign-conversion] return __builtin_ctz(v); ^~~~~~~~~~~~~~~~ The builtin is defined to return int, but we want to return it as uint32_t. Its only defined valid return values are positive integers or zero, which is OK for uint32_t. So just add an explicit cast. Fixes: 03f6bced5bba ("eal: use intrinsic function") Cc: stable@dpdk.org Signed-off-by: Andy Green Reviewed-by: Stephen Hemminger --- diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h index 69e5ed1e37..679f2f184a 100644 --- a/lib/librte_eal/common/include/rte_common.h +++ b/lib/librte_eal/common/include/rte_common.h @@ -413,7 +413,7 @@ rte_align64prevpow2(uint64_t v) static inline uint32_t rte_bsf32(uint32_t v) { - return __builtin_ctz(v); + return (uint32_t)__builtin_ctz(v); } /**