RE: [PATCH v2] verbs: fix compilation warning with C++20

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eugene,

Red Hat provided another fix, could you try to reproduce the issue on my machine (sjcvl1-rogerio) and give me feedback?

Regards,
Rogerio

-----Original Message-----
From: Daniel Vacek <neelx@xxxxxxxxxx> 
Sent: Tuesday, June 20, 2023 6:20 AM
To: linux-rdma@xxxxxxxxxxxxxxx; Jason Gunthorpe <jgg@xxxxxxxx>
Cc: Leon Romanovsky <leon@xxxxxxxxxx>; Rogerio de Souza Moraes <rogerio@xxxxxxxxxxx>
Subject: Re: [PATCH v2] verbs: fix compilation warning with C++20

EXTERNAL MAIL


Adding CC: Jason

--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. 
> C++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
>





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux