blob: 71221eb5f653fe32a2c45cf1fcd2655fdd8f3a39 [file] [log] [blame]
// Test the handling of a method with lock annotations accessed through a
// smart/scoped pointer.
// { dg-do compile }
// { dg-options "-Wthread-safety -O" }
#include "thread_annot_common.h"
template<class T>
class scoped_ptr {
public:
typedef T element_type;
explicit scoped_ptr(T * p = 0);
~scoped_ptr();
void reset(T * p = 0);
T & operator*() const;
T * operator->() const;
T * get() const;
};
class LOCKABLE Foo {
public:
Mutex *mutex_;
int x;
int GetValue() EXCLUSIVE_LOCKS_REQUIRED(mutex);
};
scoped_ptr<Foo> b;
main()
{
int a;
a = b->GetValue(); // { dg-warning "Calling function 'GetValue' requires" }
}