public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1
@ 2009-07-03 18:15 burnus at gcc dot gnu dot org
2009-07-03 19:30 ` [Bug fortran/40643] " jakub at gcc dot gnu dot org
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-07-03 18:15 UTC (permalink / raw)
To: gcc-bugs
Per IEEE 754:2008, one has max(x,NaN) == max(NaN,x) == x. Gfortran's inline
version of maxloc, maxval and max (ditto for min*) follows this. However, the
libgfortran version does not:
real :: r(4), z
z = 0.0
r = (/ z/z, -1., -42., 849. /)
print *,r
print *, minloc(r), minval(r)
print *, maxloc(r), maxval(r)
end
Produces:
NaN -1.0000000 -42.000000 849.00000
1 -42.000000
1 849.00000
Correct is - as ifort has -:
NaN -1.000000 -42.00000 849.0000
3 -42.00000
4 849.0000
--
Summary: maxloc/minloc: Wrong result for NaN at position 1
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
@ 2009-07-03 19:30 ` jakub at gcc dot gnu dot org
2009-07-05 9:12 ` fxcoudert at gcc dot gnu dot org
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-07-03 19:30 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from jakub at gcc dot gnu dot org 2009-07-03 19:30 -------
Even the inline version is wrong I think.
real :: r(4), z
z = 0.0
r = (/ z/z, z/z, z/z, z/z /)
print *,r
print *, minloc(r,dim=1), minval(r,dim=1)
print *, maxloc(r,dim=1), maxval(r,dim=1)
end
Not sure what minval/maxval should be in this case, but minloc/maxloc 0 looks
wrong (given that for non-empty arrays it is supposed to be 1 .. arrayextent).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
2009-07-03 19:30 ` [Bug fortran/40643] " jakub at gcc dot gnu dot org
@ 2009-07-05 9:12 ` fxcoudert at gcc dot gnu dot org
2009-07-10 16:31 ` jakub at gcc dot gnu dot org
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2009-07-05 9:12 UTC (permalink / raw)
To: gcc-bugs
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2009-07-05 09:11:54
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
2009-07-03 19:30 ` [Bug fortran/40643] " jakub at gcc dot gnu dot org
2009-07-05 9:12 ` fxcoudert at gcc dot gnu dot org
@ 2009-07-10 16:31 ` jakub at gcc dot gnu dot org
2009-07-10 19:03 ` burnus at gcc dot gnu dot org
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-07-10 16:31 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from jakub at gcc dot gnu dot org 2009-07-10 16:31 -------
Created an attachment (id=18174)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18174&action=view)
gcc45-pr40643.patch
Inline minmaxloc patch.
Is this the behavior we want?
If NaNs aren't supported and array size is known, no mask, then inline
maxloc/minloc should be quite a bit faster (condition should be just val <
limit
instead of val < limit || (pos == 0 && val == limit)). On the other side, if
array size isn't known at compile time (or non-scalar mask is used) and NaNs
must be supported, the loop is more expensive.
I haven't touched minmaxval inline expansion yet, there I'm afraid for floating
point without -ffast-math the loop will have to be quite a bit slower than what
we do ATM, as we'd need to return -inf for maxval on array full of -infs (or
full of nans with at least one -inf), or nan for array full of nans, but for
empty array or completely masked away array -huge.
The patch also disables the inline expansion for -O0, I think at -O0 we should
aim at generating smaller and more easily debuggable code. Probably we
shouldn't be expanding this inline for optimize_size either.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
` (2 preceding siblings ...)
2009-07-10 16:31 ` jakub at gcc dot gnu dot org
@ 2009-07-10 19:03 ` burnus at gcc dot gnu dot org
2009-07-14 13:26 ` jakub at gcc dot gnu dot org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-07-10 19:03 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from burnus at gcc dot gnu dot org 2009-07-10 19:02 -------
Created an attachment (id=18175)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18175&action=view)
Results for the testcase with ifort, sunf95, NAG f95, openf95, g95
> Is this the behavior we want?
Good question. See attachment for the results of other compilers.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
` (3 preceding siblings ...)
2009-07-10 19:03 ` burnus at gcc dot gnu dot org
@ 2009-07-14 13:26 ` jakub at gcc dot gnu dot org
2009-07-14 13:31 ` jakub at gcc dot gnu dot org
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-07-14 13:26 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from jakub at gcc dot gnu dot org 2009-07-14 13:26 -------
Created an attachment (id=18192)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18192&action=view)
gcc45-pr40643.patch
Slightly adjusted patch, so that even when array size isn't known compile time
constant it can avoid expensive runtime tests in the loop.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
` (4 preceding siblings ...)
2009-07-14 13:26 ` jakub at gcc dot gnu dot org
@ 2009-07-14 13:31 ` jakub at gcc dot gnu dot org
2009-07-14 19:18 ` tkoenig at gcc dot gnu dot org
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-07-14 13:31 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from jakub at gcc dot gnu dot org 2009-07-14 13:31 -------
Created an attachment (id=18193)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18193&action=view)
gcc45-pr40643.patch
And now a patch which uses two loops instead of one if needed for performance
(in the honor nans case or when mask is used). The first loop will stop after
changing pos the first time, the second loop then can just use val < limit
comparison.
E.g. on
subroutine bar(a, n)
real, allocatable :: a(:)
integer :: n
end subroutine
program main
implicit none
interface bar
subroutine bar(a, n)
real, allocatable :: a(:)
integer :: n
end subroutine
end interface
integer :: n
real, allocatable :: a(:)
integer :: i
allocate (a(100))
call random_number(a)
do i=1, 10000000
n = minloc(a, dim=1)
call bar(a, n)
end do
end program main
this patch shows very noticeable difference both for -O3 -ffast-math
-funroll-loops and for -O3 -funroll-loops.
If you think this is the way we should go, I can change also the inline
minval/maxval version and attempt to change the library routines as well.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
` (5 preceding siblings ...)
2009-07-14 13:31 ` jakub at gcc dot gnu dot org
@ 2009-07-14 19:18 ` tkoenig at gcc dot gnu dot org
2009-07-24 7:57 ` jakub at gcc dot gnu dot org
2009-12-05 21:54 ` tkoenig at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-07-14 19:18 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from tkoenig at gcc dot gnu dot org 2009-07-14 19:18 -------
See also PR 30694.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
` (6 preceding siblings ...)
2009-07-14 19:18 ` tkoenig at gcc dot gnu dot org
@ 2009-07-24 7:57 ` jakub at gcc dot gnu dot org
2009-12-05 21:54 ` tkoenig at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-07-24 7:57 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from jakub at gcc dot gnu dot org 2009-07-24 07:57 -------
Subject: Bug 40643
Author: jakub
Date: Fri Jul 24 07:57:13 2009
New Revision: 150041
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=150041
Log:
PR fortran/40643
PR fortran/31067
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
gfc_conv_intrinsic_minmaxval): Handle Infinities and NaNs properly,
optimize.
* trans-array.c (gfc_trans_scalarized_loop_end): No longer static.
* trans-array.h (gfc_trans_scalarized_loop_end): New prototype.
* libgfortran.h (GFC_REAL_4_INFINITY, GFC_REAL_8_INFINITY,
GFC_REAL_10_INFINITY, GFC_REAL_16_INFINITY, GFC_REAL_4_QUIET_NAN,
GFC_REAL_8_QUIET_NAN, GFC_REAL_10_QUIET_NAN, GFC_REAL_16_QUIET_NAN):
Define.
* m4/iparm.m4 (atype_inf, atype_nan): Define.
* m4/ifunction.m4: Formatting.
* m4/iforeach.m4: Likewise.
(START_FOREACH_FUNCTION): Initialize dest to all 1s, not all 0s.
(START_FOREACH_BLOCK, FINISH_FOREACH_FUNCTION,
FINISH_MASKED_FOREACH_FUNCTION): Run foreach block inside a loop
until count[0] == extent[0].
* m4/minval.m4: Formatting. Handle NaNs and infinities. Optimize.
* m4/maxval.m4: Likewise.
* m4/minloc0.m4: Likewise.
* m4/maxloc0.m4: Likewise.
* m4/minloc1.m4: Likewise.
* m4/maxloc1.m4: Likewise.
* generated/maxloc0_16_i16.c: Regenerated.
* generated/maxloc0_16_i1.c: Likewise.
* generated/maxloc0_16_i2.c: Likewise.
* generated/maxloc0_16_i4.c: Likewise.
* generated/maxloc0_16_i8.c: Likewise.
* generated/maxloc0_16_r10.c: Likewise.
* generated/maxloc0_16_r16.c: Likewise.
* generated/maxloc0_16_r4.c: Likewise.
* generated/maxloc0_16_r8.c: Likewise.
* generated/maxloc0_4_i16.c: Likewise.
* generated/maxloc0_4_i1.c: Likewise.
* generated/maxloc0_4_i2.c: Likewise.
* generated/maxloc0_4_i4.c: Likewise.
* generated/maxloc0_4_i8.c: Likewise.
* generated/maxloc0_4_r10.c: Likewise.
* generated/maxloc0_4_r16.c: Likewise.
* generated/maxloc0_4_r4.c: Likewise.
* generated/maxloc0_4_r8.c: Likewise.
* generated/maxloc0_8_i16.c: Likewise.
* generated/maxloc0_8_i1.c: Likewise.
* generated/maxloc0_8_i2.c: Likewise.
* generated/maxloc0_8_i4.c: Likewise.
* generated/maxloc0_8_i8.c: Likewise.
* generated/maxloc0_8_r10.c: Likewise.
* generated/maxloc0_8_r16.c: Likewise.
* generated/maxloc0_8_r4.c: Likewise.
* generated/maxloc0_8_r8.c: Likewise.
* generated/maxloc1_16_i16.c: Likewise.
* generated/maxloc1_16_i1.c: Likewise.
* generated/maxloc1_16_i2.c: Likewise.
* generated/maxloc1_16_i4.c: Likewise.
* generated/maxloc1_16_i8.c: Likewise.
* generated/maxloc1_16_r10.c: Likewise.
* generated/maxloc1_16_r16.c: Likewise.
* generated/maxloc1_16_r4.c: Likewise.
* generated/maxloc1_16_r8.c: Likewise.
* generated/maxloc1_4_i16.c: Likewise.
* generated/maxloc1_4_i1.c: Likewise.
* generated/maxloc1_4_i2.c: Likewise.
* generated/maxloc1_4_i4.c: Likewise.
* generated/maxloc1_4_i8.c: Likewise.
* generated/maxloc1_4_r10.c: Likewise.
* generated/maxloc1_4_r16.c: Likewise.
* generated/maxloc1_4_r4.c: Likewise.
* generated/maxloc1_4_r8.c: Likewise.
* generated/maxloc1_8_i16.c: Likewise.
* generated/maxloc1_8_i1.c: Likewise.
* generated/maxloc1_8_i2.c: Likewise.
* generated/maxloc1_8_i4.c: Likewise.
* generated/maxloc1_8_i8.c: Likewise.
* generated/maxloc1_8_r10.c: Likewise.
* generated/maxloc1_8_r16.c: Likewise.
* generated/maxloc1_8_r4.c: Likewise.
* generated/maxloc1_8_r8.c: Likewise.
* generated/maxval_i16.c: Likewise.
* generated/maxval_i1.c: Likewise.
* generated/maxval_i2.c: Likewise.
* generated/maxval_i4.c: Likewise.
* generated/maxval_i8.c: Likewise.
* generated/maxval_r10.c: Likewise.
* generated/maxval_r16.c: Likewise.
* generated/maxval_r4.c: Likewise.
* generated/maxval_r8.c: Likewise.
* generated/minloc0_16_i16.c: Likewise.
* generated/minloc0_16_i1.c: Likewise.
* generated/minloc0_16_i2.c: Likewise.
* generated/minloc0_16_i4.c: Likewise.
* generated/minloc0_16_i8.c: Likewise.
* generated/minloc0_16_r10.c: Likewise.
* generated/minloc0_16_r16.c: Likewise.
* generated/minloc0_16_r4.c: Likewise.
* generated/minloc0_16_r8.c: Likewise.
* generated/minloc0_4_i16.c: Likewise.
* generated/minloc0_4_i1.c: Likewise.
* generated/minloc0_4_i2.c: Likewise.
* generated/minloc0_4_i4.c: Likewise.
* generated/minloc0_4_i8.c: Likewise.
* generated/minloc0_4_r10.c: Likewise.
* generated/minloc0_4_r16.c: Likewise.
* generated/minloc0_4_r4.c: Likewise.
* generated/minloc0_4_r8.c: Likewise.
* generated/minloc0_8_i16.c: Likewise.
* generated/minloc0_8_i1.c: Likewise.
* generated/minloc0_8_i2.c: Likewise.
* generated/minloc0_8_i4.c: Likewise.
* generated/minloc0_8_i8.c: Likewise.
* generated/minloc0_8_r10.c: Likewise.
* generated/minloc0_8_r16.c: Likewise.
* generated/minloc0_8_r4.c: Likewise.
* generated/minloc0_8_r8.c: Likewise.
* generated/minloc1_16_i16.c: Likewise.
* generated/minloc1_16_i1.c: Likewise.
* generated/minloc1_16_i2.c: Likewise.
* generated/minloc1_16_i4.c: Likewise.
* generated/minloc1_16_i8.c: Likewise.
* generated/minloc1_16_r10.c: Likewise.
* generated/minloc1_16_r16.c: Likewise.
* generated/minloc1_16_r4.c: Likewise.
* generated/minloc1_16_r8.c: Likewise.
* generated/minloc1_4_i16.c: Likewise.
* generated/minloc1_4_i1.c: Likewise.
* generated/minloc1_4_i2.c: Likewise.
* generated/minloc1_4_i4.c: Likewise.
* generated/minloc1_4_i8.c: Likewise.
* generated/minloc1_4_r10.c: Likewise.
* generated/minloc1_4_r16.c: Likewise.
* generated/minloc1_4_r4.c: Likewise.
* generated/minloc1_4_r8.c: Likewise.
* generated/minloc1_8_i16.c: Likewise.
* generated/minloc1_8_i1.c: Likewise.
* generated/minloc1_8_i2.c: Likewise.
* generated/minloc1_8_i4.c: Likewise.
* generated/minloc1_8_i8.c: Likewise.
* generated/minloc1_8_r10.c: Likewise.
* generated/minloc1_8_r16.c: Likewise.
* generated/minloc1_8_r4.c: Likewise.
* generated/minloc1_8_r8.c: Likewise.
* generated/minval_i16.c: Likewise.
* generated/minval_i1.c: Likewise.
* generated/minval_i2.c: Likewise.
* generated/minval_i4.c: Likewise.
* generated/minval_i8.c: Likewise.
* generated/minval_r10.c: Likewise.
* generated/minval_r16.c: Likewise.
* generated/minval_r4.c: Likewise.
* generated/minval_r8.c: Likewise.
* generated/product_c10.c: Likewise.
* generated/product_c16.c: Likewise.
* generated/product_c4.c: Likewise.
* generated/product_c8.c: Likewise.
* generated/product_i16.c: Likewise.
* generated/product_i1.c: Likewise.
* generated/product_i2.c: Likewise.
* generated/product_i4.c: Likewise.
* generated/product_i8.c: Likewise.
* generated/product_r10.c: Likewise.
* generated/product_r16.c: Likewise.
* generated/product_r4.c: Likewise.
* generated/product_r8.c: Likewise.
* generated/sum_c10.c: Likewise.
* generated/sum_c16.c: Likewise.
* generated/sum_c4.c: Likewise.
* generated/sum_c8.c: Likewise.
* generated/sum_i16.c: Likewise.
* generated/sum_i1.c: Likewise.
* generated/sum_i2.c: Likewise.
* generated/sum_i4.c: Likewise.
* generated/sum_i8.c: Likewise.
* generated/sum_r10.c: Likewise.
* generated/sum_r16.c: Likewise.
* generated/sum_r4.c: Likewise.
* generated/sum_r8.c: Likewise.
* gfortran.dg/maxlocval_2.f90: New test.
* gfortran.dg/maxlocval_3.f90: New test.
* gfortran.dg/maxlocval_4.f90: New test.
* gfortran.dg/minlocval_1.f90: New test.
* gfortran.dg/minlocval_2.f90: New test.
* gfortran.dg/minlocval_3.f90: New test.
* gfortran.dg/minlocval_4.f90: New test.
Added:
trunk/gcc/testsuite/gfortran.dg/maxlocval_2.f90
trunk/gcc/testsuite/gfortran.dg/maxlocval_3.f90
trunk/gcc/testsuite/gfortran.dg/maxlocval_4.f90
trunk/gcc/testsuite/gfortran.dg/minlocval_1.f90
trunk/gcc/testsuite/gfortran.dg/minlocval_2.f90
trunk/gcc/testsuite/gfortran.dg/minlocval_3.f90
trunk/gcc/testsuite/gfortran.dg/minlocval_4.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-array.h
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/generated/maxloc0_16_i1.c
trunk/libgfortran/generated/maxloc0_16_i16.c
trunk/libgfortran/generated/maxloc0_16_i2.c
trunk/libgfortran/generated/maxloc0_16_i4.c
trunk/libgfortran/generated/maxloc0_16_i8.c
trunk/libgfortran/generated/maxloc0_16_r10.c
trunk/libgfortran/generated/maxloc0_16_r16.c
trunk/libgfortran/generated/maxloc0_16_r4.c
trunk/libgfortran/generated/maxloc0_16_r8.c
trunk/libgfortran/generated/maxloc0_4_i1.c
trunk/libgfortran/generated/maxloc0_4_i16.c
trunk/libgfortran/generated/maxloc0_4_i2.c
trunk/libgfortran/generated/maxloc0_4_i4.c
trunk/libgfortran/generated/maxloc0_4_i8.c
trunk/libgfortran/generated/maxloc0_4_r10.c
trunk/libgfortran/generated/maxloc0_4_r16.c
trunk/libgfortran/generated/maxloc0_4_r4.c
trunk/libgfortran/generated/maxloc0_4_r8.c
trunk/libgfortran/generated/maxloc0_8_i1.c
trunk/libgfortran/generated/maxloc0_8_i16.c
trunk/libgfortran/generated/maxloc0_8_i2.c
trunk/libgfortran/generated/maxloc0_8_i4.c
trunk/libgfortran/generated/maxloc0_8_i8.c
trunk/libgfortran/generated/maxloc0_8_r10.c
trunk/libgfortran/generated/maxloc0_8_r16.c
trunk/libgfortran/generated/maxloc0_8_r4.c
trunk/libgfortran/generated/maxloc0_8_r8.c
trunk/libgfortran/generated/maxloc1_16_i1.c
trunk/libgfortran/generated/maxloc1_16_i16.c
trunk/libgfortran/generated/maxloc1_16_i2.c
trunk/libgfortran/generated/maxloc1_16_i4.c
trunk/libgfortran/generated/maxloc1_16_i8.c
trunk/libgfortran/generated/maxloc1_16_r10.c
trunk/libgfortran/generated/maxloc1_16_r16.c
trunk/libgfortran/generated/maxloc1_16_r4.c
trunk/libgfortran/generated/maxloc1_16_r8.c
trunk/libgfortran/generated/maxloc1_4_i1.c
trunk/libgfortran/generated/maxloc1_4_i16.c
trunk/libgfortran/generated/maxloc1_4_i2.c
trunk/libgfortran/generated/maxloc1_4_i4.c
trunk/libgfortran/generated/maxloc1_4_i8.c
trunk/libgfortran/generated/maxloc1_4_r10.c
trunk/libgfortran/generated/maxloc1_4_r16.c
trunk/libgfortran/generated/maxloc1_4_r4.c
trunk/libgfortran/generated/maxloc1_4_r8.c
trunk/libgfortran/generated/maxloc1_8_i1.c
trunk/libgfortran/generated/maxloc1_8_i16.c
trunk/libgfortran/generated/maxloc1_8_i2.c
trunk/libgfortran/generated/maxloc1_8_i4.c
trunk/libgfortran/generated/maxloc1_8_i8.c
trunk/libgfortran/generated/maxloc1_8_r10.c
trunk/libgfortran/generated/maxloc1_8_r16.c
trunk/libgfortran/generated/maxloc1_8_r4.c
trunk/libgfortran/generated/maxloc1_8_r8.c
trunk/libgfortran/generated/maxval_i1.c
trunk/libgfortran/generated/maxval_i16.c
trunk/libgfortran/generated/maxval_i2.c
trunk/libgfortran/generated/maxval_i4.c
trunk/libgfortran/generated/maxval_i8.c
trunk/libgfortran/generated/maxval_r10.c
trunk/libgfortran/generated/maxval_r16.c
trunk/libgfortran/generated/maxval_r4.c
trunk/libgfortran/generated/maxval_r8.c
trunk/libgfortran/generated/minloc0_16_i1.c
trunk/libgfortran/generated/minloc0_16_i16.c
trunk/libgfortran/generated/minloc0_16_i2.c
trunk/libgfortran/generated/minloc0_16_i4.c
trunk/libgfortran/generated/minloc0_16_i8.c
trunk/libgfortran/generated/minloc0_16_r10.c
trunk/libgfortran/generated/minloc0_16_r16.c
trunk/libgfortran/generated/minloc0_16_r4.c
trunk/libgfortran/generated/minloc0_16_r8.c
trunk/libgfortran/generated/minloc0_4_i1.c
trunk/libgfortran/generated/minloc0_4_i16.c
trunk/libgfortran/generated/minloc0_4_i2.c
trunk/libgfortran/generated/minloc0_4_i4.c
trunk/libgfortran/generated/minloc0_4_i8.c
trunk/libgfortran/generated/minloc0_4_r10.c
trunk/libgfortran/generated/minloc0_4_r16.c
trunk/libgfortran/generated/minloc0_4_r4.c
trunk/libgfortran/generated/minloc0_4_r8.c
trunk/libgfortran/generated/minloc0_8_i1.c
trunk/libgfortran/generated/minloc0_8_i16.c
trunk/libgfortran/generated/minloc0_8_i2.c
trunk/libgfortran/generated/minloc0_8_i4.c
trunk/libgfortran/generated/minloc0_8_i8.c
trunk/libgfortran/generated/minloc0_8_r10.c
trunk/libgfortran/generated/minloc0_8_r16.c
trunk/libgfortran/generated/minloc0_8_r4.c
trunk/libgfortran/generated/minloc0_8_r8.c
trunk/libgfortran/generated/minloc1_16_i1.c
trunk/libgfortran/generated/minloc1_16_i16.c
trunk/libgfortran/generated/minloc1_16_i2.c
trunk/libgfortran/generated/minloc1_16_i4.c
trunk/libgfortran/generated/minloc1_16_i8.c
trunk/libgfortran/generated/minloc1_16_r10.c
trunk/libgfortran/generated/minloc1_16_r16.c
trunk/libgfortran/generated/minloc1_16_r4.c
trunk/libgfortran/generated/minloc1_16_r8.c
trunk/libgfortran/generated/minloc1_4_i1.c
trunk/libgfortran/generated/minloc1_4_i16.c
trunk/libgfortran/generated/minloc1_4_i2.c
trunk/libgfortran/generated/minloc1_4_i4.c
trunk/libgfortran/generated/minloc1_4_i8.c
trunk/libgfortran/generated/minloc1_4_r10.c
trunk/libgfortran/generated/minloc1_4_r16.c
trunk/libgfortran/generated/minloc1_4_r4.c
trunk/libgfortran/generated/minloc1_4_r8.c
trunk/libgfortran/generated/minloc1_8_i1.c
trunk/libgfortran/generated/minloc1_8_i16.c
trunk/libgfortran/generated/minloc1_8_i2.c
trunk/libgfortran/generated/minloc1_8_i4.c
trunk/libgfortran/generated/minloc1_8_i8.c
trunk/libgfortran/generated/minloc1_8_r10.c
trunk/libgfortran/generated/minloc1_8_r16.c
trunk/libgfortran/generated/minloc1_8_r4.c
trunk/libgfortran/generated/minloc1_8_r8.c
trunk/libgfortran/generated/minval_i1.c
trunk/libgfortran/generated/minval_i16.c
trunk/libgfortran/generated/minval_i2.c
trunk/libgfortran/generated/minval_i4.c
trunk/libgfortran/generated/minval_i8.c
trunk/libgfortran/generated/minval_r10.c
trunk/libgfortran/generated/minval_r16.c
trunk/libgfortran/generated/minval_r4.c
trunk/libgfortran/generated/minval_r8.c
trunk/libgfortran/generated/product_c10.c
trunk/libgfortran/generated/product_c16.c
trunk/libgfortran/generated/product_c4.c
trunk/libgfortran/generated/product_c8.c
trunk/libgfortran/generated/product_i1.c
trunk/libgfortran/generated/product_i16.c
trunk/libgfortran/generated/product_i2.c
trunk/libgfortran/generated/product_i4.c
trunk/libgfortran/generated/product_i8.c
trunk/libgfortran/generated/product_r10.c
trunk/libgfortran/generated/product_r16.c
trunk/libgfortran/generated/product_r4.c
trunk/libgfortran/generated/product_r8.c
trunk/libgfortran/generated/sum_c10.c
trunk/libgfortran/generated/sum_c16.c
trunk/libgfortran/generated/sum_c4.c
trunk/libgfortran/generated/sum_c8.c
trunk/libgfortran/generated/sum_i1.c
trunk/libgfortran/generated/sum_i16.c
trunk/libgfortran/generated/sum_i2.c
trunk/libgfortran/generated/sum_i4.c
trunk/libgfortran/generated/sum_i8.c
trunk/libgfortran/generated/sum_r10.c
trunk/libgfortran/generated/sum_r16.c
trunk/libgfortran/generated/sum_r4.c
trunk/libgfortran/generated/sum_r8.c
trunk/libgfortran/libgfortran.h
trunk/libgfortran/m4/iforeach.m4
trunk/libgfortran/m4/ifunction.m4
trunk/libgfortran/m4/iparm.m4
trunk/libgfortran/m4/maxloc0.m4
trunk/libgfortran/m4/maxloc1.m4
trunk/libgfortran/m4/maxval.m4
trunk/libgfortran/m4/minloc0.m4
trunk/libgfortran/m4/minloc1.m4
trunk/libgfortran/m4/minval.m4
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/40643] maxloc/minloc: Wrong result for NaN at position 1
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
` (7 preceding siblings ...)
2009-07-24 7:57 ` jakub at gcc dot gnu dot org
@ 2009-12-05 21:54 ` tkoenig at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-12-05 21:54 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from tkoenig at gcc dot gnu dot org 2009-12-05 21:54 -------
As far as I can see, this is fixed.
Closing.
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40643
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-12-05 21:54 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-03 18:15 [Bug fortran/40643] New: maxloc/minloc: Wrong result for NaN at position 1 burnus at gcc dot gnu dot org
2009-07-03 19:30 ` [Bug fortran/40643] " jakub at gcc dot gnu dot org
2009-07-05 9:12 ` fxcoudert at gcc dot gnu dot org
2009-07-10 16:31 ` jakub at gcc dot gnu dot org
2009-07-10 19:03 ` burnus at gcc dot gnu dot org
2009-07-14 13:26 ` jakub at gcc dot gnu dot org
2009-07-14 13:31 ` jakub at gcc dot gnu dot org
2009-07-14 19:18 ` tkoenig at gcc dot gnu dot org
2009-07-24 7:57 ` jakub at gcc dot gnu dot org
2009-12-05 21:54 ` tkoenig at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).