This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/39986] New: decimal float constant is incorrect when cc1 is a 64-bit binary
- From: "janis at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Apr 2009 23:59:15 -0000
- Subject: [Bug target/39986] New: decimal float constant is incorrect when cc1 is a 64-bit binary
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
When cc1 for powerpc64-linux is a 32-bit binary, compiling
_Decimal32 x = 1.2df;
with "-m64 -S" results in:
.file "df.c"
.section ".toc","aw"
.section ".text"
.globl x
.section ".data"
.align 2
.type x, @object
.size x, 4
x:
.long 574619666
.ident "GCC: (GNU) 4.5.0 20090430 (experimental) [trunk revision
147009]"
When the same compiler is built to be a 64-bit binary then the result is the
same except for
.size x, 4
x:
.long 2467972673108443136
I normally configure GCC using --with-cpu=default32 and haven't yet checked to
see long the bug has existed; perhaps as long as GCC has supported decimal
float arithmetic.
If check_effective_target_dfprt_nocache fails then the tests in gcc.dg/dfp are
treated as compile-only and the struct-layout-1 tests do not support decimal
float types, and currently there is no test for the correct constant value so
the bug was not detected by running the testsuite.
--
Summary: decimal float constant is incorrect when cc1 is a 64-bit
binary
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janis at gcc dot gnu dot org
GCC host triplet: powerpc64-linux
GCC target triplet: powerpc64-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39986