mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 20:06:37 +00:00

The thread safety analysis isn't very useful in ObjC (you can't annotate ObjC classes or methods) but we can still analyze the actual code and show violations in usage of C/C++ functions. Fixes PR19541, which does not use thread safety attributes but crashes with -Weverything. llvm-svn: 208436
20 lines
431 B
Objective-C
20 lines
431 B
Objective-C
// RUN: %clang_cc1 -fsyntax-only -verify -Wthread-safety -Wthread-safety-beta -Wno-objc-root-class %s
|
|
|
|
struct __attribute__ ((lockable)) Mutex {};
|
|
|
|
struct Mutex mu1;
|
|
|
|
int Foo_fun1(int i) __attribute__ ((exclusive_locks_required((mu1)))) {
|
|
return i;
|
|
}
|
|
|
|
@interface test
|
|
@end
|
|
|
|
@implementation test
|
|
- (void) PR19541 {
|
|
Foo_fun1(1); // expected-warning{{calling function 'Foo_fun1' requires holding mutex 'mu1' exclusively}}
|
|
}
|
|
|
|
@end
|