1 // RUN: rm -rf %t
2 // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fimplicit-module-maps \
3 // RUN:            -I%S/Inputs/thread-safety -std=c++11 -Wthread-safety \
4 // RUN:            -verify %s
5 //
6 // expected-no-diagnostics
7 
8 #include "b.h"
9 #include "c.h"
10 
11 bool g();
f()12 void X::f() {
13   m.lock();
14   if (g())
15     m.unlock();
16   else
17     unlock(*this);
18 }
19