Bump. Was this forgotten or overlooked? --nX On Tue, Jun 13, 2023 at 3:20 PM Daniel Vacek <neelx@xxxxxxxxxx> wrote: > > Our customer reported the below warning whe using Clang v16.0.4 and C++20, > on a code that includes the header "/usr/include/infiniband/verbs.h": > > error: bitwise operation between different enumeration types ('ibv_access_flags' and > 'ib_uverbs_access_flags') is deprecated [-Werror,-Wdeprecated-enum-enum-conversion] > mem->mr = ibv_reg_mr(dev->pd, (void*)start, len, IBV_ACCESS_LOCAL_WRITE); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /usr/include/infiniband/verbs.h:2514:19: note: expanded from macro 'ibv_reg_mr' > ((access) & IBV_ACCESS_OPTIONAL_RANGE) == 0)) > ~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ > 1 error generated. > > According to the article "Clang 11 warning: Bitwise operation between different > enumeration types is deprecated": > > C++20's P1120R0 deprecated bitwise operations between different enums. Such code is > likely to become ill-formed in C++23. Clang 11 warns about such cases. It should be fixed. > > Reported-by: Rogerio Moraes <rogerio@xxxxxxxxxxx> > Signed-off-by: Daniel Vacek <neelx@xxxxxxxxxx> > --- > libibverbs/verbs.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libibverbs/verbs.h b/libibverbs/verbs.h > index 03a7a2a7..ed9aed21 100644 > --- a/libibverbs/verbs.h > +++ b/libibverbs/verbs.h > @@ -2590,7 +2590,7 @@ __ibv_reg_mr(struct ibv_pd *pd, void *addr, size_t length, unsigned int access, > #define ibv_reg_mr(pd, addr, length, access) \ > __ibv_reg_mr(pd, addr, length, access, \ > __builtin_constant_p( \ > - ((access) & IBV_ACCESS_OPTIONAL_RANGE) == 0)) > + ((int)(access) & IBV_ACCESS_OPTIONAL_RANGE) == 0)) > > /** > * ibv_reg_mr_iova - Register a memory region with a virtual offset > -- > 2.40.1 >