From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert de Bath Subject: Re: C compiler, assembler and linker Date: Mon, 22 Jul 2002 22:41:29 +0100 (BST) Sender: linux-8086-owner@vger.kernel.org Message-ID: References: Mime-Version: 1.0 Return-path: In-Reply-To: List-Id: Content-Type: TEXT/PLAIN; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Riley Williams Cc: Manuel Novoa III , Linux-8086 On Wed, 17 Jul 2002, Riley Williams wrote: > Not needed in this case - just read through the declspec() function > definition and you see that bcc internally uses SIGNED types for > everything unless the unsigned keyword is specifically given. There is > absolutely nothing in there to make char different from int. > > I mentioned this to Robert when I sent in the patch referred to above, > and he confirms that the language analyser does indeed select on that > basis. However, he implied that the code generator will use unsigned for > char even when the language analyser says they should be signed, so > there is presumably some hack for this that really wants to be removed. This is wrong; the default type for bcc's char is unsigned. Bcc uses _three_ char types; unsigned, signed and the default type, it looks like there was an aim to make the signedness of the default type a run-time option. Some time back I tried to make this work, however, there appear to be implicit assumptions that the 'default' char type is an 'unsigned' char. Riley's patch is just to add a 'signed' keyword but it caused "make distribution" to fail so I didn't make a distribution with it in. (logically enough ;-) Anyway now I've been reminded I took a little time out over the weekend and fixed the problem. So far the signed char type seems to work properly and I've found no more breakages... Version 0.16.4 has escaped ... -- Rob. (Robert de Bath )