<div dir="auto">Better to cast the constant (1) to avoid warning,<div dir="auto">.</div><div dir="auto">That is what other code does like RTE_BIT macros</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Mar 3, 2025, 23:55 Andre Muezerie <<a href="mailto:andremue@linux.microsoft.com">andremue@linux.microsoft.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">MSVC issues the warning below:<br>
<br>
../lib/fib/trie.c(341): warning C4334: '<<':<br>
result of 32-bit shift implicitly converted to 64 bits<br>
(was 64-bit shift intended?)<br>
<br>
The fix is to cast the result explicitly to uintptr_t since it is used<br>
in pointer arithmetic.<br>
<br>
Signed-off-by: Andre Muezerie <<a href="mailto:andremue@linux.microsoft.com" target="_blank" rel="noreferrer">andremue@linux.microsoft.com</a>><br>
---<br>
 lib/fib/trie.c | 2 +-<br>
 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/lib/fib/trie.c b/lib/fib/trie.c<br>
index 4893f6c636..bf9f63eaa2 100644<br>
--- a/lib/fib/trie.c<br>
+++ b/lib/fib/trie.c<br>
@@ -338,7 +338,7 @@ write_edge(struct rte_trie_tbl *dp, const uint8_t *ip_part, uint64_t next_hop,<br>
                if (ret < 0)<br>
                        return ret;<br>
                if (edge == LEDGE) {<br>
-                       write_to_dp((uint8_t *)p + (1 << dp->nh_sz),<br>
+                       write_to_dp((uint8_t *)p + (uintptr_t)(1 << dp->nh_sz),<br>
                                next_hop << 1, dp->nh_sz, UINT8_MAX - *ip_part);<br>
                } else {<br>
                        write_to_dp(get_tbl_p_by_idx(dp->tbl8, tbl8_idx *<br>
-- <br>
2.48.1.vfs.0.0<br>
<br>
</blockquote></div>