[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

Reply via email to