MSVC issues the warning below:

../lib/fib/trie.c(341): warning C4334: '<<':
result of 32-bit shift implicitly converted to 64 bits
(was 64-bit shift intended?)

The fix is to cast the result explicitly to ptrdiff_t since it is used
in pointer arithmetic.

Signed-off-by: Andre Muezerie <andre...@linux.microsoft.com>
---
 lib/fib/trie.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/fib/trie.c b/lib/fib/trie.c
index 4893f6c636..997b7cc338 100644
--- a/lib/fib/trie.c
+++ b/lib/fib/trie.c
@@ -338,7 +338,7 @@ write_edge(struct rte_trie_tbl *dp, const uint8_t *ip_part, 
uint64_t next_hop,
                if (ret < 0)
                        return ret;
                if (edge == LEDGE) {
-                       write_to_dp((uint8_t *)p + (1 << dp->nh_sz),
+                       write_to_dp((uint8_t *)p + (ptrdiff_t)(1 << dp->nh_sz),
                                next_hop << 1, dp->nh_sz, UINT8_MAX - *ip_part);
                } else {
                        write_to_dp(get_tbl_p_by_idx(dp->tbl8, tbl8_idx *
-- 
2.47.0.vfs.0.3

Reply via email to