Attached testcases fail on x86_64 (with cmpxchg16b) or i386 (with cmpxchg8b),
in both cases the problem is that reading the original value using FPU and
storing it into a temporary doesn't mean bitwise identical copy (in the first
case because long double is said to be a 16 byte type, even when the copy
through FPU actually copies just 80 bits, and in the latter case because the
copy turns the signalling NaN into a corresponding quiet NaN).  This means both
testcases hang.
Will work on a fix.


-- 
           Summary: #pragma omp atomic issues with floating point types
           Product: gcc
           Version: 4.3.1
            Status: UNCONFIRMED
          Keywords: openmp
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36106

Reply via email to