summaryrefslogtreecommitdiffstats
path: root/test/SemaObjCXX/thread-safety-analysis.h
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjCXX/thread-safety-analysis.h')
-rw-r--r--test/SemaObjCXX/thread-safety-analysis.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/SemaObjCXX/thread-safety-analysis.h b/test/SemaObjCXX/thread-safety-analysis.h
new file mode 100644
index 0000000000..f657b7e50a
--- /dev/null
+++ b/test/SemaObjCXX/thread-safety-analysis.h
@@ -0,0 +1,17 @@
+class __attribute__((lockable)) Lock {
+public:
+ void Acquire() __attribute__((exclusive_lock_function())) {}
+ void Release() __attribute__((unlock_function())) {}
+};
+
+class __attribute__((scoped_lockable)) AutoLock {
+public:
+ AutoLock(Lock &lock) __attribute__((exclusive_lock_function(lock)))
+ : lock_(lock) {
+ lock.Acquire();
+ }
+ ~AutoLock() __attribute__((unlock_function())) { lock_.Release(); }
+
+private:
+ Lock &lock_;
+};