diff options
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Sema/warn-thread-safety-analysis.c | 3 | ||||
| -rw-r--r-- | clang/test/SemaCXX/warn-thread-safety-analysis.cpp | 13 |
2 files changed, 15 insertions, 1 deletions
diff --git a/clang/test/Sema/warn-thread-safety-analysis.c b/clang/test/Sema/warn-thread-safety-analysis.c index 55e6e707f01..a0c4026b913 100644 --- a/clang/test/Sema/warn-thread-safety-analysis.c +++ b/clang/test/Sema/warn-thread-safety-analysis.c @@ -81,7 +81,8 @@ int main() { mutex_shared_lock(&mu2); Foo_fun1(1); - mutex_shared_lock(&mu1); // expected-warning{{acquiring mutex 'mu1' that is already held}} + mutex_shared_lock(&mu1); // expected-warning{{acquiring mutex 'mu1' that is already held}} \ + expected-warning{{mutex 'mu1' must be acquired before 'mu2'}} mutex_unlock(&mu1); mutex_unlock(&mu2); mutex_shared_lock(&mu1); diff --git a/clang/test/SemaCXX/warn-thread-safety-analysis.cpp b/clang/test/SemaCXX/warn-thread-safety-analysis.cpp index cdbef700a18..6daefd78d3d 100644 --- a/clang/test/SemaCXX/warn-thread-safety-analysis.cpp +++ b/clang/test/SemaCXX/warn-thread-safety-analysis.cpp @@ -5145,4 +5145,17 @@ void test() { } // end namespace TestReferenceNoThreadSafetyAnalysis +namespace GlobalAcquiredBeforeAfterTest { + +Mutex mu1; +Mutex mu2 ACQUIRED_AFTER(mu1); + +void test3() { + mu2.Lock(); + mu1.Lock(); // expected-warning {{mutex 'mu1' must be acquired before 'mu2'}} + mu1.Unlock(); + mu2.Unlock(); +} + +} // end namespace GlobalAcquiredBeforeAfterTest |

