clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Fri, 2 Jun 2017 13:14:18 +0000 (13:14 +0000)
committerGianfranco Costamagna <locutusofborg@debian.org>
Fri, 2 Jun 2017 13:14:18 +0000 (13:14 +0000)
commit2c76e8d48e26a180aa18178305ee75ae7c60b39e
tree81d899ec4133fb6c7b61666686ec53e4d2749078
parent3b0dbd40b0123a546d5b865729fa5368a59fe358
clang-fix-cmpxchg8-detection-on-i386

libcxx atomic tests for old i386 fail with wrong Atomic inline width.
cmpxchg8b instruction is required for 8 byte atomics that clang was
assuming.

Too bad _GCC_ATOMIC_LLONG_LOCK_FREE 2 isn't supported even with this change
because llvm doesn't support unaligned atomic compare and exchange operation.
Fallback calls to libatomic.so should handle long long lock free but clang
can't tell program if libatomic is always lock free.

Related bug: https://llvm.org/bugs/show_bug.cgi?id=19355

Gbp-Pq: Name clang-fix-cmpxchg8-detection-on-i386.patch
clang/lib/Basic/Targets.cpp
clang/test/Sema/atomic-ops.c