def SwitchBool : DiagGroup<"switch-bool">;
def SwitchEnum : DiagGroup<"switch-enum">;
def Switch : DiagGroup<"switch">;
+def EnumCompareConditional : DiagGroup<"enum-compare-conditional">;
def EnumCompareSwitch : DiagGroup<"enum-compare-switch">;
-def EnumCompare : DiagGroup<"enum-compare", [EnumCompareSwitch]>;
+def EnumCompare : DiagGroup<"enum-compare", [EnumCompareConditional, EnumCompareSwitch]>;
def ImplicitFallthroughPerFunction :
DiagGroup<"implicit-fallthrough-per-function">;
def ImplicitFallthrough : DiagGroup<"implicit-fallthrough",
def warn_conditional_mixed_enum_types : Warning<
"enumeration type mismatch in conditional expression"
"%diff{ ($ and $)|}0,1">,
- InGroup<EnumCompare>;
+ InGroup<EnumCompareConditional>;
def warn_comparison_of_mixed_enum_types_switch : Warning<
"comparison of two values with different enumeration types in switch statement"
"%diff{ ($ and $)|}0,1">,
+// RUN: %clang_cc1 -x c -fsyntax-only -verify -Wenum-compare-conditional %s
// RUN: %clang_cc1 -x c -fsyntax-only -verify -Wenum-compare %s
// RUN: %clang_cc1 -x c -fsyntax-only -verify %s
+// RUN: %clang_cc1 -x c++ -fsyntax-only -verify -Wenum-compare-conditional %s
// RUN: %clang_cc1 -x c++ -fsyntax-only -verify -Wenum-compare %s
// RUN: %clang_cc1 -x c++ -fsyntax-only -verify %s