From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31214 invoked by alias); 25 Nov 2005 01:27:53 -0000 Received: (qmail 31194 invoked by uid 48); 25 Nov 2005 01:27:51 -0000 Date: Fri, 25 Nov 2005 01:27:00 -0000 Subject: [Bug other/25028] New: TImode-to-floating conversions broken X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jsm28 at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2005-11/txt/msg03414.txt.bz2 List-Id: int printf(const char *, ...); typedef int TItype __attribute__((mode(TI))); TItype x = -1; int main(void) { printf("%f %f\n", (float)x, (double)x); return 0; } displays 0.000000 0.000000 on x86_64-unknown-linux-gnu. The conversion functions in libgcc2.c work for converting DImode values on the presumption that SImode values can be converted exactly to DFmode and wider. They don't work for converting TImode values to types which can't exactly represent all DImode values. (I'd say these functions should have #if conditionals embodying their prerequisites about type precisions, to make build fail for unsupported combinations, but existing targets need fixing first.) -- Summary: TImode-to-floating conversions broken Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jsm28 at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25028