On Tue, Dec 18, 2012 at 2:39 PM, Arthur Schwarz <aschwarz1...@att.net> wrote: > > I have run some tests to determine the gcc 4.5.3 integer promotion policies.
This message is not appropriate for the mailing list gcc@gcc.gnu.org, which is for the development of GCC itself. It would be appropriate on the mailing list gcc-h...@gcc.gnu.org. Please take any followups to gcc-h...@gcc.gnu.org. Thanks. The integer promotion policies are the ones specified in the language standard. > The > tests show that for 'char' input, "char << long" and "char >> long" promote to > INT while other operations using a long promote to" long", and that "char << > ulong" and "char >> ulong" promote to INT while other operations using ulong > promote to "ulong". In similar fashion, "long << long" and "long >> long" > promote to INT while other promotions are to long, and that "long << ulong" > and > "long >> ulong" promote to long while other operations promote to ulong. The > code used and the output are included below. The shift operators produce a value of the same type as the left operand, subject to the usual integer promotions. You say in the paragraph above that long << long promotes to INT, but that sounds unlikely, and I don't see any support for that in the program output that you showed. You suggest that there is a bug somewhere, but I don't see one. Ian