On Mon, Mar 03, 2025 at 10:49:52PM -0800, Stephen Hemminger wrote:
> Better to cast the constant (1) to avoid warning,
> .
> That is what other code does like RTE_BIT macros

Alright, I made that change in v4.

> 
> On Mon, Mar 3, 2025, 23:55 Andre Muezerie <andre...@linux.microsoft.com>
> wrote:
> 
> > 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 uintptr_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..bf9f63eaa2 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 + (uintptr_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.48.1.vfs.0.0
> >
> >

Reply via email to