blob: ed0280beccf565a3ee860dffb6dc4312d5160d93 [file] [log] [blame] [edit]
// RUN: %clang_cc1 -verify -fsyntax-only -Wthread-safety %s
struct __attribute__((lockable)) Lock {};
void sink_protected(int);
struct Baz {
public:
Lock lock_;
int protected_num_ __attribute__((guarded_by(lock_))) = 1;
};
void paren_test() {
Baz baz;
int& n = baz.protected_num_;
sink_protected(n); // expected-warning{{reading variable 'protected_num_' requires holding mutex 'baz.lock_'}}
int& n2 = (baz.protected_num_);
sink_protected(n2); // expected-warning{{reading variable 'protected_num_' requires holding mutex 'baz.lock_'}}
}