From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030213 Description of problem: With gcc-3.2.2-1 (and probably earlier versions): long double d = 0x0.0000003ffffffff00000p-16385L; gcc expands this to all zeros. The correct representation is + 0000 00000003 ffffffff Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.echo "long double d = 0x0.0000003ffffffff00000p-16385L;" > u.c 2.gcc -S u.c 3.inspec u.s Actual Results: 'd' is all zeros Expected Results: + 0000 00000003 ffffffff Additional info:
The rewrite of real.c in gcc 3.4 cvs begun last September was done explcitly to fix this bug. It may be possible to bring this code back from mainline, but it'll be a large patch.