1 /* Further -Wswitch tests. */ 2 /* { dg-do compile } */ 3 /* { dg-options "-Wswitch" } */ 4 5 enum e { e1 = 0, e2 = 1, e3 = 1, e4 = 2 }; 6 7 int 8 foo (enum e ei, int j) 9 { 10 switch (ei) 11 { 12 case e1: return 1; 13 case e3: return 2; 14 case e4: return 3; 15 } /* No warning here since e2 has the same value as e3. */ 16 switch (ei) 17 { 18 case e1: return 1; 19 case e2: return 2; 20 } /* { dg-warning "enumeration value `e4' not handled in switch" "enum e4" } */ 21 switch ((int) ei) 22 { 23 case e1: return 1; 24 } /* No warning here since switch condition was cast to int. */ 25 switch ((enum e) j) 26 { 27 case e2: return 1; 28 case e4: return 2; 29 } /* { dg-warning "enumeration value `e1' not handled in switch" "enum e1" } */ 30 return 0; 31 } 32