diff --git a/docs/UsingLibcxx.rst b/docs/UsingLibcxx.rst
index 56c98af..05721bf 100644
--- a/docs/UsingLibcxx.rst
+++ b/docs/UsingLibcxx.rst
@@ -345,3 +345,4 @@
 * ``search``
 * ``unique``
 * ``upper_bound``
+* ``lock_guard``'s constructors
diff --git a/include/__mutex_base b/include/__mutex_base
index f828bea..a85ded8 100644
--- a/include/__mutex_base
+++ b/include/__mutex_base
@@ -94,10 +94,11 @@
     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
diff --git a/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp b/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp
index 10582b9..43cc080 100644
--- a/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp
+++ b/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp
@@ -16,7 +16,7 @@
 // guides from existing ctors, needed by default_searcher() below.
 // UNSUPPORTED: apple-clang-9
 
-// Test that entities declared [[nodiscard]] as at extension by libc++, are
+// Test that entities declared [[nodiscard]] as an extension by libc++, are
 // only actually declared such when _LIBCPP_ENABLE_NODISCARD is specified.
 
 // All entities to which libc++ applies [[nodiscard]] as an extension should
diff --git a/test/libcxx/thread/thread.lock/thread.lock.guard/nodiscard.fail.cpp b/test/libcxx/thread/thread.lock/thread.lock.guard/nodiscard.fail.cpp
new file mode 100644
index 0000000..bac255c
--- /dev/null
+++ b/test/libcxx/thread/thread.lock/thread.lock.guard/nodiscard.fail.cpp
@@ -0,0 +1,34 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: libcpp-has-no-threads
+
+// [[nodiscard]] on constructors isn't supported by all compilers
+// UNSUPPORTED: clang-6, clang-6, clang-8, clang-9
+// UNSUPPORTED: apple-clang-9, apple-clang-10, apple-clang-11
+
+// <mutex>
+
+// template <class Mutex> class lock_guard;
+
+// [[nodiscard]] explicit lock_guard(mutex_type& m);
+// [[nodiscard]] lock_guard(mutex_type& m, adopt_lock_t);
+
+// Test that we properly apply [[nodiscard]] to lock_guard's constructors,
+// which is a libc++ extension.
+
+// MODULES_DEFINES: _LIBCPP_ENABLE_NODISCARD
+#define _LIBCPP_ENABLE_NODISCARD
+#include <mutex>
+
+int main(int, char**) {
+    std::mutex m;
+    std::lock_guard<std::mutex>{m}; // expected-error{{ignoring temporary created by a constructor declared with 'nodiscard' attribute}}
+    std::lock_guard<std::mutex>{m, std::adopt_lock}; // expected-error{{ignoring temporary created by a constructor declared with 'nodiscard' attribute}}
+    return 0;
+}
