Update Arcanist config to point to reviews.llvm.org

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@210558 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit c743921e51ff615407f70e31a344e98cd862a720)
Emulate clang atomic built-ins on gcc > 4.7

gcc 4.7 and above has atomic built-ins which slightly different APIs
from those provided by clang. Add proxy functions that wrap the gcc
built-ins to produce a symbol that is API equivalent to the clang
built-ins. This allows libc++'s atomic library to be used with gcc-4.7
and newer.

Patch contributed by Albert Wong.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@215305 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit e8b4232e33bb508a8d4cab189683b1a0c1055fe9)

Change-Id: I17ad6e5c18f910aa76d4acd83bc5175f29e74c36
Pass a preprocessor define to identify us.

Needed so that <stdatomic.h> can identify when a <atomic> header is
available. We need to do this because including <atomic> after
<stdatomic.h> causes compilation to fail, and the cleanest way out of
that situation is to make <stdatomic.h> include <atomic> when it is
using in a C++ context.

Bug: 17007799
Change-Id: Ic5798cb579840c4a49c3eb2c9e468d5f61fb6dd3
Allow libc++ to be built with GCC 5.0 compiler

Differential Revision: http://reviews.llvm.org/D5169

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@217038 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 5907f03123a9b8bc2e31fd671fc5eeae1dd8dc73)
Change-Id: I8d9f2496c587b8eda7906e08bf3db218db642f20
Update to upstream r216384.

This rebase skips the following patches in upstream:

+ 37025e1b32d44751243257975b9e3d45b2873266
Make the helper routines in string really be constexpr. This required a
bit of refacoring in algorithm as well. Give them better names while
we're at it. All of these are internal rotines; no visible functionality
change.

+ 164b297099f486abe42122fe1aefe7eb741b7acf
Implement string_view from the library fundamentals TS (n4023). Also
works in C++11 and 03, with reduced functionality (mostly in the area of
constexpr)

+ e4694b41295484e5c521d2c281de9330c6d60c79
Formatting improvements in the <string_view> synopsis suggested by
RSmith. No functionality change.

+ 3a61b30f3affb1ba9412793a0a570ac87e6d26b3
Minor cleanup for string_view; mostly from suggestions by Richard Smith.
Also, make the tests pass under c++03

+ 484728789ed4aee35e62c031cb3392a5982a5d0f
string_view enhancements.  Move to the correct namespace. Better
constexpr support (thanks to Richard for the suggestions). Update the
tests to match this. Add <experimental/__config for experimental
macros/etc to live.

+ b1a40264dcb88479e9227faaeb015da8e51fbe79
[libcxx] Add <experimental/utility> header for LFTS.

+ 3ee7233c8072ef912e249e391b35168f559bb239
[libcxx] expose experimental::erased_type for all standard versions.

+ 67740670f980cf43bbc2daf352dff89fd6771008
NFC. Remove trailing whitespace and tabs.

+ b9536101dcc36995794ea81a4f74b5f132211142
NFC. Move definition of _LIBCPP_ASSERT into __debug header and remove
external include guards.

+ 98c4e404ca8c524c54b4e7ede97b807355422b53.
Revert "Turn off extern templates for most uses."

Bug: 17255369
Change-Id: I629ff16275d50e4cc8767b253a2c0542468348d8
PR20546: Fix tests for compare_exchange_weak.

These calls are allowed to fail spuriously.

29.6.5.25:

    Remark: A weak compare-and-exchange operation may fail spuriously.
    That is, even when the contents of memory referred to by expected
    and object are equal, it may return false and store back to expected
    the same memory contents that were originally there. [ Note: This
    spurious failure enables implementation of compare and-exchange on a
    broader class of machines, e.g., load-locked store-conditional
    machines. A consequence of spurious failure is that nearly all uses
    of weak compare-and-exchange will be in a loop.

To fix this, we replace any assert() that expects
std::atomic::compare_exchange_weak() to return true with a loop. If the
call does not return true within N runs (with N currently equal to 10),
then the test fails.

http://llvm.org/bugs/show_bug.cgi?id=20546

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@217319 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 7ba3c57565e6658d8265b028a61c5731cf899495)
Change-Id: I778eabaa50c4a0814af1ff810b5e9d77cc759dde
XFAIL a test because clang isn't new enough.

This test actually verifies the correct behavior of clang, not libc++.
Since this was fixed in clang more recently than the last llvm rebase in
Android, we fail this test. This XFAIL can be removed once clang gets
updated.

Change-Id: I261557336add6d4542c9737eae1346de2df4b74d
Merge "XFAIL a test because clang isn't new enough."