1 typedef unsigned short __attribute__((bitwise))__le16; 2 static __le16 foo(__le16 a) 3 { 4 return a |= ~a; 5 } 6 7 static int baz(__le16 a) 8 { 9 return ~a == ~a; 10 } 11 12 static int barf(__le16 a) 13 { 14 return a == (a & ~a); 15 } 16 17 static __le16 bar(__le16 a) 18 { 19 return -a; 20 } 21 22 /* 23 * check-name: foul bitwise 24 * check-error-start 25 foul-bitwise.c:9:16: warning: restricted __le16 degrades to integer 26 foul-bitwise.c:9:22: warning: restricted __le16 degrades to integer 27 foul-bitwise.c:19:16: warning: restricted __le16 degrades to integer 28 foul-bitwise.c:19:16: warning: incorrect type in return expression (different base types) 29 foul-bitwise.c:19:16: expected restricted __le16 30 foul-bitwise.c:19:16: got int 31 * check-error-end 32 */