blob: 71221eb5f653fe32a2c45cf1fcd2655fdd8f3a39 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// 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" }
}
|