This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/19993] -mlong-double-128 weirdness
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Feb 2005 02:01:19 -0000
- Subject: [Bug target/19993] -mlong-double-128 weirdness
- References: <20050216010918.19993.gcc@microbizz.nl>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-02-16 02:01 -------
First:
printf( "sin( 1.2345) = %.30f = %.30f\n", R, R);
Is wrong, as R is pased as a two doubles (as this is the how 128bit long doubles are done in IBM's
128bit format).
Second the following shows the correct result:
#include <stdio.h>
#include <math.h>
int main( void )
{
long double R;
R = sin( 1.2345);
printf( "sizeof( long double) = %d\n", sizeof( long double));
printf( "sin( 1.2345) = %.30f = %.30f\n", (double)R, (double)R);
return 0;
}
Fourth 128bit long doubles are not supported at all in 3.4.x for ppc-darwin.
Fifth ppc-darwin before 7 really has no support for 128bit long doubles.
Sixth this looks like a bug in the pascal front-end and not in the middle-end/target part at all.
Closing as invalid as shown above that I get the correct result with 4.0 (as -mlong-double-128 is
default on the mainline).
--
What |Removed |Added
----------------------------------------------------------------------------
Severity|critical |normal
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19993