From: Justin Lebar Date: Sun, 23 Apr 2017 16:58:48 +0000 (+0000) Subject: Add missing acquire_load to call_once overload. X-Git-Tag: llvmorg-5.0.0-rc1~6918 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dd9a4b9ae80b12f93ca33620a3de0907e81dfe7b;p=platform%2Fupstream%2Fllvm.git Add missing acquire_load to call_once overload. Summary: Seemed to have been overlooked in D24028. This bug was found and brought to my attention by Paul Wankadia. Reviewers: kubamracek, EricWF, dvyukov Differential Revision: https://reviews.llvm.org/D32402 llvm-svn: 301132 --- diff --git a/libcxx/include/mutex b/libcxx/include/mutex index e92baa5..0b25614 100644 --- a/libcxx/include/mutex +++ b/libcxx/include/mutex @@ -685,7 +685,7 @@ inline _LIBCPP_INLINE_VISIBILITY void call_once(once_flag& __flag, const _Callable& __func) { - if (__flag.__state_ != ~0ul) + if (__libcpp_acquire_load(&__flag.__state_) != ~0ul) { __call_once_param __p(__func); __call_once(__flag.__state_, &__p, &__call_once_proxy);