modernc.org/cc@v1.0.1/v2/testdata/bug/8.c (about) 1 #include <stdint.h> 2 3 int main() { 4 int y; 5 int8_t i8; 6 uint8_t u8; 7 int16_t i16; 8 uint16_t u16; 9 int32_t i32; 10 uint32_t u32; 11 int64_t i64; 12 uint64_t u64; 13 14 for (i8 = -4; i8 <= 4; i8++) { 15 for (y = -128; y <= 127; y++) { 16 printf(" signed 8 %i(%x) << %i(%x) = %i(%x)\n", i8, (uint8_t)i8, y, (unsigned)y, i8 << y, (uint8_t)(i8 << y)); 17 } 18 } 19 for (u8 = 0; u8 <= 4; u8++) { 20 for (y = -128; y <= 127; y++) { 21 printf("unsigned 8 %u(%x) << %i(%x) = %u(%x)\n", u8, u8, y, (unsigned)y, u8 << y, u8 << y); 22 } 23 } 24 for (i8 = -4; i8 <= 4; i8++) { 25 for (y = -128; y <= 127; y++) { 26 printf(" signed 8 %i(%x) >> %i(%x) = %i(%x)\n", i8, (uint8_t)i8, y, (unsigned)y, i8 >> y, (uint8_t)(i8 >> y)); 27 } 28 } 29 for (u8 = 0; u8 <= 4; u8++) { 30 for (y = -128; y <= 127; y++) { 31 printf("unsigned 8 %u(%x) >> %i(%x) = %u(%x)\n", u8, u8, y, (unsigned)y, u8 >> y, u8 >> y); 32 } 33 } 34 35 for (i16 = -4; i16 <= 4; i16++) { 36 for (y = -128; y <= 127; y++) { 37 printf(" signed 8 %i(%x) << %i(%x) = %i(%x)\n", i16, (uint16_t)i16, y, (unsigned)y, i16 << y, (uint16_t)(i16 << y)); 38 } 39 } 40 for (u16 = 0; u16 <= 4; u16++) { 41 for (y = -128; y <= 127; y++) { 42 printf("unsigned 8 %u(%x) << %i(%x) = %u(%x)\n", u16, u16, y, (unsigned)y, u16 << y, u16 << y); 43 } 44 } 45 for (i16 = -4; i16 <= 4; i16++) { 46 for (y = -128; y <= 127; y++) { 47 printf(" signed 8 %i(%x) >> %i(%x) = %i(%x)\n", i16, (uint16_t)i16, y, (unsigned)y, i16 >> y, (uint16_t)(i16 >> y)); 48 } 49 } 50 for (u16 = 0; u16 <= 4; u16++) { 51 for (y = -128; y <= 127; y++) { 52 printf("unsigned 8 %u(%x) >> %i(%x) = %u(%x)\n", u16, u16, y, (unsigned)y, u16 >> y, u16 >> y); 53 } 54 } 55 56 for (i32 = -4; i32 <= 4; i32++) { 57 for (y = -128; y <= 127; y++) { 58 printf(" signed 8 %i(%x) << %i(%x) = %i(%x)\n", i32, (uint32_t)i32, y, (unsigned)y, i32 << y, (uint32_t)(i32 << y)); 59 } 60 } 61 for (u32 = 0; u32 <= 4; u32++) { 62 for (y = -128; y <= 127; y++) { 63 printf("unsigned 8 %u(%x) << %i(%x) = %u(%x)\n", u32, u32, y, (unsigned)y, u32 << y, u32 << y); 64 } 65 } 66 for (i32 = -4; i32 <= 4; i32++) { 67 for (y = -128; y <= 127; y++) { 68 printf(" signed 8 %i(%x) >> %i(%x) = %i(%x)\n", i16, (uint32_t)i16, y, (unsigned)y, i16 >> y, (uint32_t)(i16 >> y)); 69 } 70 } 71 for (u32 = 0; u32 <= 4; u32++) { 72 for (y = -128; y <= 127; y++) { 73 printf("unsigned 8 %u(%x) >> %i(%x) = %u(%x)\n", u32, u32, y, (unsigned)y, u32 >> y, u32 >> y); 74 } 75 } 76 77 for (i64 = -4; i64 <= 4; i64++) { 78 for (y = -128; y <= 127; y++) { 79 printf(" signed 8 %i(%x) << %i(%x) = %i(%x)\n", i64, (uint64_t)i64, y, (unsigned)y, i64 << y, (uint64_t)(i64 << y)); 80 } 81 } 82 for (u64 = 0; u64 <= 4; u64++) { 83 for (y = -128; y <= 127; y++) { 84 printf("unsigned 8 %u(%x) << %i(%x) = %u(%x)\n", u64, u64, y, (unsigned)y, u64 << y, u64 << y); 85 } 86 } 87 for (i64 = -4; i64 <= 4; i64++) { 88 for (y = -128; y <= 127; y++) { 89 printf(" signed 8 %i(%x) >> %i(%x) = %i(%x)\n", i16, (uint64_t)i16, y, (unsigned)y, i16 >> y, (uint64_t)(i16 >> y)); 90 } 91 } 92 for (u64 = 0; u64 <= 4; u64++) { 93 for (y = -128; y <= 127; y++) { 94 printf("unsigned 8 %u(%x) >> %i(%x) = %u(%x)\n", u64, u64, y, (unsigned)y, u64 >> y, u64 >> y); 95 } 96 } 97 }