(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
Wswitch-enum.c
       1  /* PR c/5044 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-Wswitch-enum" } */
       4  
       5  enum e { e1, e2 };
       6  
       7  int
       8  foo (int i, int j, enum e ei, enum e ej, enum e ek, enum e el,
       9       enum e em, enum e en, enum e eo, enum e ep)
      10  {
      11    switch (i)
      12      {
      13      case 1: return 1;
      14      case 2: return 2;
      15      }
      16    switch (j)
      17      {
      18      case 3: return 4;
      19      case 4: return 3;
      20      default: break;
      21      }
      22    switch (ei) /* { dg-warning "enumeration value 'e1' not handled in switch" "enum e1" } */
      23      { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
      24      }
      25    switch (ej) /* { dg-warning "enumeration value 'e1' not handled in switch" "enum e1" } */
      26      { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
      27      default: break;
      28      }
      29    switch (ek) /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" } */
      30      {
      31      case e1: return 1;
      32      }
      33    switch (el) /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" } */
      34      {
      35      case e1: return 1;
      36      default: break;
      37      }
      38    switch (em)
      39      {
      40      case e1: return 1;
      41      case e2: return 2;
      42      }
      43    switch (en)
      44      {
      45      case e1: return 1;
      46      case e2: return 2;
      47      default: break;
      48      }
      49    switch (eo)
      50      {
      51      case e1: return 1;
      52      case e2: return 2;
      53      case 3: return 3; /* { dg-warning "case value '3' not in enumerated type 'enum e'" "excess 3" } */
      54      }
      55    switch (ep)
      56      {
      57      case e1: return 1;
      58      case e2: return 2;
      59      case 3: return 3; /* { dg-warning "case value '3' not in enumerated type 'enum e'" "excess 3" } */
      60      default: break;
      61      }
      62    return 0;
      63  }