> > Andrew Pinski <[EMAIL PROTECTED]> writes: > > > x is promoted to a signed int by the front-end as the type > > of 32768 is signed. So when we pass 65535 to foo (like in the testcase), > > we get some large negative number for (signed int)x > > I don't see how you can get a large negative number for that. With 16 bit > ints you'll get -1, but for anything bigger you'll keep 65535.
sorry wrong number, I had meant 32769. if (foo (32769) != 1) abort (); -- Pinski