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