[clang] [Clang][Sema] Fix type of enumerators in incomplete enumerations (PR #84068)

via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 11 11:14:50 PDT 2024


================
@@ -1,12 +1,19 @@
 // RUN: %clang_cc1 -x c -fsyntax-only -verify -Wenum-compare -Wno-unused-comparison %s
 // RUN: %clang_cc1 -x c++ -fsyntax-only -verify -Wenum-compare -Wno-unused-comparison %s
 
+// In C enumerators (i.e enumeration constants) have type int (until C23). In order to support diagnostics such as 
+// -Wenum-compare we pretend they have the type of their enumeration.
+
 typedef enum EnumA {
   A
 } EnumA;
 
 enum EnumB {
-  B
+  B,
+  B1 = 1,
+  // In C++ this comparison doesnt warn as enumerators dont have the type of their enumeration before the closing 
----------------
Kupa-Martin wrote:

done

https://github.com/llvm/llvm-project/pull/84068


More information about the cfe-commits mailing list