1static unsigned very_big_shift(unsigned int a) 2{ 3 unsigned r = 0; 4 r |= a << (0ULL ^ ~0U); 5 r |= a << ((( signed long long) ~0U) + 1); 6 r |= a << (((unsigned long long) ~0U) + 1); 7 r |= a << (~((unsigned long long) ~0U)); 8 return r; 9} 10 11/* 12 * check-name: shift-undef-long 13 * check-command: sparse -m64 $file 14 * 15 * check-error-start 16shift-undef-long.c:4:25: warning: shift count is negative (-1) 17shift-undef-long.c:5:47: warning: shift too big (4294967296) for type unsigned int 18shift-undef-long.c:7:20: warning: shift count is negative (-4294967296) 19 * check-error-end 20 */ 21