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  }