blob: 10b4a55198c50bc2721dc2bfed5e88e7cab69c43 [file] [log] [blame]
Anders Carlsson0f44b5a2009-08-08 16:55:18 +00001// RUN: clang-cc %s -verify -fsyntax-only
2class A {
3 void f() __attribute__((deprecated));
4 void g(A* a);
Anders Carlssonfb7ef752009-08-08 17:48:49 +00005 void h(A* a) __attribute__((deprecated));
Anders Carlsson0f44b5a2009-08-08 16:55:18 +00006
7 int b __attribute__((deprecated));
8};
9
10void A::g(A* a)
11{
12 f(); // expected-warning{{'f' is deprecated}}
13 a->f(); // expected-warning{{'f' is deprecated}}
14
15 (void)b; // expected-warning{{'b' is deprecated}}
16 (void)a->b; // expected-warning{{'b' is deprecated}}
17}
Anders Carlssonfb7ef752009-08-08 17:48:49 +000018
19void A::h(A* a)
20{
21 f();
22 a->f();
23
24 (void)b;
25 (void)a->b;
26}
Anders Carlsson0f728562009-09-10 20:48:14 +000027
28struct B {
29 virtual void f() __attribute__((deprecated));
30};
31
32struct C : B {
33 virtual void f();
34};
35
36void f(B* b, C *c) {
37 b->f();
38 b->B::f(); // expected-warning{{'f' is deprecated}}
39
40 c->f();
41 c->C::f();
42 c->B::f(); // expected-warning{{'f' is deprecated}}
43}