1 enum good { G, };
   2 enum bad  { B, };
   3 enum good g;
   4 
   5 enum good compat_int(void) { return 1; }
   6 
   7 void parg(enum good);
   8 void parg(enum bad);
   9 
  10 void farg(enum good a);
  11 void farg(enum bad  a) { }
  12 
  13 enum good pret(void);
  14 enum bad  pret(void);
  15 
  16 enum good fret(void);
  17 enum bad  fret(void) { return 0; }
  18 
  19 
  20 enum good *ptr;
  21 enum bad  *ptr;
  22 
  23 enum good *gptr = &g;
  24 enum bad  *bptr = &g;
  25 
  26 /*
  27  * check-name: enum-typecheck
  28  * check-command: sparse -Wno-decl $file
  29  * check-known-to-fail
  30  *
  31  * check-error-start
  32 enum-typecheck.c:8:6: error: symbol 'parg' redeclared with different type
  33 enum-typecheck.c:11:6: error: symbol 'farg' redeclared with different type
  34 enum-typecheck.c:14:11: error: symbol 'pret' redeclared with different type
  35 enum-typecheck.c:17:11: error: symbol 'fret' redeclared with different type
  36 enum-typecheck.c:21:12: error: symbol 'ptr' redeclared with different type
  37 enum-typecheck.c:24:20: warning: incorrect type in initializer (different type sizes)
  38  * check-error-end
  39  */