Q: signed vs unsigned char, PPC vs x86 gcc 3.3.5 compiler differences

3 messages, 3 authors, 2005-10-03 · open the first message on its own page

Q: signed vs unsigned char, PPC vs x86 gcc 3.3.5 compiler differences

From: Bob Brose <hidden>
Date: 2005-10-03 02:11:30

I'm trying to fix some of the AX25 code in the 2.6 kernel and traced down
a problem to the use of a char var which was being assigned
the value of -1. On x86 when the var was compared to -1 it succeded but
on PPC it failed. So I tried a simple test:

main()
{
char atest;
atest=-1;
printf("%i,%X\n",atest,atest);
}

With GCC 3.3.5 on 2.6.14-rc1 x86 I get:
./atest
-1,FFFFFFFF

With GCC 3.3.5 on 2.6.14-rc1 PPC I get:
./atest
255,FF

If I change the declaration of atest to a signed char on PPC I get the
same result as x86.

Does this mean the char in x86 is signed and in PPC it's unsigned?
Has it always been thus?
 

Re: Q: signed vs unsigned char, PPC vs x86 gcc 3.3.5 compiler differences

From: Hollis Blanchard <hidden>
Date: 2005-10-03 02:22:21

On Oct 2, 2005, at 9:11 PM, Bob Brose wrote:
If I change the declaration of atest to a signed char on PPC I get the
same result as x86.

Does this mean the char in x86 is signed and in PPC it's unsigned?
Has it always been thus?
Yes, and yes. If it matters to you, you should explicitly use "signed 
char" or "unsigned char"...

-Hollis

Re: Q: signed vs unsigned char, PPC vs x86 gcc 3.3.5 compiler differences

From: Christopher Friesen <hidden>
Date: 2005-10-03 05:07:35

Bob Brose wrote:
Does this mean the char in x86 is signed and in PPC it's unsigned?
Has it always been thus?
 From K+R:

"Whether plain chars are signed or unsigned is machine-dependent, but 
printable characters are always positive."

Chris
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help