1 typedef unsigned short __attribute__((bitwise)) le16;
   2 struct s {
   3         int a:2;
   4         int b:2;
   5         int c:2;
   6 };
   7 
   8 static _Bool fresi(le16 a)     { return a; }
   9 static _Bool frese(le16 a)     { return (_Bool)a; }
  10 static _Bool fstsi(struct s a) { return a; }
  11 static _Bool fstse(struct s a) { return (_Bool)a; }
  12 
  13 /*
  14  * check-name: bool-cast-bad.c
  15  * check-command: sparse $file
  16  *
  17  * check-error-start
  18 bool-cast-bad.c:10:41: warning: incorrect type in return expression (different base types)
  19 bool-cast-bad.c:10:41:    expected bool
  20 bool-cast-bad.c:10:41:    got struct s a
  21 bool-cast-bad.c:11:42: warning: cast from non-scalar
  22  * check-error-end
  23  */