This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgomp/49965] libgomp.c++/reduction-4.C and libgomp.c++/task-8.C FAIL on Solaris 11/SPARC
- From: "ro at CeBiTec dot Uni-Bielefeld.DE" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 3 Aug 2011 16:50:31 +0000
- Subject: [Bug libgomp/49965] libgomp.c++/reduction-4.C and libgomp.c++/task-8.C FAIL on Solaris 11/SPARC
- Auto-submitted: auto-generated
- References: <bug-49965-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49965
--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2011-08-03 16:50:27 UTC ---
> --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-08-03 16:37:36 UTC ---
> So what values it printed? Did it print -2.0 and 9.0 in some iterations?
Here's the complete output:
i = 0: j = -10000, f = 1024
i = 1: f = Inf
i = 2: j = -2147483648, f = Inf
i = 1: f = -2
i = 2: j = 8, f = Inf
i = 3
i = 2: j = 8, f = 9
i = 0: j = -2147483648
i = 0: j = -16
i = 0: j = 8, f = -2
i = 0: j = -10000, f = 1024
i = 1: f = Inf
i = 1: f = -2
i = 3
i = 2: j = -2147483648, f = Inf
i = 2: j = 8, f = Inf
i = 2: j = 8, f = 9
i = 0: j = -2147483648
i = 0: j = -16
i = 0: j = 8, f = -2
i = 0: j = -10000, f = 1024
i = 1: f = Inf
i = 1: f = -2
i = 3
i = 2: j = -9223372036854775808, f = Inf
i = 2: j = 8, f = Inf
i = 2: j = 8, f = 9
i = 0: j = -9223372036854775808
i = 0: j = -16
i = 0: j = 8, f = Inf
> The final merging is done in a critical section between GOMP_atomic_start and
> GOMP_atomic_end, perhaps you can put a breakpoint in there and watch how the
> values are merged using the MIN_EXPR.
I've missed the right call so far. Will give it another try tomorrow.
> Can you reproduce the failure with OMP_NUM_THREADS=1 BTW?
Yes, the failure is the same, just with
i = 0: j = -10000, f = 1024
i = 0: j = -9223372036854775808
i = 0: j = -16
i = 1: f = Inf
i = 1: f = -2
i = 2: j = -16, f = -2
i = 2: j = 8, f = -2
i = 2: j = 8, f = -2
i = 3
i = 0: j = 8, f = 1024
Abort
Rainer