1a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier//===----------------------------------------------------------------------===// 2a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier// 3a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier// The LLVM Compiler Infrastructure 4a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier// 5a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier// This file is dual licensed under the MIT and the University of Illinois Open 6a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier// Source Licenses. See LICENSE.TXT for details. 7a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier// 8a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier//===----------------------------------------------------------------------===// 9a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier 10037efda0aca532bfbc0c15ca7503ded40161df42Richard Barton// UNSUPPORTED: libcpp-has-no-threads 11a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier// REQUIRES: thread-safety 12a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier 13a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier// <mutex> 14a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier 15bca6de0e4edf5de16fad3566645db68966fede58Eric Fiselier// MODULES_DEFINES: _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS 16a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier#define _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS 17a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier 18a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier#include <mutex> 19a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier 20a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselierstd::mutex m; 21a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier 22a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselierint main() { 23a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier m.lock(); 24a15e8c3a182f38bb1f64a8ba0f615ab422a025e6Eric Fiselier} // expected-error {{mutex 'm' is still held at the end of function}} 25