[G5:gpc/testgpc/adriaan] adriaan% gcc -v Reading specs from /Developer/Pascal/gcc343/lib/gcc/powerpc-apple-darwin7.7.0/3.4.3/specs Configured with: ../gcc-3.4.3/configure --enable-languages=c --enable-threads=posix --prefix=/Developer/Pascal/gcc343 Thread model: posix gcc version 3.4.3 [G5:gpc/testgpc/adriaan] adriaan% cat longreals2.c
#include <stdio.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", R, R); return 0; } [G5:gpc/testgpc/adriaan] adriaan% gcc longreals2.c [G5:gpc/testgpc/adriaan] adriaan% ./a.out sizeof( long double) = 8 sin( 1.2345) = 0.943983323944511121261768948898 = 0.943983323944511121261768948898 [G5:gpc/testgpc/adriaan] adriaan% gcc longreals2.c -mlong-double-128 [G5:gpc/testgpc/adriaan] adriaan% ./a.out sizeof( long double) = 16 sin( 1.2345) = 0.943983323944511121261768948898 = 0.000000000000000000000000000000 The last result is weird. With the Pascal compiler, the results are wrong also and I am getting segmentation faults. [G5:gpc/testgpc/adriaan] adriaan% gpc -v Reading specs from /Developer/Pascal/gpc343d6/lib/gcc/powerpc-apple-darwin7/3.4.3/specs Configured with: ../gcc-3.4.3/configure --enable-languages=pascal,c --enable-threads=posix --prefix=/Developer/Pascal/gpc343d6 --target=powerpc-apple-darwin7 --host=powerpc-apple-darwin7 Thread model: posix gpc version 20041218, based on gcc-3.4.3 [G5:gpc/testgpc/adriaan] adriaan% cat longreals2.pas program longreals2; var R: LongReal; begin R:= sin( 1.2345); WriteLn( 'SizeOf( LongReal) = ', SizeOf( LongReal)); WriteLn( 'sin( 1.2345) = ', R:1:30); WriteLn( 'sin( 1.2345) = ', R:1:30, ' = ', R:1:30); WriteLn( 'sin( 1.2345) = ', R:1:30, ' = ', R:1:30, ' = ', R:1:30); end. [G5:gpc/testgpc/adriaan] adriaan% gpc longreals2.pas [G5:gpc/testgpc/adriaan] adriaan% ./a.out SizeOf( LongReal) = 8 sin( 1.2345) = 0.943983323944511099057308456395 sin( 1.2345) = 0.943983323944511099057308456395 = 0.943983323944511099057308456395 sin( 1.2345) = 0.943983323944511099057308456395 = 0.943983323944511099057308456395 = 0.943983323944511099057308456395 [G5:gpc/testgpc/adriaan] adriaan% gpc longreals2.pas -mlong-double-128 [G5:gpc/testgpc/adriaan] adriaan% ./a.out SizeOf( LongReal) = 16 sin( 1.2345) = 1 sin( 1.2345) = 1 = 0.943983323944511099057308456394821405410766601563 Segmentation fault -- Summary: -mlong-double-128 weirdness Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: critical Priority: P1 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at microbizz dot nl CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: powerpc-apple-darwin7 GCC target triplet: powerpc-apple-darwin7 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19993