rjmccall added a comment.

In D72231#1881760 <https://reviews.llvm.org/D72231#1881760>, @nickdesaulniers 
wrote:

> In D72231#1879347 <https://reviews.llvm.org/D72231#1879347>, @rjmccall wrote:
>
> > In D72231#1878528 <https://reviews.llvm.org/D72231#1878528>, @nathanchance 
> > wrote:
> >
> > > There appear to a be semantic difference between GCC and clang with the 
> > > current version of this patch which results in a lot of additional 
> > > warnings in the Linux kernel: https://godbolt.org/z/eHFJd8
> >
> >
> > Warning about casting to an enum seems clearly correct and in scope for 
> > this warning.  Warning about casting to `_Bool` seems clearly incorrect and 
> > should not be warned about at all.
>
>
> Maybe we should only warn if the size of the `void*` is smaller than the size 
> of the `enum`? (32b `void*`, 64b `enum`)? https://godbolt.org/z/oAts-u
>
> Otherwise this warning creates a massive mess for us to clean up, and I 
> suspect Linux kernel developers will just end up disabling the warning.


If deployment is easier if we split out a subgroup that we can turn off, that 
seems fine.  But I don't see any good abstract justification for warning about 
a cast to `int` and not a cast to an `int`-sized `enum`.  What would the 
reasoning be, just that the latter "couldn't possibly" be intended to preserve 
the original pointer value, so it must be an opaque value being represented as 
a `void*`?  That seems pretty weak to me.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72231/new/

https://reviews.llvm.org/D72231



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to