Index: libcxx/trunk/include/mutex =================================================================== --- libcxx/trunk/include/mutex +++ libcxx/trunk/include/mutex @@ -489,7 +489,7 @@ }; template -class _LIBCPP_TEMPLATE_VIS scoped_lock<_Mutex> { +class _LIBCPP_TEMPLATE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(scoped_lockable) scoped_lock<_Mutex> { public: typedef _Mutex mutex_type; private: Index: libcxx/trunk/test/libcxx/thread/thread.mutex/thread_safety_lock_guard.pass.cpp =================================================================== --- libcxx/trunk/test/libcxx/thread/thread.mutex/thread_safety_lock_guard.pass.cpp +++ libcxx/trunk/test/libcxx/thread/thread.mutex/thread_safety_lock_guard.pass.cpp @@ -24,7 +24,13 @@ std::mutex m; int foo __attribute__((guarded_by(m))); +static void scoped() { + std::scoped_lock lock(m); + foo++; +} + int main() { + scoped(); std::lock_guard lock(m); foo++; }