From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3357 invoked by alias); 4 May 2004 01:25:14 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 3325 invoked from network); 4 May 2004 01:25:14 -0000 Received: from unknown (HELO mail.ut.sco.com) (216.250.130.2) by sources.redhat.com with SMTP; 4 May 2004 01:25:14 -0000 Received: (qmail 15943 invoked from network); 4 May 2004 01:25:13 -0000 Received: from vms.caldera.com (216.250.130.31) by mail.ut.sco.com with SMTP; 4 May 2004 01:25:13 -0000 Received: from vms.caldera.com (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id ED770A004; Mon, 3 May 2004 19:25:12 -0600 (MDT) Received: from sco.com (shrike.pdev.ca.caldera.com [132.147.65.3]) by vms.caldera.com (Postfix) with ESMTP id 159B9A002; Mon, 3 May 2004 19:25:12 -0600 (MDT) Message-ID: <4096EEAE.60105@sco.com> Date: Tue, 04 May 2004 01:25:00 -0000 From: Kean Johnston Organization: The SCO Group User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) MIME-Version: 1.0 To: Jim Wilson Cc: gcc@gcc.gnu.org Subject: Re: Promoting floats to doubles? References: <409493B7.6040108@sco.com> <4096AE14.7000505@specifixinc.com> In-Reply-To: <4096AE14.7000505@specifixinc.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004-05/txt/msg00084.txt.bz2 > If there is a prototype, and the prototype specifies float, then the > float will not be promoted to double. > > It sounds like you have a prototype that disagrees with the function > definition, in which case you should fix the prototype. It turns out I have a real problem on my hands. The OSR5 ABI dictates that floats are always promoted to doubles. I know thats bad and broken, but thats what I have. So even though the prototypes are correct - for example, the particular function that was causing the problem with g77 is prototyped as extern float floorf (float), the OSR5 compiler, which was used to produce libm, promoted the float arg to a double. I guess one way around this would be to hack this with fixinc and have it always change the prototypes from float to double. I can't see any other way around this. Can you? Kean