/* $NetBSD: d_shift_to_narrower_type.c,v 1.3 2021/01/31 14:57:28 rillig Exp $ */ # 3 "d_shift_to_narrower_type.c" // Test that type shifts that result to narrower types don't produce warnings. void foo(void) { unsigned long l = 100; unsigned long long ll = 100; unsigned int i = 100; unsigned short s = 100; unsigned char c = 1; l = ll >> 32; // i = ll >> 31; i = ll >> 32; s = ll >> 48; c = ll >> 56; s = i >> 16; c = i >> 24; c = s >> 8; (void)≪ (void)&l; (void)&i; (void)&s; (void)&c; }