It's allowed in C. What you get is a warning by Klocwork because it thinks mixing different enum
types is not a good idea. (I personally agree on this):
Quoting from Klocwork:
Inconsistent case labels
The INCONSISTENT.LABEL checker finds situations in which more than one enum type is used as a switch expression or as a label in a switch statement.
Vulnerability and risk
Using labels with different enum types in a switch statement can cause problems because enum members with the same value can have different meanings. The design intent fails, and unexpected results can occur.