[libcxx] r333776 - Mark __c11_atomic_load as const

JF Bastien via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 1 11:02:53 PDT 2018


Author: jfb
Date: Fri Jun  1 11:02:53 2018
New Revision: 333776

URL: http://llvm.org/viewvc/llvm-project?rev=333776&view=rev
Log:
Mark __c11_atomic_load as const

Summary:
C++11 onwards specs the non-member functions atomic_load and atomic_load_explicit as taking the atomic<T> by const (potentially volatile) pointer. C11, in its infinite wisdom, decided to drop the const, and C17 will fix this with DR459 (the current draft forgot to fix B.16, but that’s not the normative part).

This patch fixes the libc++ version of the __c11_atomic_load builtins defined for GCC's compatibility sake.

D47618 takes care of the clang side.

Discussion: http://lists.llvm.org/pipermail/cfe-dev/2018-May/058129.html

<rdar://problem/27426936>

Reviewers: EricWF, mclow.lists

Subscribers: christof, cfe-commits

Differential Revision: https://reviews.llvm.org/D47613

Modified:
    libcxx/trunk/include/atomic

Modified: libcxx/trunk/include/atomic
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/atomic?rev=333776&r1=333775&r2=333776&view=diff
==============================================================================
--- libcxx/trunk/include/atomic (original)
+++ libcxx/trunk/include/atomic Fri Jun  1 11:02:53 2018
@@ -698,7 +698,7 @@ static inline void __c11_atomic_store(_A
 }
 
 template <typename _Tp>
-static inline _Tp __c11_atomic_load(volatile _Atomic(_Tp)* __a,
+static inline _Tp __c11_atomic_load(const volatile _Atomic(_Tp)* __a,
                                     memory_order __order) {
   _Tp __ret;
   __atomic_load(&__a->__a_value, &__ret,
@@ -707,7 +707,7 @@ static inline _Tp __c11_atomic_load(vola
 }
 
 template <typename _Tp>
-static inline _Tp __c11_atomic_load(_Atomic(_Tp)* __a, memory_order __order) {
+static inline _Tp __c11_atomic_load(const _Atomic(_Tp)* __a, memory_order __order) {
   _Tp __ret;
   __atomic_load(&__a->__a_value, &__ret,
                 __gcc_atomic::__to_gcc_order(__order));




More information about the cfe-commits mailing list