clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Sat, 15 Apr 2017 10:03:30 +0000 (10:03 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Sat, 15 Apr 2017 10:03:30 +0000 (10:03 +0000)
commit4d08df70c209144b3b6757d24edd3d0a5eb36ed7
tree885b3c3dec7059d266a5bd0b6eb653b42e48dd6b
parent018993820a65294fdc9ab0b0c0bd6900912b5f3c
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