Description of problem: The following program prints 128 -128 I believe that it should print 128 both times. -------------------------- #include <stdio.h> int main (int argc, const char ** argv) { int a = 128; printf ("%d\n", (a & 0x80) ? 0x80 : 0); unsigned char b = 128; printf ("%d\n", (b & 0x80) ? 0x80 : 0); return 0; } -------------------------- Version-Release number of selected component (if applicable): gcc-4.1.1-31 How reproducible: Every time.
Fixed in gcc-4.1.1-32 in rawhide.