I have an Ubuntu 14.04 system for arm7l (armhf), and I think I have found a bug in the g++/gcc compiler.
I am expecting to see 'char c' below to end up as a negative number, but as you can see, it does not. x86 system shows the negative number as expected. Anyone have any ideas for a work-around, or proper code if mine is buggy? greearb@build-imx6:~/git/btbits/server$ more test.cc #include <stdlib.h> #include <stdio.h> int main() { unsigned long long val = 0x8b; char c = val; printf("c: %d 0x%x\n", c, c); return 0; } greearb@build-imx6:~/git/btbits/server$ g++ -o test test.cc greearb@build-imx6:~/git/btbits/server$ ./test c: 139 0x8b greearb@build-imx6:~/git/btbits/server$ greearb@build-imx6:~/git/btbits/server$ g++ --version g++ (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. On x86 system: [greearb@ben-dt ~]$ g++ -o test test.cc [greearb@ben-dt ~]$ ./test c: -117 0xffffff8b [greearb@ben-dt ~]$ gcc --version gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) Thanks, Ben -- Ben Greear <gree...@candelatech.com> Candela Technologies Inc http://www.candelatech.com _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org https://lists.gnu.org/mailman/listinfo/help-gplusplus