summaryrefslogtreecommitdiffstats
path: root/libcxx/include
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2019-08-13 11:12:28 +0000
committerLouis Dionne <ldionne@apple.com>2019-08-13 11:12:28 +0000
commit86dd28a5471480cd7a8cb5ad4801599ac0a0ac20 (patch)
tree0e60db66f9898c354bd534cfb43cc76f8d57506c /libcxx/include
parente7b350a5d11bce823fc3254ab6a084186e15d4f0 (diff)
downloadbcm5719-llvm-86dd28a5471480cd7a8cb5ad4801599ac0a0ac20.tar.gz
bcm5719-llvm-86dd28a5471480cd7a8cb5ad4801599ac0a0ac20.zip
[libc++] Use [[nodiscard]] for lock_guard, as an extension
Summary: D64914 added support for applying [[nodiscard]] to constructors. This commit uses that capability to flag incorrect uses of std::lock_guard where one forgets to actually create a variable for the lock_guard. rdar://45790820 Reviewers: mclow.lists, EricWF Subscribers: christof, jkorous, dexonsmith, libcxx-commits, Quuxplusone, lebedev.ri Tags: #libc Differential Revision: https://reviews.llvm.org/D65900 llvm-svn: 368664
Diffstat (limited to 'libcxx/include')
-rw-r--r--libcxx/include/__mutex_base5
1 files changed, 3 insertions, 2 deletions
diff --git a/libcxx/include/__mutex_base b/libcxx/include/__mutex_base
index f828beaf780..a85ded8341e 100644
--- a/libcxx/include/__mutex_base
+++ b/libcxx/include/__mutex_base
@@ -94,10 +94,11 @@ private:
mutex_type& __m_;
public:
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_NODISCARD_EXT _LIBCPP_INLINE_VISIBILITY
explicit lock_guard(mutex_type& __m) _LIBCPP_THREAD_SAFETY_ANNOTATION(acquire_capability(__m))
: __m_(__m) {__m_.lock();}
- _LIBCPP_INLINE_VISIBILITY
+
+ _LIBCPP_NODISCARD_EXT _LIBCPP_INLINE_VISIBILITY
lock_guard(mutex_type& __m, adopt_lock_t) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m))
: __m_(__m) {}
_LIBCPP_INLINE_VISIBILITY
OpenPOWER on IntegriCloud