--- Comment #17 from jvdelisle at gcc dot gnu dot org 2010-02-05 03:04
---
Closing. Not a gcc/gfortran bug.
--
jvdelisle at gcc dot gnu dot org changed:
What|Removed |Added
--
--- Comment #16 from ktietz at gcc dot gnu dot org 2010-02-04 08:47 ---
(In reply to comment #15)
> Any further word on this?
As I said in comment #14, we fixed a strict-aliasing bug in our C runtime
related to POSIX printf. As I tested it with current runtime, result looks ok
to me. It
--- Comment #15 from jvdelisle at gcc dot gnu dot org 2010-02-04 01:12
---
Any further word on this?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40070
--
dfranke at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40070
--- Comment #14 from ktietz at gcc dot gnu dot org 2009-09-05 09:17 ---
(In reply to comment #13)
> > This looks like a target bug.
>
> This looks also like a problem with the way arguments and results are handled
> (this is why I have suggested an alignement problem in comment #9).
>
--- Comment #13 from dominiq at lps dot ens dot fr 2009-05-20 08:55 ---
> This looks like a target bug.
This looks also like a problem with the way arguments and results are handled
(this is why I have suggested an alignement problem in comment #9).
The result in comment #2:
Function
--- Comment #12 from jb at gcc dot gnu dot org 2009-05-20 08:37 ---
Both the mixed C/Fortran and the pure Fortran version by Dominique works as
expected for me on x86_64-linux. I.e. I get the same results as reported by
Dominique in comments #1 and #6.
This looks like a target bug.
--
--- Comment #11 from kargl at gcc dot gnu dot org 2009-05-08 16:18 ---
(In reply to comment #10)
> When I run the fortran code: print *, precision(1.e0), digits(1.e0)
> I get: 6,24
Read Goldberg's paper.
I suspect you have either a rounding issue
(hint, see Goldberg, the number 6 and y
--- Comment #10 from jonathan dot d dot wetherbee at saic dot com
2009-05-08 15:51 ---
When I run the fortran code: print *, precision(1.e0), digits(1.e0)
I get: 6,24
*.original file yields:
myfunc (real(kind=4) & a, real(kind=4) & b, real(kind=4) & c, real(kind=4) & d,
real(kind=4)
--- Comment #9 from dominiq at lps dot ens dot fr 2009-05-08 15:49 ---
Couldn't it be an alignement problem?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40070
--- Comment #8 from kargl at gcc dot gnu dot org 2009-05-08 15:42 ---
(In reply to comment #0)
> Subroutine myfunc(a,b,c,d,e,res1,res2)
> Real a,b,c,d,e
> Parameter (g = 273.15)
> res1 = a*(b/a)**((c-d-g)/(e-d))
> res2 = (b/a)**((c-d-g)/(e-d))
> res2
--- Comment #7 from jonathan dot d dot wetherbee at saic dot com
2009-05-08 15:40 ---
Checked the size of a float with sizeof(float) and got 4 bytes. How can I
check the size of REAL in fortran?
When I try the USE ISO_C_BINDING I get the same result.
--
http://gcc.gnu.org/bugzill
--- Comment #6 from dominiq at lps dot ens dot fr 2009-05-08 15:36 ---
Adding the print *, ... in the subroutines and mixing C and Fortran, I get:
310.40363 0.000
Function 1:
result 1: 310.403625
result 2: 310.403625
23223.025 0.000
--- Comment #5 from dfranke at gcc dot gnu dot org 2009-05-08 15:30 ---
You use 'float' in the C routines and 'REAL' in the fortran code. What their
respective size? Is float always 4 byte in C? I think default-real-kind on
win64 could be 8, not 4? Could also explain why it worked for Do
--- Comment #4 from jonathan dot d dot wetherbee at saic dot com
2009-05-08 15:27 ---
When I run Dominique's main function written in fortran, I get:
res1res2 res1-res2
6.09E-24 310.40363 -310.40363
8.92E-23 23223.025 -23223.025
-4.01E-06 142007.59 -142007.59
--- Comment #3 from kargl at gcc dot gnu dot org 2009-05-08 15:07 ---
Fortran bug reports never have a Severity of Blocker unless
a GCC Release Manager sets that value. Reset to normal.
You forgot to include the actual output you got from
running your code.
You forgot to include the o
--- Comment #2 from jonathan dot d dot wetherbee at saic dot com
2009-05-08 15:03 ---
I used C code to call the function because the fortran code is being compiled
into a C based application.
When I run the sample main function, the values are obviously different.
Function 1:
result 1
--- Comment #1 from dominiq at lps dot ens dot fr 2009-05-08 14:55 ---
Why are you using a code in C for the tests? If I use the following as the main
program
real res1, res2
call myfunc(1000.0,850.0,143.204,30.5280,8.2351,res1,res2)
print *, res1, res1-res2
cal
18 matches
Mail list logo