Kupa-Martin wrote:

> not an enum compare warning in C++ because `B1` doesn't have an enumeration 
> type due to the enumeration not being fully-defined, and is not an enum 
> compare warning in C because `A` has type `int` (due to p15) and `B1` has 
> type `int` (due to p12).
Yes, you are correct.

> I think we play a bit fast-and-loose with the way we treat enum constants in 
> C in Clang, but that's outside of the scope of this patch.

There are enough differences between the C23 and C++ standards to produce 
different diagnostics. I've made a godbolt 
[snippet](https://godbolt.org/z/741W1356r) that tries to keep track of the type 
of different enumerators in C23 and C++; we warn when we shouldnt and we dont 
warn when we should. In any case, this patch didnt intend to cover C23.

https://github.com/llvm/llvm-project/pull/84068
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to