[libc++] Use [[nodiscard]] for lock_guard, as an extension
authorLouis Dionne <ldionne@apple.com>
Tue, 13 Aug 2019 11:12:28 +0000 (11:12 +0000)
committerLouis Dionne <ldionne@apple.com>
Tue, 13 Aug 2019 11:12:28 +0000 (11:12 +0000)
commit86dd28a5471480cd7a8cb5ad4801599ac0a0ac20
tree0e60db66f9898c354bd534cfb43cc76f8d57506c
parente7b350a5d11bce823fc3254ab6a084186e15d4f0
[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
libcxx/docs/UsingLibcxx.rst
libcxx/include/__mutex_base
libcxx/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp
libcxx/test/libcxx/thread/thread.lock/thread.lock.guard/nodiscard.fail.cpp [new file with mode: 0644]