1 // Test that type shifts that result to narrower types don't produce warnings. 2 3 void 4 foo(void) { 5 unsigned long l = 100; 6 unsigned long long ll = 100; 7 unsigned int i = 100; 8 unsigned short s = 100; 9 unsigned char c = 1; 10 11 l = ll >> 32; 12 // i = ll >> 31; 13 i = ll >> 32; 14 s = ll >> 48; 15 c = ll >> 56; 16 s = i >> 16; 17 c = i >> 24; 18 c = s >> 8; 19 (void)≪ 20 (void)&l; 21 (void)&i; 22 (void)&s; 23 (void)&c; 24 } 25