summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorDeLesley Hutchins <delesley@google.com>2011-12-29 00:56:48 +0000
committerDeLesley Hutchins <delesley@google.com>2011-12-29 00:56:48 +0000
commit714296cb3177329eb42411b85ef5a7fc9696efc7 (patch)
tree07db12be133e25e61eacabdf9ec15a879eee51a8 /clang/test
parentf97c521368e266f228ecd91b71217c6d53cad448 (diff)
downloadbcm5719-llvm-714296cb3177329eb42411b85ef5a7fc9696efc7.tar.gz
bcm5719-llvm-714296cb3177329eb42411b85ef5a7fc9696efc7.zip
Support for thread safety attributes on functions
llvm-svn: 147331
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaCXX/warn-thread-safety-analysis.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/warn-thread-safety-analysis.cpp b/clang/test/SemaCXX/warn-thread-safety-analysis.cpp
index 23dcd8d4a8f..8219b982bc7 100644
--- a/clang/test/SemaCXX/warn-thread-safety-analysis.cpp
+++ b/clang/test/SemaCXX/warn-thread-safety-analysis.cpp
@@ -1605,3 +1605,25 @@ struct TestScopedLockable {
} // end namespace test_scoped_lockable
+namespace FunctionAttrTest {
+
+class Foo {
+public:
+ Mutex mu_;
+ int a GUARDED_BY(mu_);
+};
+
+Foo fooObj;
+
+void foo() EXCLUSIVE_LOCKS_REQUIRED(fooObj.mu_);
+
+void bar() {
+ foo(); // expected-warning {{calling function 'foo' requires exclusive lock on 'mu_'}}
+ fooObj.mu_.Lock();
+ foo();
+ fooObj.mu_.Unlock();
+}
+
+}; // end namespace FunctionAttrTest
+
+
OpenPOWER on IntegriCloud