EricWF requested changes to this revision. EricWF added a comment. This revision now requires changes to proceed.
Almost LGTM. Just a couple of inline comments left. Thanks for working on this! ================ Comment at: libcxx/include/memory:3691 + && __has_builtin(__atomic_compare_exchange_n) \ + && defined(__ATOMIC_RELAXED) \ + && defined(__ATOMIC_CONSUME) \ ---------------- 1. I would reduce these checks down to only what we need in the headers. 2. I would rename `_LIBCPP_HAS_ATOMIC_BUILTINS` to `_LIBCPP_HAS_BUILTIN_ATOMIC_SUPPORT` so it doesn't conflict with `atomic_support.h` and so we don't get it confused with all of the other `_LIBCPP_ATOMIC` configuration macros. 3. This is missing the configuration checks for GCC. Specifically `#elif !defined(__clang__) && defined(_GNUC_VER) && _GNUC_VER >= 407` ================ Comment at: libcxx/include/memory:3701 +template <class T> +inline T +__libcpp_atomic_refcount_increment(T& t) _NOEXCEPT ---------------- `inline _LIBCPP_INLINE_VISIBILITY` ================ Comment at: libcxx/include/memory:3759 +#ifdef _LIBCPP_BUILDING_MEMORY + void _LIBCPP_FUNC_VIS __add_shared() _NOEXCEPT; + bool _LIBCPP_FUNC_VIS __release_shared() _NOEXCEPT; ---------------- `_LIBCPP_FUNC_VIS` goes before the return type. ================ Comment at: libcxx/include/memory:3797 + void _LIBCPP_FUNC_VIS __add_shared() _NOEXCEPT; + void _LIBCPP_FUNC_VIS __add_weak() _NOEXCEPT; + void _LIBCPP_FUNC_VIS __release_shared() _NOEXCEPT; ---------------- `_LIBCPP_FUNC_VIS` goes before the return type. Repository: rL LLVM https://reviews.llvm.org/D24991 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits