clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Sun, 12 Mar 2017 09:01:10 +0000 (09:01 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Sun, 12 Mar 2017 09:01:10 +0000 (09:01 +0000)
commit531343b3da389fc0e79a76c7711bc667c984f671
tree96564c5ec57a81f24f1422d575f0f0966da4bc43
parent4d1d53e4ff818fd5fa59a18ffb4bc4490ee4233f
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