clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Sun, 18 Jun 2017 17:12:15 +0000 (18:12 +0100)
committerSylvestre Ledru <sylvestre@debian.org>
Sun, 18 Jun 2017 17:12:15 +0000 (18:12 +0100)
commitfa335af61d6f1c110204ba7b438f6ff10500f129
tree3d1e2466781db172fc8b7a3a25bb1868af216504
parentc94b031742a23d18fca70dd2f791fe66d97c855c
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