From mboxrd@z Thu Jan 1 00:00:00 1970 From: toon@moene.indiv.nluug.nl To: gcc-gnats@gcc.gnu.org Cc: "Hillel \(Sabba\) Markowitz" Subject: target/4731: SPARC gives wrong output on simple combination of Fortran main program and C functions Date: Mon, 29 Oct 2001 08:06:00 -0000 Message-id: <20011029155949.16172.qmail@sourceware.cygnus.com> X-SW-Source: 2001-10/msg00655.html List-Id: >Number: 4731 >Category: target >Synopsis: SPARC gives wrong output on simple combination of Fortran main program and C functions >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Mon Oct 29 08:06:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Hillel (Sabba) Markowitz >Release: GCC 3.0.1 >Organization: >Environment: SPARC, Solaris 8 uname -a SunOS mumble 5.8 Generic_108528-10 sun4u sparc SUNW,Sun-Blade-100 >Description: This Fortran main program: PROGRAM TEST_G77 REAL*4 PRINT_A REAL*4 TEST_GCC REAL*4 S, V, T REAL*8 PRINT_DA REAL*8 TEST_DGCC REAL*8 DS, DV, DT T = 20.0 S = TEST_GCC(T) WRITE(*,'(A, F16.5, 3X, Z8)') "S = ", S, S WRITE(*,'(A, F16.5, 3X, Z8)') "T = ", T, T DT = 20.0 DS = TEST_DGCC(DT) WRITE(*,'(A, F16.5, 3X, Z16)') "DS = ", DS, DS WRITE(*,'(A, F16.5, 3X, Z16)') "DT = ", DT, DT END combined with these C functions: float test_gcc_(float *b) { float a; a = 10.0; printf("a=%f (%#x)\n",a,a); printf("b=%f (%#x)\n",*b,*b); return(a); } double test_dgcc_(double *db) { double da; da = 10.0; printf("da=%f (%#x)\n",da,da); printf("db=%f (%#x)\n",*db,*db); return(da); } float print_a_(float *a) { printf("A = %f (%#x)\n", *a, *a); return(0); } double print_da_(double *da) { printf("DA = %f (%#x)\n", *da, *da); return(0); } give the wrong output: a=10.000000 (0x40240000) b=20.000000 (0x40340000) S = 524288.00000 49000000 T = 20.00000 41A00000 da=10.000000 (0x40240000) db=20.000000 (0x40340000) DS = 10.00000 4024000000000000 DT = 20.00000 4034000000000000 [ The first value of S should be 10.00000 ] >How-To-Repeat: g77 -o bla fortran.f c.c >Fix: >Release-Note: >Audit-Trail: >Unformatted: